- Nov 17, 2022
-
-
Yassine Doghri authored
-
Yassine Doghri authored
-
- Nov 10, 2022
-
-
Yassine Doghri authored
-
Yassine Doghri authored
-
- Nov 07, 2022
-
-
Yassine Doghri authored
-
- Nov 04, 2022
-
-
semantic-release-bot authored
## [1.0.2](v1.0.1...v1.0.2) (2022-11-04) ### Bug Fixes * **auth:** disallow registration by default ([379b9be2](379b9be2)) * **contributors:** add prefix to podcast group to delete contributor ([9f785db7](9f785db7)) * extract podcast ids from user groups using a regex ([e26215a1](e26215a1)) * **notifications:** add manage-notifications permission to podcast ([ed7c247b](ed7c247b)) * **platforms:** convert special characters to htmlentities to validate url ([82310a2e](82310a2e))
-
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
remove validate_url custom validator and replace with CI4's valid_url_strict
-
Yassine Doghri authored
flag is used to clean the filesystem at the end of the build
-
Yassine Doghri authored
-
- Nov 01, 2022
-
-
semantic-release-bot authored
## [1.0.1](v1.0.0...v1.0.1) (2022-11-01) ### Bug Fixes * **platforms:** trim platform url before validation and storage ([259fe5f6](259fe5f6))
-
-
Yassine Doghri authored
--> Having a URL with spaces in the beginning or end would cause the platform to be deleted
-
- Oct 24, 2022
-
-
-
Yassine Doghri authored
update gitlabci: do not run docker build if CP_VERSION.env file is not present
-
- Oct 20, 2022
-
-
semantic-release-bot authored
# 1.0.0 (2022-10-20) ### Bug Fixes * **a11y:** replace active tab color to contrast with background on podcast and episode pages ([f3785e14](adaures/castopod@f3785e14)) * **activity-pub:** cache issues when navigating to activity stream urls ([7bcbfb32](adaures/castopod@7bcbfb32)) * **activity-pub:** get database records using new model instances ([92536ddb](adaures/castopod@92536ddb)) * **activitypub:** add conditions for possibly missing actor properties + add user-agent to requests ([8fbf948f](adaures/castopod@8fbf948f)) * **activitypub:** add target actor id to like / announce activities to send directly to note's actor ([962dd305](adaures/castopod@962dd305)) * **activitypub:** add target_actor_id for create activity to broadcast post reply ([0128a21e](adaures/castopod@0128a21e)) * **activitypub:** allow cors on get requests for routes exposing acitivitypub objects ([2f248099](adaures/castopod@2f248099)) * **activitypub:** set created_by to null for reblog if no user + update episode oembed data ([209dfbd1](adaures/castopod@209dfbd1)) * add admin-audio-player to vite config to have admin player show up ([93cb9b24](adaures/castopod@93cb9b24)) * add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error ([339bef87](adaures/castopod@339bef87)), closes [#145](adaures/castopod#145) * add category_label component to include parent category in about podcast page ([74e7d68a](adaures/castopod@74e7d68a)) * add explicit int conversion when formatting episode duration ([12530961](adaures/castopod@12530961)) * add head request to analytics_hit route ([f0a2f0be](adaures/castopod@f0a2f0be)) * add href to castopod website on login page ([cc542573](adaures/castopod@cc542573)) * add missing explicit badge for podcasts and episodes ([cdf9f9d5](adaures/castopod@cdf9f9d5)) * add open graph size for podcast images to replace the inadequate large format ([33aae1f7](adaures/castopod@33aae1f7)) * add public/media folder to castopod bundle ([8053d352](adaures/castopod@8053d352)), closes [#52](adaures/castopod#52) * add translation key for audio-clipper trim labels ([db191ac3](adaures/castopod@db191ac3)) * add underline and semibold font weight for prose links to have them stand out ([d4d86712](adaures/castopod@d4d86712)) * add where condition to get episode count without deleted episodes ([7661734e](adaures/castopod@7661734e)), closes [#67](adaures/castopod#67) * **admin:** save block and lock switches ([b66c0afc](adaures/castopod@b66c0afc)) * **analytics:** redirect to mp3 file even when referer was not set ([9fc388d1](adaures/castopod@9fc388d1)) * **analytics:** remove charts empty values + remove useless language cache ([16787941](adaures/castopod@16787941)) * **analytics:** set duration field to precise decimal as episode's audio file duration ([d7726854](adaures/castopod@d7726854)) * **analytics:** set initial value for duration and bandwidth ([ee505395](adaures/castopod@ee505395)) * **analytics:** update migrations to set decimal precision for latitude and longitude ([714d6b5d](adaures/castopod@714d6b5d)) * **analytics:** update service management so that it works with new OPAWG slug values ([7fe9d425](adaures/castopod@7fe9d425)) * **audio-clipper:** add mouse position offset when stretching clip to prevent content from jumping ([602654b9](adaures/castopod@602654b9)) * **audio-clipper:** show audio playing progress + put waveform behind audio clipper ([01a09dc4](adaures/castopod@01a09dc4)) * **avatar:** use default avatar when no avatar url has been set ([9d23c7e7](adaures/castopod@9d23c7e7)), closes [#111](adaures/castopod#111) * **bundle:** include modules and themes when copying files with rsync ([cd5bb883](adaures/castopod@cd5bb883)) * **bundle:** update vite input files path + add `set -e` in bash scripts to fail if command fails ([0ee53c71](adaures/castopod@0ee53c71)) * **cache:** add locale for podcast and episode pages + clear some persisting cache in models ([9cec8a81](adaures/castopod@9cec8a81)), closes [#42](adaures/castopod#42) [#61](adaures/castopod#61) * **cache:** delete posts and comments pages cache when updating platform links ([f7c3e5bf](adaures/castopod@f7c3e5bf)), closes [#169](adaures/castopod#169) * **cache:** return a non cached view when connected ([e2e73581](adaures/castopod@e2e73581)) * **cache:** suffix cache names with authenticated for credits, map and pages ([418a70b2](adaures/castopod@418a70b2)) * cast actor_id to pass as int to set_interact_as_actor() function ([56a8e5d7](adaures/castopod@56a8e5d7)) * **category:** remove uncategorized option to enforce users in choosing a category ([8c64f25a](adaures/castopod@8c64f25a)) * change image size requirement hints ([ea20206e](adaures/castopod@ea20206e)) * change message upon cancellation of episode publication ([9859c743](adaures/castopod@9859c743)) * check for database connection and podcasts table existence before redirecting to install ([eb74e81c](adaures/castopod@eb74e81c)) * check that additional files are valid when creating episode ([eac5bc87](adaures/castopod@eac5bc87)) * check that note has a preview_card_id before displaying it ([acb8b3a4](adaures/castopod@acb8b3a4)), closes [#114](adaures/castopod#114) * clear cache when deleting podcast banner ([99bb40b8](adaures/castopod@99bb40b8)) * comment all cache clean after page update to prevent analytics cache deletion ([e6197a49](adaures/castopod@e6197a49)) * **comments:** add comment view partials for public pages ([fcecbe1c](adaures/castopod@fcecbe1c)) * correct chart data ([4d3e9c8c](adaures/castopod@4d3e9c8c)) * correct percona compatibility issue ([e53f8192](adaures/castopod@e53f8192)) * correct php-fpm issues ([1ef55d73](adaures/castopod@1ef55d73)) * correct referrer bug ([ed69b2f5](adaures/castopod@ed69b2f5)) * correction for servers with low int precision ([31b7828e](adaures/castopod@31b7828e)) * **cors:** add preflight option routes for episode, podcast and status objects ([a281abfd](adaures/castopod@a281abfd)) * declare typed properties in PHPDoc for php<7.4 ([14dd44d0](adaures/castopod@14dd44d0)), closes [#23](adaures/castopod#23) * define podcast_id and platform_slug as foreign keys in podcasts_plaforms table ([6e9451a1](adaures/castopod@6e9451a1)) * define podcastNamespaceLink value ([0d744d21](adaures/castopod@0d744d21)) * **email:** set the correct url in the activation and forgot emails ([10fc6f17](adaures/castopod@10fc6f17)), closes [#204](adaures/castopod#204) * **embeddable-player:** enable any ancestor when X-Frame-Options is set on server ([44a4962e](adaures/castopod@44a4962e)) * **embed:** open embedded player's links in new tab ([4aa73d71](adaures/castopod@4aa73d71)) * **episode-form:** show warning to set `memory_limit`, `upload_max_filesize` & `post_max_size` ([3b3c218b](adaures/castopod@3b3c218b)), closes [#5](adaures/castopod#5) [#86](adaures/castopod#86) * **episode-unpublish:** set consistent posts_counts' increments/decrements for actors and episodes ([8acdafd2](adaures/castopod@8acdafd2)), closes [#233](adaures/castopod#233) * **episodeCount:** add missing brackets to French language file ([c1b41126](adaures/castopod@c1b41126)) * **episode:** replace guid's empty string value to null ([441052af](adaures/castopod@441052af)) * **episodes-page:** handle defaultQuery being null when no podcast episodes ([15183b7e](adaures/castopod@15183b7e)), closes [#100](adaures/castopod#100) * **episodes-table:** set descriptions to be not null ([6774ec10](adaures/castopod@6774ec10)) * **episodes:** add publication status + set publication date to null when none has been set ([d882981b](adaures/castopod@d882981b)), closes [#70](adaures/castopod#70) * escape characters for `min` in format_duration_symbol ([3b6722a4](adaures/castopod@3b6722a4)) * escape generated feed tag values and remove new lines from public pages meta description ([6238a438](adaures/castopod@6238a438)), closes [#57](adaures/castopod#57) [#46](adaures/castopod#46) * expire default query cache upon scheduled episode publication ([b72e7c86](adaures/castopod@b72e7c86)), closes [#81](adaures/castopod#81) * explicitly cast seconds to int in iso8601_duration helper function ([779653f7](adaures/castopod@779653f7)) * **fediverse:** set default castopod avatar url when actor avatar is not present ([460f52f7](adaures/castopod@460f52f7)) * **fediverse:** set model instances as non shared to prevent overlapping ([91128fad](adaures/castopod@91128fad)) * fix layout bugs in admin and update translation files ([a8341718](adaures/castopod@a8341718)), closes [#40](adaures/castopod#40) * **follow:** add missing helpers to Actor controller ([ee53a732](adaures/castopod@ee53a732)) * **get_browser_language:** return defaultLocale if browser doesn't send user preferred language ([9cc29962](adaures/castopod@9cc29962)) * handle HEAD requests on podcast_feed route ([74b2640f](adaures/castopod@74b2640f)), closes [#79](adaures/castopod#79) * **home:** remove hardcoded prefix in getAllPodcasts query ([92d5cc50](adaures/castopod@92d5cc50)) * **housekeeping:** replace the use of GLOB_BRACE with looping over file extensions ([42d92d0c](adaures/castopod@42d92d0c)), closes [#154](adaures/castopod#154) * **housekeeping:** set default sizes value + ignore illegal IFD size error to proceed with script ([f21ca576](adaures/castopod@f21ca576)) * **housekeeping:** use EpisodeModel's builder to reset comments count ([65e9c0b0](adaures/castopod@65e9c0b0)) * **htaccess:** add ? after index.php in RewriteRule ([d9d139ee](adaures/castopod@d9d139ee)), closes [#152](adaures/castopod#152) * **http-signature:** update SIGNATURE_PATTERN allowing signature keys to be sent in any order ([b7f285e4](adaures/castopod@b7f285e4)) * **images:** set default mimetype if none is specified when getting size info ([6e4acc64](adaures/castopod@6e4acc64)) * **import-with-escaped-characters:** remove \CodeIgniter\HTTP\URI in download_file, closes [#103](adaures/castopod#103) ([35b5be09](adaures/castopod@35b5be09)) * **import:** add extension when downloading file without + truncate slug if too long ([c5f18bb6](adaures/castopod@c5f18bb6)) * **import:** add validation for handle field to prevent Router.invalidParameterType error ([5bf7200f](adaures/castopod@5bf7200f)), closes [#119](adaures/castopod#119) * **import:** cast description's SimpleXMLElement to string ([02d17be4](adaures/castopod@02d17be4)) * **import:** remove query string from files url ([109c4aa1](adaures/castopod@109c4aa1)) * **import:** save media files during podcast import + set missing media fields ([a9989d84](adaures/castopod@a9989d84)) * **import:** set default episode type if not set ([d7250ab0](adaures/castopod@d7250ab0)) * **import:** set episode and season numbers to null when not present in item tag ([3211398c](adaures/castopod@3211398c)) * **import:** use <image><url> tag when no <itunes:image> is present ([20e607af](adaures/castopod@20e607af)) * include missing variables on public ui's episode page and remote_actions ([193b373b](adaures/castopod@193b373b)) * **input-component:** unset required attribute to prevent rendering it when false ([db9ac138](adaures/castopod@db9ac138)) * **install:** add password validation when creating super admin ([5a2ca0cc](adaures/castopod@5a2ca0cc)) * **install:** redirect manually to install wizard on first visit ([2ceaaca4](adaures/castopod@2ceaaca4)) * **install:** redirect to host_url install route on instanceConfig validation error ([99250b18](adaures/castopod@99250b18)) * **install:** redirect to input baseUrl after instance config ([2426af7d](adaures/castopod@2426af7d)), closes [#53](adaures/castopod#53) * **install:** set message block on forms to show error messages ([3a0a20d5](adaures/castopod@3a0a20d5)), closes [#157](adaures/castopod#157) * **interact-as:** set actor_id instead of podcast id upon login event ([5dfade7c](adaures/castopod@5dfade7c)), closes [#104](adaures/castopod#104) * **json-ld:** add missing properties to PodcastSeries object ([e97266c5](adaures/castopod@e97266c5)) * keep subtitle line breaks when parsing srt file to json ([cfb3da65](adaures/castopod@cfb3da65)) * **layouts:** replace holy-grail layout with tailwind config + widen public podcast layout ([be5a2878](adaures/castopod@be5a2878)) * **map:** update episode markers query to discard unpublished episodes ([b3caac45](adaures/castopod@b3caac45)) * **markdown-editor:** remove unnecessary buttons for podcast and episode editors + add extensions ([9c4f60e0](adaures/castopod@9c4f60e0)) * **md-editor:** build new markdown editor with lit + github/markdown-toolbar-element ([9ec1cb93](adaures/castopod@9ec1cb93)), closes [#93](adaures/castopod#93) [#94](adaures/castopod#94) [#120](adaures/castopod#120) * **migrations:** ignore invalid utf8 chars for media files metadata + update transcript parser ([45e8f99e](adaures/castopod@45e8f99e)) * minor corrections ([13be3868](adaures/castopod@13be3868)) * move analytics to helper ([d3119173](adaures/castopod@d3119173)) * move html escaping on credits page ([fbffdbde](adaures/castopod@fbffdbde)) * **multiselect:** add missing class names in choices options for purge to work properly ([719538d0](adaures/castopod@719538d0)) * **notifications:** add trigger after activities update + update insert trigger ([e5d16e87](adaures/castopod@e5d16e87)) * **notifications:** notify actors after activities insert / update using model callback methods ([e08555a4](adaures/castopod@e08555a4)) * **open-graph:** replace non existant episode description to podcast description in podcast page ([b02584ee](adaures/castopod@b02584ee)) * overwrite common lang function to escape returned string ([4c490c15](adaures/castopod@4c490c15)), closes [#196](adaures/castopod#196) [#198](adaures/castopod#198) * overwrite getActorById to return app's Actor entity ([f2bc2f7e](adaures/castopod@f2bc2f7e)) * **package.json:** update destination of postcss generation scripts ([21413f8a](adaures/castopod@21413f8a)) * **pages:** add locale to page cache ([8f999ce2](adaures/castopod@8f999ce2)) * **partner:** set correct image URL ([61554be1](adaures/castopod@61554be1)) * pass timezone to relative time component to show the localized time in the UI ([b9db9364](adaures/castopod@b9db9364)) * **persons:** prevent overflow of persons list by adding horizontal scroll ([9e8995dc](adaures/castopod@9e8995dc)) * **persons:** set person picture as optional for better ux ([7fdea63d](adaures/castopod@7fdea63d)), closes [#125](adaures/castopod#125) * **platforms:** display platform link only when visible is toggled on ([6e503c8d](adaures/castopod@6e503c8d)), closes [#39](adaures/castopod#39) * **player-styling:** revert vite to 2.8 to reference the player css ([e07d3afe](adaures/castopod@e07d3afe)) * **podcast-activity:** check if transcript and chapters are set before including them in audio ([5855a250](adaures/castopod@5855a250)) * **podcast-import:** move guid attribute declaration for Episode entity to include slug data ([5d02ae39](adaures/castopod@5d02ae39)) * **podcast:** use markdown description value for editor + set prose class to about description ([f304d97b](adaures/castopod@f304d97b)), closes [#156](adaures/castopod#156) * prefill description footer input when creating a new episode ([9ea5ca31](adaures/castopod@9ea5ca31)) * **premium-podcasts:** display unlock button in embed when premium episode ([ca109ba3](adaures/castopod@ca109ba3)) * **premium-podcasts:** remove cache in unlock form + redirect to podcast if podcast is not premium ([242352c4](adaures/castopod@242352c4)) * **premium-podcasts:** return different cached page when podcast is unlocked ([b1303c52](adaures/castopod@b1303c52)) * **pwa:** add scope to webmanifests to allow installing an app per podcast ([74c683eb](adaures/castopod@74c683eb)) * **pwa:** set app display as standalone in the webmanifests ([7aa37d24](adaures/castopod@7aa37d24)) * re-order graph values ([35f633b4](adaures/castopod@35f633b4)) * redirect to non cached views when authenticated in public views ([482b47ba](adaures/castopod@482b47ba)) * **release:** add missing version number to castopod-host package ([8f3e9d90](adaures/castopod@8f3e9d90)) * remove cache from remote follow form to display error messages ([90e44437](adaures/castopod@90e44437)) * remove defer from js script declaration as it is a module ([18ae557e](adaures/castopod@18ae557e)) * remove fixed size from podcast sidebar + rearrange account info + space out import radio inputs ([776eec6f](adaures/castopod@776eec6f)) * remove heavy image cover data from audio file metadata ([f74403bd](adaures/castopod@f74403bd)) * remove required for other_categories field and add podcast_id to latest podcasts query ([5417be00](adaures/castopod@5417be00)) * remove required property to persons picture ([c546be38](adaures/castopod@c546be38)), closes [#125](adaures/castopod#125) * remove value escaping for form inputs and textareas ([bc6dea2f](adaures/castopod@bc6dea2f)) * rename field status to task_status to get scheduled activities ([4ff82a5f](adaures/castopod@4ff82a5f)) * rename issue_templates labels ([9f003058](adaures/castopod@9f003058)) * rename MyAccount controller file ([e109df30](adaures/castopod@e109df30)), closes [#60](adaures/castopod#60) * rename podcast name to podcast handle to clarify field usage ([9dd4c774](adaures/castopod@9dd4c774)), closes [#126](adaures/castopod#126) * reorder fields as composite primary keys for analytics tables ([9660aa97](adaures/castopod@9660aa97)) * replace deletedField with published_at for episodes ([14d7d078](adaures/castopod@14d7d078)) * replace getWebEnclosureUrl with getEnclosureWebUrl ([8122ceaf](adaures/castopod@8122ceaf)) * replace hardcoded style links with vite service + set default value for remote transcript url ([3f2e0560](adaures/castopod@3f2e0560)), closes [#149](adaures/castopod#149) [#150](adaures/castopod#150) * replace website key for webpages in breadcrumb translate file ([50e32ff7](adaures/castopod@50e32ff7)) * restore default podcast icon on public website ([342778ba](adaures/castopod@342778ba)) * revert to beta.1's codeigniter4 version ([e8314112](adaures/castopod@e8314112)) * rewrite regenerate image function to use saveSizes method from Image entity ([38899124](adaures/castopod@38899124)) * **router:** check if Accept header is set before getting value ([10a2ae02](adaures/castopod@10a2ae02)), closes [#228](adaures/castopod#228) * **router:** trim URI slash to match same routes for URIs with and without trailing slash ([9e9375f9](adaures/castopod@9e9375f9)) * **rss-import:** add Castopod user-agent, handle redirects for downloaded files, add Content namespace ([214243b3](adaures/castopod@214243b3)) * **rss:** cast number type values to string in rss_helper ([7180ae9e](adaures/castopod@7180ae9e)), closes [#148](adaures/castopod#148) * **rss:** do not escape podcast and episode titles in the xml ([0dd3b7e0](adaures/castopod@0dd3b7e0)), closes [#138](adaures/castopod#138) [#71](adaures/castopod#71) * **rss:** remove escaping for publisher and owner name ([6fc63478](adaures/castopod@6fc63478)) * **rss:** round episode durations and soundbites ([c9fb987f](adaures/castopod@c9fb987f)), closes [#214](adaures/castopod#214) * **rss:** set ❬itunes:author❭ tag to owner_name if publisher not specified ([2271c144](adaures/castopod@2271c144)), closes [#96](adaures/castopod#96) * **rss:** use originalPath instead of originalMediaPath in Image library ([b4012b7d](adaures/castopod@b4012b7d)) * save transcript and chapters files to podcasts folder ([63f49c71](adaures/castopod@63f49c71)) * **search-episodes:** add fallback sql query using LIKE for search query with less than 4 characters ([e66bf443](adaures/castopod@e66bf443)), closes [#236](adaures/castopod#236) * **security:** add csrf filter + prevent xss attacks by escaping user input ([cd2e1e1d](adaures/castopod@cd2e1e1d)) * set cache expiration to next note publish to show note on publication date ([0a66de3e](adaures/castopod@0a66de3e)) * set episode description footer to null when empty value ([3a7d97d6](adaures/castopod@3a7d97d6)) * set episode duration translation to hardcoded english ([c39efc94](adaures/castopod@c39efc94)), closes [#64](adaures/castopod#64) * set episode guid upon episode creation ([ad8b153f](adaures/castopod@ad8b153f)), closes [#48](adaures/castopod#48) * set episode numbers during import + remove all custom form_helpers + minor ui issues ([99a3b8d3](adaures/castopod@99a3b8d3)) * set interact_as_actor for user upon password reset ([ad8f5f5a](adaures/castopod@ad8f5f5a)), closes [#178](adaures/castopod#178) * set localized slug_field key as string in french language ([17fb29b2](adaures/castopod@17fb29b2)) * set location to null when getting empty string ([71b1b5f7](adaures/castopod@71b1b5f7)) * set storage limit as disk_total_space instead of free space ([7512e2ed](adaures/castopod@7512e2ed)) * **settings:** add .jpg extension to site-icon file input to display all jpeg images ([f611a16c](adaures/castopod@f611a16c)) * **socialinteract:** move social interact uri into uri attribute + update social data upon import ([12b22008](adaures/castopod@12b22008)) * sort episodes by published_at with unpublished episodes at the begining ([1686f840](adaures/castopod@1686f840)), closes [#249](adaures/castopod#249) * sort episodic podcasts by season ([d7b6794f](adaures/castopod@d7b6794f)) * **themes:** update themes stylesheet route and remove css extension ([e4e7e000](adaures/castopod@e4e7e000)) * **types:** update fake seeders types + fix bugs ([76a4bf34](adaures/castopod@76a4bf34)) * **ui:** remove empty tooltip when hovering on sponsor button ([40aa6612](adaures/castopod@40aa6612)) * unpublish episode before deleting it + add validation step before deletion ([f75bd764](adaures/castopod@f75bd764)), closes [#112](adaures/castopod#112) [#55](adaures/castopod#55) * update .htaccess for shared hosting config ([23798263](adaures/castopod@23798263)) * update broken contributor dropdown fields ([e5b75150](adaures/castopod@e5b75150)) * update condition in AnalyticsTrait ([fbc0967c](adaures/castopod@fbc0967c)) * update condition in home controller to redirect to install page ([33f1b91d](adaures/castopod@33f1b91d)) * update conditions when checking for empty max_episodes and season_number ([fbad0b59](adaures/castopod@fbad0b59)) * update form_textarea to prevent escaping value ([78548b5c](adaures/castopod@78548b5c)) * update iso-369 language table seeder ([0c90db44](adaures/castopod@0c90db44)) * update ivoox podcasting icon ([f2b69a47](adaures/castopod@f2b69a47)) * update MarkdownEditor component + restyle Button and other components ([b05d177f](adaures/castopod@b05d177f)) * update purgecss content path for php helper files ([eb70bb4f](adaures/castopod@eb70bb4f)), closes [#59](adaures/castopod#59) * update translations for settings' tasks to include what they should be used for ([06b1a8b2](adaures/castopod@06b1a8b2)) * use slash instead of backslash to call layout ([a80adb22](adaures/castopod@a80adb22)) * use UTC_TIMESTAMP() to get current utc date instead of NOW() in sql queries ([4e22a0d5](adaures/castopod@4e22a0d5)) * **users:** remove required roles input when editing user + prevent owner's roles from being edited ([1c8af755](adaures/castopod@1c8af755)), closes [#239](adaures/castopod#239) * **ux:** allow for empty message upon episode publication and warn user on submit ([33d01b8d](adaures/castopod@33d01b8d)), closes [#129](adaures/castopod#129) * **ux:** have podcast dashboard card link to podcast dashboard if only one podcast in instance ([7dabee58](adaures/castopod@7dabee58)) * **ux:** redirect user to install page on database error in home page ([9017e30b](adaures/castopod@9017e30b)) * validate slug length when submitting episode form + clean permalink edit prefix ([b07ac093](adaures/castopod@b07ac093)) * **video-clips:** check if created video exists before recreating it and failing ([dff12087](adaures/castopod@dff12087)) * **video-clips:** clear video clip cache after process has finished ([3ae62325](adaures/castopod@3ae62325)) * **video-clips:** create unique temporary files for resources to be deleted after generation ([7f7c878c](adaures/castopod@7f7c878c)) * **video-clips:** set audio codec to aac, fixing audio issue on twitter ([3c22c68e](adaures/castopod@3c22c68e)) * **video-clips:** set longer podcast and episode lengths for squared format ([c0301134](adaures/castopod@c0301134)) * **video-clips:** tweak portrait parameters to have subtitles display without overflowing ([2385b1a2](adaures/castopod@2385b1a2)) * **video-clips:** update condition to check if ffmpeg is installed ([b57f0b6e](adaures/castopod@b57f0b6e)), closes [#163](adaures/castopod#163) * **xml-editor:** escape xml editor's content + restyle form sections to prevent overflowing ([588590bd](adaures/castopod@588590bd)) * **xml-editor:** prettify xml even without root node ([ca55c248](adaures/castopod@ca55c248)) ### Features * **activitypub:** add Podcast actor and PodcastEpisode object with comments ([9e1e5d2e](adaures/castopod@9e1e5d2e)) * add about page in admin with instance info + database update button ([d0836f3e](adaures/castopod@d0836f3e)) * add alternate rss feed link tag to podcast page head ([a973c097](adaures/castopod@a973c097)), closes [#35](adaures/castopod#35) * add analytics and unknown useragents ([ec92e65a](adaures/castopod@ec92e65a)) * add audio-clipper toolbar + add video-clip-previewer ([02557539](adaures/castopod@02557539)) * add audio-clipper webcomponent (wip) ([21d4251b](adaures/castopod@21d4251b)) * add autofocus to input field "Email or username" on login page ([19caed4b](adaures/castopod@19caed4b)) * add basic stats on podcast about page ([16705584](adaures/castopod@16705584)) * add breadcrumb in admin area ([7fb1de2c](adaures/castopod@7fb1de2c)), closes [#17](adaures/castopod#17) * add cache to ActivityPub sql queries + cache activity and note pages ([2d297f45](adaures/castopod@2d297f45)) * add CDN url ([972bcbf6](adaures/castopod@972bcbf6)), closes [#37](adaures/castopod#37) * add codemirror to display xml editor for custom rss field ([f15f2624](adaures/castopod@f15f2624)) * add cumulative listening time charts ([588b4d28](adaures/castopod@588b4d28)) * add default icons to Alert component ([0d980012](adaures/castopod@0d980012)) * add DropdownMenu component + remove global audio player in admin ([abb7fbac](adaures/castopod@abb7fbac)) * add episode_numbering() component helper to display episode and season numbers ([3f4a6bd0](adaures/castopod@3f4a6bd0)) * add french translation ([196920d6](adaures/castopod@196920d6)) * add heading component + update ecs rules to fix views ([23bdc6f8](adaures/castopod@23bdc6f8)) * add housekeeping task to run after migrations ([89dee41d](adaures/castopod@89dee41d)) * add install wizard form to bootstrap database and create the first superadmin user ([cba871c5](adaures/castopod@cba871c5)), closes [#2](adaures/castopod#2) * add instructions on production error page to ease Castopod debugging process ([9eab54e0](adaures/castopod@9eab54e0)), closes [#224](adaures/castopod#224) * add ISO 3166 country codes ([97cd94b4](adaures/castopod@97cd94b4)) * add js audio player on podcast, admin and embeddable player pages + fix admon episodes ux ([0e14eb4d](adaures/castopod@0e14eb4d)), closes [#131](adaures/castopod#131) * add label to sponsor button on podcast page ([c29c018c](adaures/castopod@c29c018c)), closes [#162](adaures/castopod#162) * add legalNoticeURL to app config for setting an external url to legal notice ([711843a0](adaures/castopod@711843a0)) * add lock podcast according to the Podcastindex podcast-namespace to prevent unauthozized import ([72b30127](adaures/castopod@72b30127)) * add map analytics, add episodes analytics, clean analytics page layout, translate countries ([07eae83a](adaures/castopod@07eae83a)) * add media entity and link documents, images and audio files to it ([6ecf2866](adaures/castopod@6ecf2866)) * add notifications inbox for actors ([999999e3](adaures/castopod@999999e3)), closes [#215](adaures/castopod#215) * add Noto Sans Mono font to use for durations + button to access new video clip form in list ([7609bb60](adaures/castopod@7609bb60)) * add npm for js dependencies + move src/ files to root folder ([cbb83a6f](adaures/castopod@cbb83a6f)) * add Open Graph and Twitter meta tags ([af970b8b](adaures/castopod@af970b8b)), closes [#41](adaures/castopod#41) * add pages table to store custom instance pages (eg. legal-notice, cookie policy, etc.) ([9c224a8a](adaures/castopod@9c224a8a)), closes [#24](adaures/castopod#24) * add permanent delete feature for podcasts
([dbb4030d](adaures/castopod@dbb4030d)), closes [#89](adaures/castopod#89) * add platform models ([a333d291](adaures/castopod@a333d291)) * add platforms form in podcast settings ([043f49c7](adaures/castopod@043f49c7)) * add platforms tables ([ce593441](adaures/castopod@ce593441)) * add podcast banner field for each podcast + refactor images configuration ([4a8147bf](adaures/castopod@4a8147bf)) * add premium podcasts to manage subscriptions for premium episodes ([3234500e](adaures/castopod@3234500e)), closes [#193](adaures/castopod#193) * add publish feature for podcasts and set draft by default ([3d363f2e](adaures/castopod@3d363f2e)), closes [#128](adaures/castopod#128) [#220](adaures/castopod#220) * add remote_url alternative for transcript and chapters files ([3143c9ad](adaures/castopod@3143c9ad)) * add replied to post or comment to reply element ([d0f9c601](adaures/castopod@d0f9c601)) * add schema.org json-ld objects to podcasts, episodes, posts and comments pages ([902f959b](adaures/castopod@902f959b)) * add task to housekeeping setting for resetting all instance counts ([9303e51b](adaures/castopod@9303e51b)) * add unique listeners analytics ([3a492581](adaures/castopod@3a492581)) * add update rss feed feature for podcasts to import their latest episodes ([5eb9dc16](adaures/castopod@5eb9dc16)), closes [#183](adaures/castopod#183) * add user permissions and basic groups to handle authorizations ([d58e5187](adaures/castopod@d58e5187)), closes [#3](adaures/castopod#3) [#18](adaures/castopod#18) * add WebSub module for pushing feed updates to open hubs ([10d3f737](adaures/castopod@10d3f737)) * **admin:** add instance wide dashboard with storage and bandwidth usage ([b1a6c02e](adaures/castopod@b1a6c02e)), closes [#216](adaures/castopod#216) * **admin:** add search form in podcast episodes list ([6be5d128](adaures/castopod@6be5d128)), closes [#26](adaures/castopod#26) * **admin:** make header stick on scroll and show title + action buttons using css only ([d60498c1](adaures/castopod@d60498c1)) * **admin:** update admin layout for better ux + update brand pine colors ([d86142eb](adaures/castopod@d86142eb)) * allow cross origin requests on episode comments ([e12f95ac](adaures/castopod@e12f95ac)) * **analytics-gdpr:** update cached personal data to expire at midnight ([0188b673](adaures/castopod@0188b673)) * **analytics:** add 'other' group to pie charts in order to display more accurate data ([73acef93](adaures/castopod@73acef93)) * **analytics:** add charts and data export ([78625c47](adaures/castopod@78625c47)) * **analytics:** add current date and secret salt to analytics hash for improved privacy ([6f2e7c00](adaures/castopod@6f2e7c00)) * **analytics:** add service name from rss user-agent ([7202b986](adaures/castopod@7202b986)) * **analytics:** add weekday and hour bar charts ([8ab31329](adaures/castopod@8ab31329)) * **api:** add rest api with podcasts read endpoints ([e64001d0](adaures/castopod@e64001d0)), closes [#210](adaures/castopod#210) * apply colour theme to embed player ([9548337a](adaures/castopod@9548337a)), closes [#201](adaures/castopod#201) * **auth:** add auth.enable2FA config to enable two-factor authentication ([7213ed29](adaures/castopod@7213ed29)) * build hashed static files to renew browser cache ([37c54d24](adaures/castopod@37c54d24)), closes [#107](adaures/castopod#107) * **cache:** add podcast and episode pages to cache + clear them after insert or update ([da0f0472](adaures/castopod@da0f0472)) * **categories:** create model, entity, migrations and seeds ([f73b042c](adaures/castopod@f73b042c)) * **clips:** setup clip entities and model + save video clip to have it generated in the background ([2f6fdf90](adaures/castopod@2f6fdf90)) * **comments:** add comments to episodes + update naming of status to post ([bb4752c3](adaures/castopod@bb4752c3)) * **comments:** add like / undo like to comment + add comment page ([0c187ef7](adaures/castopod@0c187ef7)) * **components:** add custom view renderer with ComponentRenderer adapted from bonfire2 ([a95de8ba](adaures/castopod@a95de8ba)) * create optimized & resized images upon upload ([02e4441f](adaures/castopod@02e4441f)), closes [#6](adaures/castopod#6) * **custom-rss:** add custom xml tag injection in rss feed for ❬channel❭ and ❬item❭ ([6ecdaad9](adaures/castopod@6ecdaad9)) * **datetime-picker:** set material_green theme to flatpickr ([3ce65410](adaures/castopod@3ce65410)) * **devcontainer:** add devcontainer settings for dev environment ([69e72667](adaures/castopod@69e72667)) * display castopod version in admin footer ([9f2574e6](adaures/castopod@9f2574e6)), closes [#68](adaures/castopod#68) * display legal disclaimer and warning on podcast import page ([2f07992e](adaures/castopod@2f07992e)), closes [#34](adaures/castopod#34) * edit + delete podcast and episode ([ac5f0c73](adaures/castopod@ac5f0c73)) * **embeddable-player:** add embeddable player widget ([141788fa](adaures/castopod@141788fa)) * enhance admin ui with responsive design and ux improvements ([2d44b457](adaures/castopod@2d44b457)), closes [#31](adaures/castopod#31) [#9](adaures/castopod#9) * enhance ui using javascript in admin area ([c0e66d5f](adaures/castopod@c0e66d5f)) * **episode-unpublish:** remove episode comments upon unpublish ([78acd7f5](adaures/castopod@78acd7f5)) * **episode:** add form to allow editing episode's publication date to a past date ([d783d16e](adaures/castopod@d783d16e)), closes [#97](adaures/castopod#97) * **episodes:** add create form and view pages for episode ([f3b2c8b8](adaures/castopod@f3b2c8b8)), closes [#1](adaures/castopod#1) * **episodes:** add migrations, model and entity for episodes table ([04448217](adaures/castopod@04448217)) * **episodes:** replace all audio file URL parameters with base64 encoded data ([e1f65cd3](adaures/castopod@e1f65cd3)) * **episodes:** replace soft delete with permanent delete ([eb9ff522](adaures/castopod@eb9ff522)) * **episodes:** schedule episode with future publication_date by using cache expiration time ([4f1e773c](adaures/castopod@4f1e773c)), closes [#47](adaures/castopod#47) * **fediverse:** implement activitypub protocols + update user interface ([2f525c0f](adaures/castopod@2f525c0f)), closes [#69](adaures/castopod#69) [#65](adaures/castopod#65) [#85](adaures/castopod#85) [#51](adaures/castopod#51) [#91](adaures/castopod#91) [#92](adaures/castopod#92) [#88](adaures/castopod#88) * **fonts:** replace Montserrat with Inter for better readablity ([bfa11d00](adaures/castopod@bfa11d00)) * **GDPR:** add GDPR.yml file to public/.well-known/ ([86bccc3d](adaures/castopod@86bccc3d)) * **gdpr:** add purpose for granting access to premium content ([47d6d81b](adaures/castopod@47d6d81b)) * **home:** sort podcasts by recent activity + add dropdown menu to choose between sorting options ([7b89da61](adaures/castopod@7b89da61)), closes [#164](adaures/castopod#164) * **housekeeping:** add clear_cache option to flush redis or files cache ([99bfac0b](adaures/castopod@99bfac0b)) * **i18n:** add 7 new languages + update german translations ([d021abb5](adaures/castopod@d021abb5)) * **i18n:** add german language as supported locale + create Language files from english source ([c220b310](adaures/castopod@c220b310)) * **i18n:** add Norwegian Nynorsk to supported locales ([ced61fc2](adaures/castopod@ced61fc2)) * **i18n:** add Polish translation ([2d83b44a](adaures/castopod@2d83b44a)) * **i18n:** add Spanish to supported locales ([e340b54a](adaures/castopod@e340b54a)) * **i18n:** add support for German and Brazilian Portuguese languages ([c9b9fe4e](adaures/castopod@c9b9fe4e)) * **i18n:** add support for Simplified Chinese (zh-Hans) and Catalan (ca) locales ([48d14434](adaures/castopod@48d14434)) * **icons:** add default icons for podcasting, social and funding platforms + remove complex icons ([5bcdfebe](adaures/castopod@5bcdfebe)), closes [#166](adaures/castopod#166) [#167](adaures/castopod#167) [#170](adaures/castopod#170) * **icons:** add podnews icon to podcasting platforms ([5f423557](adaures/castopod@5f423557)), closes [#190](adaures/castopod#190) * import podcast from an rss feed url ([9a5d5a15](adaures/castopod@9a5d5a15)), closes [#21](adaures/castopod#21) * integrate stylized form components and update podcast edit page ([65367295](adaures/castopod@65367295)) * make displayed publication time as relative time using @github/time-elements ([230e139e](adaures/castopod@230e139e)) * make episode description more visible on episode pages ([90533be0](adaures/castopod@90533be0)), closes [#171](adaures/castopod#171) * **map:** display geolocated episodes on a map page ([4357cc25](adaures/castopod@4357cc25)) * **media:** clean media api + create an entity per media type ([fafaa7e6](adaures/castopod@fafaa7e6)) * **media:** save audio, images, transcripts and chapters to media for episode and persons ([58e2a00a](adaures/castopod@58e2a00a)) * **meta-tags:** add activitypub alternate links to podcast, episode, comment and post pages ([bd61752b](adaures/castopod@bd61752b)) * minor corrections to some tables ([3bf9420b](adaures/castopod@3bf9420b)) * **monetization:** add Web Monetization support ([96a6026f](adaures/castopod@96a6026f)) * **nodeinfo2:** add .well-known route for nodeinfo2 containing metadata about the castopod instance ([88fddc81](adaures/castopod@88fddc81)) * **partner:** add link and image in episode description ([ad07bb93](adaures/castopod@ad07bb93)) * **person:** add podcastindex.org namespace person tag ([8acd011f](adaures/castopod@8acd011f)) * **platforms:** add AntennaPod ([53e9cfd6](adaures/castopod@53e9cfd6)) * **platforms:** add Fediverse and some funding platforms, add link on logo ([afc3d502](adaures/castopod@afc3d502)) * **platforms:** add helloasso ([16cb993e](adaures/castopod@16cb993e)) * **platforms:** add missing newpodcastapps.com's platforms ([92dd370e](adaures/castopod@92dd370e)) * **platforms:** add pod.link ([3d7a2320](adaures/castopod@3d7a2320)) * **platforms:** add Podcast Index ([ad52b1cc](adaures/castopod@ad52b1cc)) * **platforms:** add podfriend ([9fdc8d32](adaures/castopod@9fdc8d32)) * **podcast-form:** add new_feed_url field to set an url when changing domain or host ([e7eec48e](adaures/castopod@e7eec48e)) * **podcast-form:** update routes and redirect to podcast page ([12ce9057](adaures/castopod@12ce9057)) * **podcast:** create a podcast using form ([1202ba35](adaures/castopod@1202ba35)) * **podcasting 2.0:** update podcast:social tag to adhere to latest spec ([a597cf4e](adaures/castopod@a597cf4e)) * prefill season and episode numbers + set episode number as mandatory for serial podcasts ([07d740b7](adaures/castopod@07d740b7)), closes [#134](adaures/castopod#134) [#136](adaures/castopod#136) * **public-ui:** adapt public podcast and episode pages to wireframes ([40a0535f](adaures/castopod@40a0535f)), closes [#30](adaures/castopod#30) [#13](adaures/castopod#13) * **pwa:** add service-worker + webmanifest for each podcasts to have them install on devices ([fee2c1c0](adaures/castopod@fee2c1c0)) * redesign public podcast and episode pages + remove any information clutter for better ux ([93214007](adaures/castopod@93214007)) * replace form helper functions with components in admin template ([e64548b9](adaures/castopod@e64548b9)) * replace slug field with interactive permalink component ([578022b8](adaures/castopod@578022b8)) * restyle episode and person cards + add focus style to interactive elements for a11y ([a505a1de](adaures/castopod@a505a1de)) * **rss:** add ˂podcast:guid˃ tag for channel ([1fab10eb](adaures/castopod@1fab10eb)) * **rss:** add podcast-namespace tags for platforms + previousUrl tag ([dbba8dc5](adaures/castopod@dbba8dc5)), closes [#73](adaures/castopod#73) [#75](adaures/castopod#75) [#76](adaures/castopod#76) [#80](adaures/castopod#80) * **rss:** add podcast:comments tag to link to episode comments ([32e8c7c1](adaures/castopod@32e8c7c1)) * **rss:** add podcast:location tag ([c0a22829](adaures/castopod@c0a22829)) * **rss:** add rss feed route without the `.xml` extension ([94c0b7c1](adaures/castopod@94c0b7c1)), closes [#247](adaures/castopod#247) * **rss:** add soundbites according to the podcastindex specs ([6b34617d](adaures/castopod@6b34617d)), closes [#83](adaures/castopod#83) * **rss:** add transcript and chapters support ([e769d83a](adaures/castopod@e769d83a)), closes [#72](adaures/castopod#72) [#82](adaures/castopod#82) * **rss:** generate rss feed from podcast entity ([c815ecd6](adaures/castopod@c815ecd6)) * **rss:** update monetization tag so that it meets PodcastIndex requirements ([4c7ecbee](adaures/castopod@4c7ecbee)) * **select:** enhance select input with choices.js ([910d457c](adaures/castopod@910d457c)) * set app parameter forceGlobalSecureRequests = true forcing requests to go through https ([d9dff1b8](adaures/castopod@d9dff1b8)) * set podcast / episode description in the pages description meta tag ([1c4a5044](adaures/castopod@1c4a5044)), closes [#44](adaures/castopod#44) * **settings:** add general config for instance (site name, description and icon) ([5c56f3e6](adaures/castopod@5c56f3e6)) * **settings:** add theme settings to set an accent color for all public pages ([5c529a83](adaures/castopod@5c529a83)) * simplify podcast page's layout for better ux ([2c0efc65](adaures/castopod@2c0efc65)) * **soundbites:** add soundbite list and creation forms with audio-clipper component ([de193171](adaures/castopod@de193171)) * style file inputs using tailwind's file class ([8208ab67](adaures/castopod@8208ab67)) * **themes:** add ViewThemes library to set views in root themes folder ([7a276764](adaures/castopod@7a276764)) * **themes:** set different default banner per theme ([11c916fe](adaures/castopod@11c916fe)) * **themes:** set generic css variables for colors to enable instance themes ([a746a781](adaures/castopod@a746a781)) * toggle podcast sidebar on smaller screens ([f0205ec2](adaures/castopod@f0205ec2)) * **transcript:** parse srt subtitles into json file + add max file size info below audio file input ([00987610](adaures/castopod@00987610)) * **ui:** create ViewComponents library to enable building class and view files components ([94872f23](adaures/castopod@94872f23)) * update analytics so to meet IABv2 requirements ([03e23a28](adaures/castopod@03e23a28)), closes [#10](adaures/castopod#10) * update pine colors + create charts components ([a50abc13](adaures/castopod@a50abc13)) * **users:** add myth-auth to handle users crud + add admin gateway only accessible by login ([c63a0776](adaures/castopod@c63a0776)), closes [#11](adaures/castopod#11) * **ux:** remove admin dashboard and redirect directly to podcast list ([27c48b8f](adaures/castopod@27c48b8f)) * **video-clip:** add video-clip page with video preview + logs ([42538dd7](adaures/castopod@42538dd7)) * **video-clip:** generate video clips in the bg using a cron job + add video clip page + tidy up UI ([db0e4272](adaures/castopod@db0e4272)) * **video-clips:** add dimensions for portrait and squared formats ([3af404da](adaures/castopod@3af404da)) * **video-clips:** add new themes + add castopod logo as a watermark ([1d1490b0](adaures/castopod@1d1490b0)) * **video-clips:** add route for scheduled video clips + list video clips with status ([2065ebbe](adaures/castopod@2065ebbe)) * **video-clips:** allow episodeNumbering text to stand in the indent of episodeTitle paragraph ([71a063da](adaures/castopod@71a063da)) * **video-clips:** generate a 16:9 video using ffmpeg ([35aa7ea5](adaures/castopod@35aa7ea5)) * **video-clips:** generate subtitles clip using transcript json to have subtitles accross video ([3ce07e45](adaures/castopod@3ce07e45)) * **video-clips:** replace hardcoded colors with config's theme colors ([e462abf6](adaures/castopod@e462abf6)) * **vite:** add vite config to decouple it from CI_ENVIRONMENT ([8721719c](adaures/castopod@8721719c)) * write id3v2 tags to episode's audio file ([4651d01a](adaures/castopod@4651d01a)) ### Performance Improvements * **cache:** update CI4 to use cache's deleteMatching method ([54b84f96](adaures/castopod@54b84f96)) * **cache:** use deleteMatching method to prevent forgetting cached elements in models ([76afc0cf](adaures/castopod@76afc0cf)) * defer javascript + lazy load images for faster page loads ([f0685e44](adaures/castopod@f0685e44)) * **docker:** add redis caching service for development ([05ace8cf](adaures/castopod@05ace8cf)) ### Reverts * **install:** redirect to install in homepage if no database was set ([73f094da](adaures/castopod@73f094da)) * set deprecated config options back in App config ([433745f1](adaures/castopod@433745f1)) * **soundbites:** remove soundbite table from episode's public page ([5dc0f196](adaures/castopod@5dc0f196)) * use basic input file for episodes audio files instead of button for better UX ([d5f22fbb](adaures/castopod@d5f22fbb)) ### BREAKING CHANGES * **analytics:** analytics_podcasts_by_player table and analytics_podcasts procedure were updated -
-
Yassine Doghri authored
-
- Oct 19, 2022
-
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
-
Yassine Doghri authored
-
- Oct 18, 2022
-
-
Yassine Doghri authored
set the right permissions for episode's publication date edit fixes #249
-
Yassine Doghri authored
-
- Oct 17, 2022
-
-
-
Yassine Doghri authored
closes #225
-
Yassine Doghri authored
-
- Oct 16, 2022
-
-
fixes #246
-
Yassine Doghri authored
+ update phpstan and rector configs
-
Yassine Doghri authored
closes #222
-
- Oct 14, 2022
-
-
semantic-release-bot authored
# [1.0.0-beta.24](adaures/castopod@v1.0.0-beta.23...v1.0.0-beta.24) (2022-10-14) ### Bug Fixes * **router:** trim URI slash to match same routes for URIs with and without trailing slash ([9e9375f9](adaures/castopod@9e9375f9)) ### Features * **episode:** add form to allow editing episode's publication date to a past date ([d783d16e](adaures/castopod@d783d16e)), closes [#97](adaures/castopod#97) * **rss:** add rss feed route without the `.xml` extension ([94c0b7c1](adaures/castopod@94c0b7c1)), closes [#247](adaures/castopod#247)
-
-
Yassine Doghri authored
-
Yassine Doghri authored
-