Commit Graph

524 Commits

Author SHA1 Message Date
Yassine Doghri 3c22c68ee8 fix(video-clips): set audio codec to aac, fixing audio issue on twitter 2022-01-28 11:06:45 +00:00
Yassine Doghri 45e8f99e75 fix(migrations): ignore invalid utf8 chars for media files metadata + update transcript parser
check that transcript parser constants are defined before declaring them
2022-01-28 10:31:30 +00:00
semantic-release-bot d807ab9732 chore(release): 1.0.0-beta.1 [skip ci]
# 1.0.0-beta.1 (2022-01-23)

### Bug Fixes

* **a11y:** replace active tab color to contrast with background on podcast and episode pages ([f3785e1](f3785e1401))
* **activity-pub:** cache issues when navigating to activity stream urls ([7bcbfb3](7bcbfb32f7))
* **activity-pub:** get database records using new model instances ([92536dd](92536ddb38))
* **activitypub:** set created_by to null for reblog if no user + update episode oembed data ([209dfbd](209dfbd134))
* add admin-audio-player to vite config to have admin player show up ([93cb9b2](93cb9b2470))
* add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error ([339bef8](339bef878e)), closes [#145](https://code.podlibre.org/podlibre/castopod-host/issues/145)
* add category_label component to include parent category in about podcast page ([74e7d68](74e7d68ac8))
* add head request to analytics_hit route ([f0a2f0b](f0a2f0bea4))
* add missing explicit badge for podcasts and episodes ([cdf9f9d](cdf9f9d53f))
* add open graph size for podcast images to replace the inadequate large format ([33aae1f](33aae1f793))
* add public/media folder to castopod bundle ([8053d35](8053d3521b)), closes [#52](https://code.podlibre.org/podlibre/castopod-host/issues/52)
* add translation key for audio-clipper trim labels ([db191ac](db191ac31b))
* add where condition to get episode count without deleted episodes ([7661734](7661734ed2)), closes [#67](https://code.podlibre.org/podlibre/castopod-host/issues/67)
* **admin:** save block and lock switches ([b66c0af](b66c0afc8f))
* **analytics:** redirect to mp3 file even when referer was not set ([9fc388d](9fc388d154))
* **analytics:** remove charts empty values + remove useless language cache ([1678794](1678794153))
* **analytics:** set duration field to precise decimal as episode's audio file duration ([d772685](d772685405))
* **analytics:** update migrations to set decimal precision for latitude and longitude ([714d6b5](714d6b5d49))
* **analytics:** update service management so that it works with new OPAWG slug values ([7fe9d42](7fe9d42500))
* **audio-clipper:** add mouse position offset when stretching clip to prevent content from jumping ([602654b](602654b99b))
* **audio-clipper:** show audio playing progress + put waveform behind audio clipper ([01a09dc](01a09dc447))
* **avatar:** use default avatar when no avatar url has been set ([9d23c7e](9d23c7e7e1)), closes [#111](https://code.podlibre.org/podlibre/castopod-host/issues/111)
* **bundle:** include modules and themes when copying files with rsync ([cd5bb88](cd5bb8835c))
* **bundle:** update vite input files path + add `set -e` in bash scripts to fail if command fails ([0ee53c7](0ee53c71ff))
* **cache:** add locale for podcast and episode pages + clear some persisting cache in models ([9cec8a8](9cec8a81cc)), closes [#42](https://code.podlibre.org/podlibre/castopod-host/issues/42) [#61](https://code.podlibre.org/podlibre/castopod-host/issues/61)
* **cache:** return a non cached view when connected ([e2e7358](e2e735815d))
* **cache:** suffix cache names with authenticated for credits, map and pages ([418a70b](418a70b2a6))
* cast actor_id to pass as int to set_interact_as_actor() function ([56a8e5d](56a8e5d7dd))
* **category:** remove uncategorized option to enforce users in choosing a category ([8c64f25](8c64f25a0e))
* check for database connection and podcasts table existence before redirecting to install ([eb74e81](eb74e81c3d))
* check that additional files are valid when creating episode ([eac5bc8](eac5bc876d))
* check that note has a preview_card_id before displaying it ([acb8b3a](acb8b3a401)), closes [#114](https://code.podlibre.org/podlibre/castopod-host/issues/114)
* clear cache when deleting podcast banner ([99bb40b](99bb40b8bc))
* comment all cache clean after page update to prevent analytics cache deletion ([e6197a4](e6197a4972))
* **comments:** add comment view partials for public pages ([fcecbe1](fcecbe1c68))
* correct chart data ([4d3e9c8](4d3e9c8c02))
* correct percona compatibility issue ([e53f819](e53f819264))
* correct php-fpm issues ([1ef55d7](1ef55d7315))
* correct referrer bug ([ed69b2f](ed69b2f500))
* correction for servers with low int precision ([31b7828](31b7828e77))
* **cors:** add preflight option routes for episode, podcast and status objects ([a281abf](a281abfda4))
* declare typed properties in PHPDoc for php<7.4 ([14dd44d](14dd44d03d)), closes [#23](https://code.podlibre.org/podlibre/castopod-host/issues/23)
* define podcast_id and platform_slug as foreign keys in podcasts_plaforms table ([6e9451a](6e9451a110))
* define podcastNamespaceLink value ([0d744d2](0d744d212d))
* **embeddable-player:** enable any ancestor when X-Frame-Options is set on server ([44a4962](44a4962e0b))
* **embed:** open embedded player's links in new tab ([4aa73d7](4aa73d71e3))
* **episode-form:** show warning to set `memory_limit`, `upload_max_filesize` & `post_max_size` ([3b3c218](3b3c218b9c)), closes [#5](https://code.podlibre.org/podlibre/castopod-host/issues/5) [#86](https://code.podlibre.org/podlibre/castopod-host/issues/86)
* **episodeCount:** add missing brackets to French language file ([c1b4112](c1b411265a))
* **episode:** replace guid's empty string value to null ([441052a](441052af8d))
* **episodes-page:** handle defaultQuery being null when no podcast episodes ([15183b7](15183b7eab)), closes [#100](https://code.podlibre.org/podlibre/castopod-host/issues/100)
* **episodes-table:** set descriptions to be not null ([6774ec1](6774ec10fa))
* **episodes:** add publication status + set publication date to null when none has been set ([d882981](d882981b3a)), closes [#70](https://code.podlibre.org/podlibre/castopod-host/issues/70)
* escape generated feed tag values and remove new lines from public pages meta description ([6238a43](6238a43863)), closes [#57](https://code.podlibre.org/podlibre/castopod-host/issues/57) [#46](https://code.podlibre.org/podlibre/castopod-host/issues/46)
* expire default query cache upon scheduled episode publication ([b72e7c8](b72e7c8691)), closes [#81](https://code.podlibre.org/podlibre/castopod-host/issues/81)
* fix layout bugs in admin and update translation files ([a834171](a83417180c)), closes [#40](https://code.podlibre.org/podlibre/castopod-host/issues/40)
* **follow:** add missing helpers to Actor controller ([ee53a73](ee53a732dc))
* handle HEAD requests on podcast_feed route ([74b2640](74b2640f2a)), closes [#79](https://code.podlibre.org/podlibre/castopod-host/issues/79)
* **images:** set default mimetype if none is specified when getting size info ([6e4acc6](6e4acc64ad))
* **import-with-escaped-characters:** remove \CodeIgniter\HTTP\URI in download_file, closes [#103](https://code.podlibre.org/podlibre/castopod-host/issues/103) ([35b5be0](35b5be095f))
* **import:** add extension when downloading file without + truncate slug if too long ([c5f18bb](c5f18bb6dc))
* **import:** add validation for handle field to prevent Router.invalidParameterType error ([5bf7200](5bf7200fb3)), closes [#119](https://code.podlibre.org/podlibre/castopod-host/issues/119)
* **import:** cast description's SimpleXMLElement to string ([02d17be](02d17be4ff))
* **import:** remove query string from files url ([109c4aa](109c4aa1af))
* **import:** save media files during podcast import + set missing media fields ([a9989d8](a9989d841a))
* **import:** set episode and season numbers to null when not present in item tag ([3211398](3211398c78))
* **import:** use <image><url> tag when no <itunes:image> is present ([20e607a](20e607afb7))
* include missing variables on public ui's episode page and remote_actions ([193b373](193b373bc9))
* **install:** redirect manually to install wizard on first visit ([2ceaaca](2ceaaca44f))
* **install:** redirect to host_url install route on instanceConfig validation error ([99250b1](99250b1868))
* **install:** redirect to input baseUrl after instance config ([2426af7](2426af7de8)), closes [#53](https://code.podlibre.org/podlibre/castopod-host/issues/53)
* **interact-as:** set actor_id instead of podcast id upon login event ([5dfade7](5dfade7cf3)), closes [#104](https://code.podlibre.org/podlibre/castopod-host/issues/104)
* **json-ld:** add missing properties to PodcastSeries object ([e97266c](e97266c5d4))
* keep subtitle line breaks when parsing srt file to json ([cfb3da6](cfb3da6592))
* **layouts:** replace holy-grail layout with tailwind config + widen public podcast layout ([be5a287](be5a28787f))
* **map:** update episode markers query to discard unpublished episodes ([b3caac4](b3caac45b1))
* **md-editor:** build new markdown editor with lit + github/markdown-toolbar-element ([9ec1cb9](9ec1cb93da)), closes [#93](https://code.podlibre.org/podlibre/castopod-host/issues/93) [#94](https://code.podlibre.org/podlibre/castopod-host/issues/94) [#120](https://code.podlibre.org/podlibre/castopod-host/issues/120)
* minor corrections ([13be386](13be386842))
* move analytics to helper ([d311917](d31191732e))
* **multiselect:** add missing class names in choices options for purge to work properly ([719538d](719538d0cc))
* **open-graph:** replace non existant episode description to podcast description in podcast page ([b02584e](b02584ee60))
* **package.json:** update destination of postcss generation scripts ([21413f8](21413f8af3))
* **pages:** add locale to page cache ([8f999ce](8f999ce2f7))
* **partner:** set correct image URL ([61554be](61554be12a))
* pass timezone to relative time component to show the localized time in the UI ([b9db936](b9db936461))
* **persons:** prevent overflow of persons list by adding horizontal scroll ([9e8995d](9e8995dc6e))
* **persons:** set person picture as optional for better ux ([7fdea63](7fdea63de7)), closes [#125](https://code.podlibre.org/podlibre/castopod-host/issues/125)
* **platforms:** display platform link only when visible is toggled on ([6e503c8](6e503c8d61)), closes [#39](https://code.podlibre.org/podlibre/castopod-host/issues/39)
* **podcast-import:** move guid attribute declaration for Episode entity to include slug data ([5d02ae3](5d02ae3990))
* **pwa:** add scope to webmanifests to allow installing an app per podcast ([74c683e](74c683eb44))
* **pwa:** set app display as standalone in the webmanifests ([7aa37d2](7aa37d24ac))
* re-order graph values ([35f633b](35f633b4c7))
* redirect to non cached views when authenticated in public views ([482b47b](482b47ba6b))
* **release:** add missing version number to castopod-host package ([8f3e9d9](8f3e9d90c1))
* remove defer from js script declaration as it is a module ([18ae557](18ae557e97))
* remove fixed size from podcast sidebar + rearrange account info + space out import radio inputs ([776eec6](776eec6f0d))
* remove required for other_categories field and add podcast_id to latest podcasts query ([5417be0](5417be0049))
* remove required property to persons picture ([c546be3](c546be385b)), closes [#125](https://code.podlibre.org/podlibre/castopod-host/issues/125)
* rename field status to task_status to get scheduled activities ([4ff82a5](4ff82a5f0a))
* rename issue_templates labels ([9f00305](9f00305844))
* rename MyAccount controller file ([e109df3](e109df3004)), closes [#60](https://code.podlibre.org/podlibre/castopod-host/issues/60)
* rename podcast name to podcast handle to clarify field usage ([9dd4c77](9dd4c7741e)), closes [#126](https://code.podlibre.org/podlibre/castopod-host/issues/126)
* reorder fields as composite primary keys for analytics tables ([9660aa9](9660aa97c8))
* replace getWebEnclosureUrl with getEnclosureWebUrl ([8122cea](8122ceaf8a))
* replace hardcoded style links with vite service + set default value for remote transcript url ([3f2e056](3f2e05608e)), closes [#149](https://code.podlibre.org/podlibre/castopod-host/issues/149) [#150](https://code.podlibre.org/podlibre/castopod-host/issues/150)
* replace website key for webpages in breadcrumb translate file ([50e32ff](50e32ff756))
* rewrite regenerate image function to use saveSizes method from Image entity ([3889912](38899124ec))
* **rss-import:** add Castopod user-agent, handle redirects for downloaded files, add Content namespace ([214243b](214243b3fe))
* **rss:** cast number type values to string in rss_helper ([7180ae9](7180ae9ec7)), closes [#148](https://code.podlibre.org/podlibre/castopod-host/issues/148)
* **rss:** do not escape podcast and episode titles in the xml ([0dd3b7e](0dd3b7e0bf)), closes [#138](https://code.podlibre.org/podlibre/castopod-host/issues/138) [#71](https://code.podlibre.org/podlibre/castopod-host/issues/71)
* **rss:** set ❬itunes:author❭ tag to owner_name if publisher not specified ([2271c14](2271c1445b)), closes [#96](https://code.podlibre.org/podlibre/castopod-host/issues/96)
* **rss:** use originalPath instead of originalMediaPath in Image library ([b4012b7](b4012b7d2e))
* save transcript and chapters files to podcasts folder ([63f49c7](63f49c719f))
* set cache expiration to next note publish to show note on publication date ([0a66de3](0a66de3e6c))
* set episode description footer to null when empty value ([3a7d97d](3a7d97d660))
* set episode duration translation to hardcoded english ([c39efc9](c39efc9489)), closes [#64](https://code.podlibre.org/podlibre/castopod-host/issues/64)
* set episode guid upon episode creation ([ad8b153](ad8b153f2a)), closes [#48](https://code.podlibre.org/podlibre/castopod-host/issues/48)
* set episode numbers during import + remove all custom form_helpers + minor ui issues ([99a3b8d](99a3b8d33e))
* set localized slug_field key as string in french language ([17fb29b](17fb29b209))
* set location to null when getting empty string ([71b1b5f](71b1b5f775))
* **settings:** add .jpg extension to site-icon file input to display all jpeg images ([f611a16](f611a16cd0))
* sort episodic podcasts by season ([d7b6794](d7b6794f68))
* **themes:** update themes stylesheet route and remove css extension ([e4e7e00](e4e7e0005e))
* **types:** update fake seeders types + fix bugs ([76a4bf3](76a4bf3441))
* unpublish episode before deleting it + add validation step before deletion ([f75bd76](f75bd76458)), closes [#112](https://code.podlibre.org/podlibre/castopod-host/issues/112) [#55](https://code.podlibre.org/podlibre/castopod-host/issues/55)
* update .htaccess for shared hosting config ([2379826](2379826352))
* update broken contributor dropdown fields ([e5b7515](e5b7515023))
* update condition in AnalyticsTrait ([fbc0967](fbc0967caa))
* update condition in home controller to redirect to install page ([33f1b91](33f1b91d55))
* update conditions when checking for empty max_episodes and season_number ([fbad0b5](fbad0b59f6))
* update iso-369 language table seeder ([0c90db4](0c90db44c4))
* update MarkdownEditor component + restyle Button and other components ([b05d177](b05d177f1b))
* update purgecss content path for php helper files ([eb70bb4](eb70bb4f70)), closes [#59](https://code.podlibre.org/podlibre/castopod-host/issues/59)
* update translations for settings' tasks to include what they should be used for ([06b1a8b](06b1a8b29b))
* use slash instead of backslash to call layout ([a80adb2](a80adb2295))
* **ux:** allow for empty message upon episode publication and warn user on submit ([33d01b8](33d01b8d4f)), closes [#129](https://code.podlibre.org/podlibre/castopod-host/issues/129)
* **ux:** redirect user to install page on database error in home page ([9017e30](9017e30bf4))
* **video-clips:** check if created video exists before recreating it and failing ([dff1208](dff1208725))
* **video-clips:** clear video clip cache after process has finished ([3ae6232](3ae6232585))
* **video-clips:** create unique temporary files for resources to be deleted after generation ([7f7c878](7f7c878cb6))
* **video-clips:** tweak portrait parameters to have subtitles display without overflowing ([2385b1a](2385b1a292))
* **xml-editor:** escape xml editor's content + restyle form sections to prevent overflowing ([588590b](588590bd2c))

### Features

* **activitypub:** add Podcast actor and PodcastEpisode object with comments ([9e1e5d2](9e1e5d2e86))
* add alternate rss feed link tag to podcast page head ([a973c09](a973c097d5)), closes [#35](https://code.podlibre.org/podlibre/castopod-host/issues/35)
* add analytics and unknown useragents ([ec92e65](ec92e65aa4))
* add audio-clipper toolbar + add video-clip-previewer ([0255753](02557539e6))
* add audio-clipper webcomponent (wip) ([21d4251](21d4251b9b))
* add basic stats on podcast about page ([1670558](1670558473))
* add breadcrumb in admin area ([7fb1de2](7fb1de2cf3)), closes [#17](https://code.podlibre.org/podlibre/castopod-host/issues/17)
* add cache to ActivityPub sql queries + cache activity and note pages ([2d297f4](2d297f45b3))
* add CDN url ([972bcbf](972bcbf65e)), closes [#37](https://code.podlibre.org/podlibre/castopod-host/issues/37)
* add codemirror to display xml editor for custom rss field ([f15f262](f15f26240c))
* add cumulative listening time charts ([588b4d2](588b4d28da))
* add DropdownMenu component + remove global audio player in admin ([abb7fba](abb7fbac27))
* add episode_numbering() component helper to display episode and season numbers ([3f4a6bd](3f4a6bd0b9))
* add french translation ([196920d](196920d62f))
* add heading component + update ecs rules to fix views ([23bdc6f](23bdc6f8e3))
* add housekeeping task to run after migrations ([89dee41](89dee41d58))
* add install wizard form to bootstrap database and create the first superadmin user ([cba871c](cba871c5df)), closes [#2](https://code.podlibre.org/podlibre/castopod-host/issues/2)
* add ISO 3166 country codes ([97cd94b](97cd94b474))
* add js audio player on podcast, admin and embeddable player pages + fix admon episodes ux ([0e14eb4](0e14eb4d3f)), closes [#131](https://code.podlibre.org/podlibre/castopod-host/issues/131)
* add lock podcast according to the Podcastindex podcast-namespace to prevent unauthozized import ([72b3012](72b301272e))
* add map analytics, add episodes analytics, clean analytics page layout, translate countries ([07eae83](07eae83a00))
* add media entity and link documents, images and audio files to it ([6ecf286](6ecf2866cf))
* add Noto Sans Mono font to use for durations + button to access new video clip form in list ([7609bb6](7609bb6033))
* add npm for js dependencies + move src/ files to root folder ([cbb83a6](cbb83a6f30))
* add Open Graph and Twitter meta tags ([af970b8](af970b8bac)), closes [#41](https://code.podlibre.org/podlibre/castopod-host/issues/41)
* add pages table to store custom instance pages (eg. legal-notice, cookie policy, etc.) ([9c224a8](9c224a8ac6)), closes [#24](https://code.podlibre.org/podlibre/castopod-host/issues/24)
* add platform models ([a333d29](a333d29196))
* add platforms form in podcast settings ([043f49c](043f49c784))
* add platforms tables ([ce59344](ce5934419a))
* add podcast banner field for each podcast + refactor images configuration ([4a8147b](4a8147bfbb))
* add remote_url alternative for transcript and chapters files ([3143c9a](3143c9ad36))
* add replied to post or comment to reply element ([d0f9c60](d0f9c6018f))
* add schema.org json-ld objects to podcasts, episodes, posts and comments pages ([902f959](902f959b30))
* add task to housekeeping setting for resetting all instance counts ([9303e51](9303e51bc5))
* add unique listeners analytics ([3a49258](3a4925816f))
* add user permissions and basic groups to handle authorizations ([d58e518](d58e51874a)), closes [#3](https://code.podlibre.org/podlibre/castopod-host/issues/3) [#18](https://code.podlibre.org/podlibre/castopod-host/issues/18)
* **admin:** make header stick on scroll and show title + action buttons using css only ([d60498c](d60498c1be))
* **admin:** update admin layout for better ux + update brand pine colors ([d86142e](d86142ebe7))
* allow cross origin requests on episode comments ([e12f95a](e12f95aca1))
* **analytics:** add 'other' group to pie charts in order to display more accurate data ([73acef9](73acef933f))
* **analytics:** add charts and data export ([78625c4](78625c471b))
* **analytics:** add service name from rss user-agent ([7202b98](7202b9867b))
* **analytics:** add weekday and hour bar charts ([8ab3132](8ab313296b))
* build hashed static files to renew browser cache ([37c54d2](37c54d2477)), closes [#107](https://code.podlibre.org/podlibre/castopod-host/issues/107)
* **cache:** add podcast and episode pages to cache + clear them after insert or update ([da0f047](da0f047281))
* **categories:** create model, entity, migrations and seeds ([f73b042](f73b042cc0))
* **clips:** setup clip entities and model + save video clip to have it generated in the background ([2f6fdf9](2f6fdf9091))
* **comments:** add comments to episodes + update naming of status to post ([bb4752c](bb4752c35e))
* **comments:** add like / undo like to comment + add comment page ([0c187ef](0c187ef7a9))
* **components:** add custom view renderer with ComponentRenderer adapted from bonfire2 ([a95de8b](a95de8bab0))
* create optimized & resized images upon upload ([02e4441](02e4441f98)), closes [#6](https://code.podlibre.org/podlibre/castopod-host/issues/6)
* **custom-rss:** add custom xml tag injection in rss feed for ❬channel❭ and ❬item❭ ([6ecdaad](6ecdaad911))
* **devcontainer:** add devcontainer settings for dev environment ([69e7266](69e7266736))
* display castopod version in admin footer ([9f2574e](9f2574e6fb)), closes [#68](https://code.podlibre.org/podlibre/castopod-host/issues/68)
* display legal disclaimer and warning on podcast import page ([2f07992](2f07992e55)), closes [#34](https://code.podlibre.org/podlibre/castopod-host/issues/34)
* edit + delete podcast and episode ([ac5f0c7](ac5f0c7328))
* **embeddable-player:**  add embeddable player widget ([141788f](141788fa08))
* enhance admin ui with responsive design and ux improvements ([2d44b45](2d44b457a0)), closes [#31](https://code.podlibre.org/podlibre/castopod-host/issues/31) [#9](https://code.podlibre.org/podlibre/castopod-host/issues/9)
* enhance ui using javascript in admin area ([c0e66d5](c0e66d5f70))
* **episodes:** add create form and view pages for episode ([f3b2c8b](f3b2c8b84f)), closes [#1](https://code.podlibre.org/podlibre/castopod-host/issues/1)
* **episodes:** add migrations, model and entity for episodes table ([0444821](044482174e))
* **episodes:** replace all audio file URL parameters with base64 encoded data ([e1f65cd](e1f65cd3b5))
* **episodes:** schedule episode with future publication_date by using cache expiration time ([4f1e773](4f1e773c0f)), closes [#47](https://code.podlibre.org/podlibre/castopod-host/issues/47)
* **fediverse:** implement activitypub protocols + update user interface ([2f525c0](2f525c0f6e)), closes [#69](https://code.podlibre.org/podlibre/castopod-host/issues/69) [#65](https://code.podlibre.org/podlibre/castopod-host/issues/65) [#85](https://code.podlibre.org/podlibre/castopod-host/issues/85) [#51](https://code.podlibre.org/podlibre/castopod-host/issues/51) [#91](https://code.podlibre.org/podlibre/castopod-host/issues/91) [#92](https://code.podlibre.org/podlibre/castopod-host/issues/92) [#88](https://code.podlibre.org/podlibre/castopod-host/issues/88)
* **fonts:** replace Montserrat with Inter for better readablity ([bfa11d0](bfa11d007d))
* import podcast from an rss feed url ([9a5d5a1](9a5d5a15b4)), closes [#21](https://code.podlibre.org/podlibre/castopod-host/issues/21)
* integrate stylized form components and update podcast edit page ([6536729](6536729546))
* make displayed publication time as relative time using @github/time-elements ([230e139](230e139e43))
* **map:** display geolocated episodes on a map page ([4357cc2](4357cc25cc))
* **media:** clean media api + create an entity per media type ([fafaa7e](fafaa7e689))
* **media:** save audio, images, transcripts and chapters to media for episode and persons ([58e2a00](58e2a00a87))
* **meta-tags:** add activitypub alternate links to podcast, episode, comment and post pages ([bd61752](bd61752be2))
* minor corrections to some tables ([3bf9420](3bf9420b59))
* **monetization:** add Web Monetization support ([96a6026](96a6026f1d))
* **nodeinfo2:** add .well-known route for nodeinfo2 containing metadata about the castopod instance ([88fddc8](88fddc81d7))
* **partner:** add link and image in episode description ([ad07bb9](ad07bb9330))
* **person:** add podcastindex.org namespace person tag ([8acd011](8acd011f13))
* **platforms:** add AntennaPod ([53e9cfd](53e9cfd61c))
* **platforms:** add Fediverse and some funding platforms, add link on logo ([afc3d50](afc3d50289))
* **platforms:** add helloasso ([16cb993](16cb993ee6))
* **platforms:** add missing newpodcastapps.com's platforms ([92dd370](92dd370e2f))
* **platforms:** add pod.link ([3d7a232](3d7a2320dd))
* **platforms:** add Podcast Index ([ad52b1c](ad52b1cc2b))
* **platforms:** add podfriend ([9fdc8d3](9fdc8d3293))
* **podcast-form:** update routes and redirect to podcast page ([12ce905](12ce905799))
* **podcast:** create a podcast using form ([1202ba3](1202ba3545))
* prefill season and episode numbers + set episode number as mandatory for serial podcasts ([07d740b](07d740b79f)), closes [#134](https://code.podlibre.org/podlibre/castopod-host/issues/134) [#136](https://code.podlibre.org/podlibre/castopod-host/issues/136)
* **public-ui:** adapt public podcast and episode pages to wireframes ([40a0535](40a0535fc1)), closes [#30](https://code.podlibre.org/podlibre/castopod-host/issues/30) [#13](https://code.podlibre.org/podlibre/castopod-host/issues/13)
* **pwa:** add service-worker + webmanifest for each podcasts to have them install on devices ([fee2c1c](fee2c1c0d0))
* redesign public podcast and episode pages + remove any information clutter for better ux ([9321400](932140077c))
* replace form helper functions with components in admin template ([e64548b](e64548b982))
* replace slug field with interactive permalink component ([578022b](578022b8c5))
* restyle episode and person cards + add focus style to interactive elements for a11y ([a505a1d](a505a1de56))
* **rss:** add ˂podcast:guid˃ tag for channel ([1fab10e](1fab10eb0d))
* **rss:** add podcast-namespace tags for platforms + previousUrl tag ([dbba8dc](dbba8dc581)), closes [#73](https://code.podlibre.org/podlibre/castopod-host/issues/73) [#75](https://code.podlibre.org/podlibre/castopod-host/issues/75) [#76](https://code.podlibre.org/podlibre/castopod-host/issues/76) [#80](https://code.podlibre.org/podlibre/castopod-host/issues/80)
* **rss:** add podcast:comments tag to link to episode comments ([32e8c7c](32e8c7c16a))
* **rss:** add podcast:location tag ([c0a2282](c0a22829bd))
* **rss:** add soundbites according to the podcastindex specs ([6b34617](6b34617d07)), closes [#83](https://code.podlibre.org/podlibre/castopod-host/issues/83)
* **rss:** add transcript and chapters support ([e769d83](e769d83a93)), closes [#72](https://code.podlibre.org/podlibre/castopod-host/issues/72) [#82](https://code.podlibre.org/podlibre/castopod-host/issues/82)
* **rss:** generate rss feed from podcast entity ([c815ecd](c815ecd664))
* **rss:** update monetization tag so that it meets PodcastIndex requirements ([4c7ecbe](4c7ecbee83))
* **select:** enhance select input with choices.js ([910d457](910d457cf8))
* set app parameter forceGlobalSecureRequests = true forcing requests to go through https ([d9dff1b](d9dff1b8bf))
* set podcast / episode description in the pages description meta tag ([1c4a504](1c4a50442b)), closes [#44](https://code.podlibre.org/podlibre/castopod-host/issues/44)
* **settings:** add general config for instance (site name, description and icon) ([5c56f3e](5c56f3e6f0))
* **settings:** add theme settings to set an accent color for all public pages ([5c529a8](5c529a83aa))
* simplify podcast page's layout for better ux ([2c0efc6](2c0efc6563))
* **soundbites:** add soundbite list and creation forms with audio-clipper component ([de19317](de19317138))
* style file inputs using tailwind's file class ([8208ab6](8208ab6785))
* **themes:** add ViewThemes library to set views in root themes folder ([7a27676](7a276764e6))
* **themes:** set different default banner per theme ([11c916f](11c916fe43))
* **themes:** set generic css variables for colors to enable instance themes ([a746a78](a746a781b4))
* toggle podcast sidebar on smaller screens ([f0205ec](f0205ec274))
* **transcript:** parse srt subtitles into json file + add max file size info below audio file input ([0098761](00987610a0))
* **ui:** create ViewComponents library to enable building class and view files components ([94872f2](94872f2338))
* update analytics so to meet IABv2 requirements ([03e23a2](03e23a28bf)), closes [#10](https://code.podlibre.org/podlibre/castopod-host/issues/10)
* update pine colors + create charts components ([a50abc1](a50abc138d))
* **users:** add myth-auth to handle users crud + add admin gateway only accessible by login ([c63a077](c63a077618)), closes [#11](https://code.podlibre.org/podlibre/castopod-host/issues/11)
* **ux:** remove admin dashboard and redirect directly to podcast list ([27c48b8](27c48b8fa9))
* **video-clip:** add video-clip page with video preview + logs ([42538dd](42538dd757))
* **video-clip:** generate video clips in the bg using a cron job + add video clip page + tidy up UI ([db0e427](db0e4272bd))
* **video-clips:** add dimensions for portrait and squared formats ([3af404d](3af404da3d))
* **video-clips:** add new themes + add castopod logo as a watermark ([1d1490b](1d1490b06a))
* **video-clips:** add route for scheduled video clips + list video clips with status ([2065ebb](2065ebbee5))
* **video-clips:** allow episodeNumbering text to stand in the indent of episodeTitle paragraph ([71a063d](71a063dac3))
* **video-clips:** generate a 16:9 video using ffmpeg ([35aa7ea](35aa7ea5d9))
* **video-clips:** generate subtitles clip using transcript json to have subtitles accross video ([3ce07e4](3ce07e455d))
* **video-clips:** replace hardcoded colors with config's theme colors ([e462abf](e462abf6d6))
* **vite:** add vite config to decouple it from CI_ENVIRONMENT ([8721719](8721719cd7))
* write id3v2 tags to episode's audio file ([4651d01](4651d01a84))

### Performance Improvements

* **cache:** update CI4 to use cache's deleteMatching method ([54b84f9](54b84f9684))
* **cache:** use deleteMatching method to prevent forgetting cached elements in models ([76afc0c](76afc0cfa2))
* defer javascript + lazy load images for faster page loads ([f0685e4](f0685e4479))
* **docker:** add redis caching service for development ([05ace8c](05ace8cff2))

### Reverts

* set deprecated config options back in App config ([433745f](433745f194))
* **soundbites:** remove soundbite table from episode's public page ([5dc0f19](5dc0f19656))
* use basic input file for episodes audio files instead of button for better UX ([d5f22fb](d5f22fbb38))

### BREAKING CHANGES

* **analytics:** analytics_podcasts_by_player table and analytics_podcasts procedure were updated
2022-01-23 20:23:27 +00:00
Yassine Doghri 74e7d68ac8 fix: add category_label component to include parent category in about podcast page 2022-01-23 19:58:30 +00:00
Yassine Doghri e2e735815d fix(cache): return a non cached view when connected 2022-01-23 19:39:17 +00:00
Yassine Doghri 74c683eb44 fix(pwa): add scope to webmanifests to allow installing an app per podcast 2022-01-23 19:07:57 +00:00
Yassine Doghri 418a70b2a6 fix(cache): suffix cache names with authenticated for credits, map and pages 2022-01-23 19:00:08 +00:00
Yassine Doghri 18ae557e97 fix: remove defer from js script declaration as it is a module 2022-01-23 18:21:59 +00:00
Yassine Doghri 588590bd2c fix(xml-editor): escape xml editor's content + restyle form sections to prevent overflowing 2022-01-23 16:53:23 +00:00
Yassine Doghri 99bb40b8bc fix: clear cache when deleting podcast banner 2022-01-23 16:02:24 +00:00
Yassine Doghri 209dfbd134 fix(activitypub): set created_by to null for reblog if no user + update episode oembed data 2022-01-23 15:42:56 +00:00
Yassine Doghri 7aa37d24ac fix(pwa): set app display as standalone in the webmanifests 2022-01-23 14:37:44 +00:00
Yassine Doghri 33aae1f793 fix: add open graph size for podcast images to replace the inadequate large format 2022-01-23 12:14:15 +00:00
Yassine Doghri cdf9f9d53f fix: add missing explicit badge for podcasts and episodes 2022-01-21 19:26:31 +00:00
Yassine Doghri db191ac31b fix: add translation key for audio-clipper trim labels 2022-01-21 18:29:39 +00:00
Yassine Doghri f0685e4479 perf: defer javascript + lazy load images for faster page loads 2022-01-21 18:07:43 +00:00
Yassine Doghri ac6ddfc4fb style(video-clips): rename temp files to be easily identified 2022-01-21 17:39:29 +00:00
Yassine Doghri dff1208725 fix(video-clips): check if created video exists before recreating it and failing
update seed scripts to prevent sql error when reloading install page
2022-01-21 17:25:27 +00:00
Yassine Doghri 2385b1a292 fix(video-clips): tweak portrait parameters to have subtitles display without overflowing 2022-01-21 15:24:17 +00:00
Yassine Doghri 7f7c878cb6 fix(video-clips): create unique temporary files for resources to be deleted after generation
- tempfile uniqueness ensures that each process lives in its independent context
- add
writable/temp folder to store video clips temporary resources
- add videoClipWorkers config to
Admin for specifying the number of ffmpeg processes to run in parallel
- update video clip preview
background to better suit the end result
2022-01-21 12:35:50 +00:00
Yassine Doghri 482b47ba6b fix: redirect to non cached views when authenticated in public views 2022-01-21 09:08:14 +00:00
Yassine Doghri c1581c1fd4 refactor: rename audio_file urls to audio urls 2022-01-21 08:52:28 +00:00
Yassine Doghri e97266c5d4 fix(json-ld): add missing properties to PodcastSeries object
rename episode activity cache
2022-01-20 16:50:26 +00:00
Yassine Doghri cfb3da6592 fix: keep subtitle line breaks when parsing srt file to json
update job duration label for video clips list
2022-01-20 15:38:40 +00:00
Yassine Doghri 11c916fe43 feat(themes): set different default banner per theme 2022-01-20 14:51:31 +00:00
Yassine Doghri e4e7e0005e fix(themes): update themes stylesheet route and remove css extension
removing the css extension prevents having the file hijacked by the web server config
2022-01-20 11:26:18 +00:00
Yassine Doghri 8f999ce2f7 fix(pages): add locale to page cache 2022-01-19 18:41:00 +00:00
Yassine Doghri 8721719cd7 feat(vite): add vite config to decouple it from CI_ENVIRONMENT 2022-01-19 18:31:57 +00:00
Yassine Doghri 6e4acc64ad fix(images): set default mimetype if none is specified when getting size info 2022-01-19 12:09:12 +00:00
Yassine Doghri 17fb29b209 fix: set localized slug_field key as string in french language 2022-01-19 11:39:13 +00:00
Yassine Doghri 9303e51bc5 feat: add task to housekeeping setting for resetting all instance counts
set two toggle switches to run housekeeping tasks seperately if needed
2022-01-14 17:42:55 +00:00
Yassine Doghri 89dee41d58 feat: add housekeeping task to run after migrations
add run housekeeping button in general settings page
2022-01-13 16:02:14 +00:00
Yassine Doghri 38899124ec fix: rewrite regenerate image function to use saveSizes method from Image entity 2022-01-11 10:51:10 +00:00
Yassine Doghri 241366130e chore(clips): clear video clip and soundbite cache on delete 2022-01-10 16:52:12 +00:00
Yassine Doghri bd61752be2 feat(meta-tags): add activitypub alternate links to podcast, episode, comment and post pages 2022-01-10 16:05:16 +00:00
Yassine Doghri 3ce07e455d feat(video-clips): generate subtitles clip using transcript json to have subtitles accross video 2022-01-10 14:22:55 +00:00
Yassine Doghri 958c1213ed chore: update codeigniter4 after 4.1.7 hot fix release 2022-01-10 10:31:47 +00:00
Yassine Doghri 00987610a0 feat(transcript): parse srt subtitles into json file + add max file size info below audio file input
remove episode form warning + add javascript validation when uploading a file to check if it's too
big to upload
2022-01-09 16:37:13 +00:00
Yassine Doghri 1670558473 feat: add basic stats on podcast about page
number of seasons and episodes + publication date of the first episode
2022-01-06 16:52:13 +00:00
Yassine Doghri 07d740b79f feat: prefill season and episode numbers + set episode number as mandatory for serial podcasts
closes #134, #136
2022-01-05 16:01:44 +00:00
Yassine Doghri d0cb964b0f refactor: harmonize redirects after submitting forms
go back to form after submitting an edit form
2022-01-05 14:58:53 +00:00
Yassine Doghri 6e9451a110 fix: define podcast_id and platform_slug as foreign keys in podcasts_plaforms table
update discord logo
2022-01-04 16:37:59 +00:00
Yassine Doghri 1fc3da139e chore: update CodeIgniter to latest dev version after 4.1.6 2022-01-04 15:40:27 +00:00
Yassine Doghri de19317138 feat(soundbites): add soundbite list and creation forms with audio-clipper component 2022-01-03 13:52:07 +00:00
Yassine Doghri 602654b99b fix(audio-clipper): add mouse position offset when stretching clip to prevent content from jumping
update Forms.Section component to adapt to full width
2022-01-02 14:11:05 +00:00
Yassine Doghri ad5cd2c2e9 refactor: replace popperjs with floating-ui 2021-12-31 09:42:52 +00:00
Yassine Doghri 02557539e6 feat: add audio-clipper toolbar + add video-clip-previewer 2021-12-30 17:09:24 +00:00
Yassine Doghri 01a09dc447 fix(audio-clipper): show audio playing progress + put waveform behind audio clipper 2021-12-29 17:40:59 +00:00
Yassine Doghri 21d4251b9b feat: add audio-clipper webcomponent (wip) 2021-12-29 12:10:13 +00:00
Yassine Doghri 7609bb6033 feat: add Noto Sans Mono font to use for durations + button to access new video clip form in list 2021-12-29 12:10:13 +00:00
Yassine Doghri db0e4272bd feat(video-clip): generate video clips in the bg using a cron job + add video clip page + tidy up UI 2021-12-29 12:10:13 +00:00
Yassine Doghri 42538dd757 feat(video-clip): add video-clip page with video preview + logs 2021-12-29 12:10:13 +00:00
Yassine Doghri 2065ebbee5 feat(video-clips): add route for scheduled video clips + list video clips with status 2021-12-29 12:10:13 +00:00
Yassine Doghri 2f6fdf9091 feat(clips): setup clip entities and model + save video clip to have it generated in the background 2021-12-29 12:10:13 +00:00
Yassine Doghri 057559183c refactor(migrations): replace 191 value with more relevant one 2021-12-29 12:10:13 +00:00
Yassine Doghri a9989d841a fix(import): save media files during podcast import + set missing media fields 2021-12-29 12:10:13 +00:00
Yassine Doghri 58e2a00a87 feat(media): save audio, images, transcripts and chapters to media for episode and persons 2021-12-29 12:10:13 +00:00
Yassine Doghri fafaa7e689 feat(media): clean media api + create an entity per media type 2021-12-29 12:10:13 +00:00
Yassine Doghri b09acf6c65 build: update dependencies to latest
remove console.logs + add @github/hotkey to replace markdown toolbar shortcuts
2021-12-29 12:10:11 +00:00
Yassine Doghri 6ecf2866cf feat: add media entity and link documents, images and audio files to it 2021-12-29 12:09:32 +00:00
Yassine Doghri 1d1490b06a feat(video-clips): add new themes + add castopod logo as a watermark
fix video colors to portray exact rgb values using libx264rgb encoding + image transparency issue
when overlaying images with php gd
2021-12-29 12:09:32 +00:00
Yassine Doghri e462abf6d6 feat(video-clips): replace hardcoded colors with config's theme colors 2021-12-29 12:09:32 +00:00
Yassine Doghri 827ca03f61 refactor(color-themes): set themes declaration as a config property + generate css file dynamically 2021-12-29 12:09:32 +00:00
Yassine Doghri 71a063dac3 feat(video-clips): allow episodeNumbering text to stand in the indent of episodeTitle paragraph 2021-12-29 12:09:32 +00:00
Yassine Doghri 3af404da3d feat(video-clips): add dimensions for portrait and squared formats 2021-12-29 12:09:32 +00:00
Yassine Doghri 35aa7ea5d9 feat(video-clips): generate a 16:9 video using ffmpeg 2021-12-29 12:09:32 +00:00
Yassine Doghri fee2c1c0d0 feat(pwa): add service-worker + webmanifest for each podcasts to have them install on devices
- configure service-worker using vite-plugin-pwa
- refactor Image entity to generate images of
different types based on size config
- add requirement for webp library for php gd to generate webp
images for instance
- add action to regenerate all instance images for eventual Images config
changes
- enhance google lighthouse metrics for pwa
2021-12-29 12:09:31 +00:00
Yassine Doghri 902f959b30 feat: add schema.org json-ld objects to podcasts, episodes, posts and comments pages
- refactor meta-tags by generating them in the controller and injecting them into the views
- use
`melbahja/seo` library to build opengraph and twitter meta-tags + schema.org objects
2021-12-29 12:06:13 +00:00
Yassine Doghri 5c529a83aa feat(settings): add theme settings to set an accent color for all public pages
set 6 base accent colors: pine, lake, jacaranda, crimson, amber and onyx
2021-12-29 12:06:13 +00:00
Yassine Doghri a746a781b4 feat(themes): set generic css variables for colors to enable instance themes
- set new colors using the css variables for theming in tailwind.config.js
- replace admin and
public colors with new variable enabled colors
2021-12-29 12:06:10 +00:00
Yassine Doghri 4a8147bfbb feat: add podcast banner field for each podcast + refactor images configuration
- rename image fields on podcast, episode and persons for better clarity
- set different sizes
config for podcast cover, banner and persons avatars
- add tiny size for covers
- fix responsive
on admin forms
2021-12-29 12:04:04 +00:00
Yassine Doghri 5c56f3e6f0 feat(settings): add general config for instance (site name, description and icon) 2021-12-29 12:04:01 +00:00
Yassine Doghri 776eec6f0d fix: remove fixed size from podcast sidebar + rearrange account info + space out import radio inputs 2021-12-29 12:03:17 +00:00
Yassine Doghri d0f9c6018f feat: add replied to post or comment to reply element 2021-12-29 12:03:17 +00:00
Yassine Doghri 8208ab6785 feat: style file inputs using tailwind's file class 2021-12-29 12:03:17 +00:00
Yassine Doghri f0205ec274 feat: toggle podcast sidebar on smaller screens
update tailwind to v3.0.0-alpha with its official plugins (forms, typography)
2021-12-29 12:03:15 +00:00
Yassine Doghri a505a1de56 feat: restyle episode and person cards + add focus style to interactive elements for a11y
fix components in follow and remote action pages by calling new instances directly
2021-12-29 12:02:53 +00:00
Yassine Doghri 025b2f42e6 refactor: replace "embeddable-player" occurrences to "embed" 2021-12-29 12:02:53 +00:00
Yassine Doghri be5a28787f fix(layouts): replace holy-grail layout with tailwind config + widen public podcast layout
- add rounded classes with conditional border-radius depending on screen width
- add ring-castopod
class to use on focus states
2021-12-29 12:02:51 +00:00
Yassine Doghri 932140077c feat: redesign public podcast and episode pages + remove any information clutter for better ux
- add About podcast page
- use different layout for episode pages
- improve on user feedback with
design
- restructure app theme folders
- update js packages to latest versions
2021-12-29 12:02:14 +00:00
Yassine Doghri e3bd9df00e refactor: update podcast card style + create partial for public navigation 2021-12-29 12:01:42 +00:00
Yassine Doghri 2c0efc6563 feat: simplify podcast page's layout for better ux 2021-12-29 12:01:40 +00:00
Yassine Doghri f75bd76458 fix: unpublish episode before deleting it + add validation step before deletion
fixes #112, closes #55
2021-12-29 12:00:55 +00:00
Yassine Doghri b9db936461 fix: pass timezone to relative time component to show the localized time in the UI 2021-12-29 12:00:55 +00:00
Yassine Doghri abb7fbac27 feat: add DropdownMenu component + remove global audio player in admin 2021-12-29 12:00:55 +00:00
Yassine Doghri d60498c1be feat(admin): make header stick on scroll and show title + action buttons using css only 2021-12-29 12:00:53 +00:00
Yassine Doghri 99a3b8d33e fix: set episode numbers during import + remove all custom form_helpers + minor ui issues 2021-12-29 11:58:06 +00:00
Yassine Doghri b05d177f1b fix: update MarkdownEditor component + restyle Button and other components 2021-12-29 11:55:43 +00:00
Yassine Doghri 746b518789 refactor: replace ui function components with class components + fix
soundbites js
2021-12-29 11:55:43 +00:00
Yassine Doghri 5413d09737 style: update app layout and map view styles 2021-12-29 11:55:43 +00:00
Yassine Doghri bfa11d007d feat(fonts): replace Montserrat with Inter for better readablity 2021-12-29 11:55:43 +00:00
Yassine Doghri e64548b982 feat: replace form helper functions with components in admin template 2021-12-29 11:55:43 +00:00
Yassine Doghri 6536729546 feat: integrate stylized form components and update podcast edit page 2021-12-29 11:55:43 +00:00
Yassine Doghri 23bdc6f8e3 feat: add heading component + update ecs rules to fix views 2021-12-29 11:55:43 +00:00
Yassine Doghri a50abc138d feat: update pine colors + create charts components 2021-12-29 11:55:43 +00:00
Yassine Doghri d86142ebe7 feat(admin): update admin layout for better ux + update brand pine colors 2021-12-29 11:55:41 +00:00
Yassine Doghri 7a276764e6 feat(themes): add ViewThemes library to set views in root themes folder
app, admin, install and authentication views are now located in root themes/ folder
2021-12-29 11:54:52 +00:00
Yassine Doghri 58c8839902 refactor(componentrenderer): update locateView using a lookupModules property in config 2021-12-29 11:54:52 +00:00
Yassine Doghri a95de8bab0 feat(components): add custom view renderer with ComponentRenderer adapted from bonfire2
- update Component class structure and remove component helper function and ComponentLoader
- update residual activitypub naming to fediverse
2021-12-29 11:54:50 +00:00
Yassine Doghri 5083cd2fda refactor(modules): extract castopod parts into a modules/ folder for a scalable HMVC structure
- create Admin, Analytics, Auth, Fediverse and Install modules in the root modules/ folder
- rename
ActivityPub to Fediverse
2021-12-29 11:54:22 +00:00
Yassine Doghri 94872f2338 feat(ui): create ViewComponents library to enable building class and view files components
- replace some helper components and forms with class components in the ui
- create viewcomponents
service and load the component function to be used in views
2021-12-29 11:54:22 +00:00
Yassine Doghri fcecbe1c68 fix(comments): add comment view partials for public pages 2021-12-29 11:54:22 +00:00
Yassine Doghri 0c187ef7a9 feat(comments): add like / undo like to comment + add comment page 2021-12-29 11:54:22 +00:00
Yassine Doghri bb4752c35e feat(comments): add comments to episodes + update naming of status to post
- remove confusing counts for episode (total favourites, total reblogs)
- add comments section to
episode page to display episode comments + post replies linked to the episode
2021-12-29 11:54:22 +00:00
Yassine Doghri 3ff1364906 chore: update php dependencies to latest 2021-12-29 11:54:20 +00:00
Yassine Doghri f15f26240c feat: add codemirror to display xml editor for custom rss field
- replace hardcoded label values for play_episode_button component
2021-12-29 11:37:16 +00:00
Yassine Doghri 578022b8c5 feat: replace slug field with interactive permalink component
- create permalink-edit web component with slug editing and permalink copy functionalities
- add
@github/clipboard-copy-element
- update npm packages
- replace vscode extension lit-html with
lit-plugin to get css intellisense
2021-12-29 11:37:16 +00:00
Yassine Doghri 230e139e43 feat: make displayed publication time as relative time using @github/time-elements 2021-12-29 11:37:16 +00:00
Yassine Doghri 0e14eb4d3f feat: add js audio player on podcast, admin and embeddable player pages + fix admon episodes ux
- use vimejs as audio player
- add global audio player + play episode buttons on public pages
-
refactor admin episodes list from a grid to a data table
- arrange episode cards to be more
readable

closes #131
2021-12-29 11:37:16 +00:00
Yassine Doghri b72e7c8691 fix: expire default query cache upon scheduled episode publication
fix #81
2021-12-29 11:37:16 +00:00
Yassine Doghri 7fdea63de7 fix(persons): set person picture as optional for better ux
- use default avatar image if person image is not set
- add thumbnail and medium default avatar
images
- set default avatar images directly in public/media folder
- remove public/media's root
folder from .gitignore
- remove unnecessary copy:images script and cpy-cli package

closes #125
2021-12-29 11:37:16 +00:00
Yassine Doghri 0dd3b7e0bf fix(rss): do not escape podcast and episode titles in the xml
- add parameter to prevent escaping value in SimpleRSSElement's addChild method
- clean prosemirror residue (typedef + DEPENDENCIES.md)
- remove type definition generation in tsconfig

fixes #138, #71
2021-12-29 11:37:16 +00:00
Yassine Doghri 9ec1cb93da fix(md-editor): build new markdown editor with lit + github/markdown-toolbar-element
- create markdown-write-preview + markdown-preview webcomponents using lit
- create
form_markdown_editor helper form component
- simplify form_dropdown and form_multiselect
components
- fix partner fields display

fixes #93, #94, #120
2021-12-29 11:37:16 +00:00
Yassine Doghri 910d457cf8 feat(select): enhance select input with choices.js
- select fields come with a search field
- update language names by fixing missing caps in
LanguageSeeder
- add parent to categoryOptions
2021-12-29 11:37:16 +00:00
Yassine Doghri 9dd4c7741e fix: rename podcast name to podcast handle to clarify field usage
- podcast name was too vague and didn't come clearly for users: handle is more relevant
- update
package.json dependencies and remove unnused packages

closes #126
2021-12-29 11:37:16 +00:00
semantic-release-bot 3a0a76d705 chore(release): 1.0.0-alpha.80 [skip ci]
# [1.0.0-alpha.80](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.79...v1.0.0-alpha.80) (2021-12-29)

### Bug Fixes

* add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error ([339bef8](339bef878e)), closes [#145](https://code.podlibre.org/podlibre/castopod-host/issues/145)
2021-12-29 10:08:43 +00:00
Yassine Doghri 339bef878e fix: add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error
fixes #145
2021-12-29 09:46:32 +00:00
semantic-release-bot ece476b388 chore(release): 1.0.0-alpha.79 [skip ci]
# [1.0.0-alpha.79](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.78...v1.0.0-alpha.79) (2021-12-20)

### Bug Fixes

* **import:** set episode and season numbers to null when not present in item tag ([3211398](3211398c78))
2021-12-20 16:42:51 +00:00
Yassine Doghri 3211398c78 fix(import): set episode and season numbers to null when not present in item tag
update getid3 to latest dev branch
2021-12-20 16:31:03 +00:00
semantic-release-bot 548234aa4d chore(release): 1.0.0-alpha.78 [skip ci]
# [1.0.0-alpha.78](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.77...v1.0.0-alpha.78) (2021-12-15)

### Bug Fixes

* **import:** add extension when downloading file without + truncate slug if too long ([c5f18bb](c5f18bb6dc))
2021-12-15 16:08:58 +00:00
Yassine Doghri c5f18bb6dc fix(import): add extension when downloading file without + truncate slug if too long 2021-12-15 15:44:58 +00:00
semantic-release-bot d86315ed94 chore(release): 1.0.0-alpha.77 [skip ci]
# [1.0.0-alpha.77](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.76...v1.0.0-alpha.77) (2021-11-23)

### Bug Fixes

* **cors:** add preflight option routes for episode, podcast and status objects ([a281abf](a281abfda4))
* **podcast-import:** move guid attribute declaration for Episode entity to include slug data ([5d02ae3](5d02ae3990))
2021-11-23 11:03:31 +00:00
Yassine Doghri 5d02ae3990 fix(podcast-import): move guid attribute declaration for Episode entity to include slug data 2021-11-22 17:01:40 +00:00
Yassine Doghri a281abfda4 fix(cors): add preflight option routes for episode, podcast and status objects 2021-11-22 14:35:44 +00:00
semantic-release-bot a09853ef14 chore(release): 1.0.0-alpha.76 [skip ci]
# [1.0.0-alpha.76](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.75...v1.0.0-alpha.76) (2021-10-26)

### Bug Fixes

* replace hardcoded style links with vite service + set default value for remote transcript url ([3f2e056](3f2e05608e)), closes [#149](https://code.podlibre.org/podlibre/castopod-host/issues/149) [#150](https://code.podlibre.org/podlibre/castopod-host/issues/150)
2021-10-26 10:40:11 +00:00
Yassine Doghri 3f2e05608e fix: replace hardcoded style links with vite service + set default value for remote transcript url
fixes #149, #150
2021-10-26 10:27:57 +00:00
semantic-release-bot 84a0029c56 chore(release): 1.0.0-alpha.75 [skip ci]
# [1.0.0-alpha.75](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.74...v1.0.0-alpha.75) (2021-10-05)

### Bug Fixes

* **rss:** cast number type values to string in rss_helper ([7180ae9](7180ae9ec7)), closes [#148](https://code.podlibre.org/podlibre/castopod-host/issues/148)
2021-10-05 14:44:53 +00:00
Yassine Doghri 7180ae9ec7 fix(rss): cast number type values to string in rss_helper
fixes #148
2021-10-05 13:41:58 +00:00
semantic-release-bot 0f586152b0 chore(release): 1.0.0-alpha.74 [skip ci]
# [1.0.0-alpha.74](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.73...v1.0.0-alpha.74) (2021-09-28)

### Features

* **platforms:** add missing newpodcastapps.com's platforms ([92dd370](92dd370e2f))
2021-09-28 10:40:31 +00:00
Benjamin Bellamy 92dd370e2f feat(platforms): add missing newpodcastapps.com's platforms 2021-09-28 10:26:47 +00:00
semantic-release-bot 3c5d3f65bf chore(release): 1.0.0-alpha.73 [skip ci]
# [1.0.0-alpha.73](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.72...v1.0.0-alpha.73) (2021-09-22)

### Bug Fixes

* **map:** update episode markers query to discard unpublished episodes ([b3caac4](b3caac45b1))
2021-09-22 15:29:24 +00:00
Yassine Doghri b3caac45b1 fix(map): update episode markers query to discard unpublished episodes 2021-09-22 15:07:18 +00:00
semantic-release-bot 797e532727 chore(release): 1.0.0-alpha.72 [skip ci]
# [1.0.0-alpha.72](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.71...v1.0.0-alpha.72) (2021-09-20)

### Bug Fixes

* rename field status to task_status to get scheduled activities ([4ff82a5](4ff82a5f0a))
2021-09-20 10:00:58 +00:00
Yassine Doghri 4ff82a5f0a fix: rename field status to task_status to get scheduled activities
fix: load css using vite service for page view
2021-09-20 09:49:29 +00:00
semantic-release-bot a78cacd3aa chore(release): 1.0.0-alpha.71 [skip ci]
# [1.0.0-alpha.71](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.70...v1.0.0-alpha.71) (2021-09-17)

### Features

* **map:** display geolocated episodes on a map page ([4357cc2](4357cc25cc))
2021-09-17 16:01:13 +00:00
Benjamin Bellamy 4357cc25cc feat(map): display geolocated episodes on a map page 2021-09-17 15:50:55 +00:00
semantic-release-bot 652fa3659e chore(release): 1.0.0-alpha.70 [skip ci]
# [1.0.0-alpha.70](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.69...v1.0.0-alpha.70) (2021-08-31)

### Bug Fixes

* **partner:** set correct image URL ([61554be](61554be12a))
2021-08-31 09:01:26 +00:00
Benjamin Bellamy 61554be12a fix(partner): set correct image URL 2021-08-31 08:52:28 +00:00
semantic-release-bot 1d00a23866 chore(release): 1.0.0-alpha.69 [skip ci]
# [1.0.0-alpha.69](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.68...v1.0.0-alpha.69) (2021-08-23)

### Bug Fixes

* **import:** cast description's SimpleXMLElement to string ([02d17be](02d17be4ff))
2021-08-23 14:20:06 +00:00
Yassine Doghri 02d17be4ff fix(import): cast description's SimpleXMLElement to string
Podcast import crashed because of type errors
2021-08-23 13:49:07 +00:00
semantic-release-bot 4e76266d50 chore(release): 1.0.0-alpha.68 [skip ci]
# [1.0.0-alpha.68](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.67...v1.0.0-alpha.68) (2021-08-19)

### Bug Fixes

* **analytics:** redirect to mp3 file even when referer was not set ([9fc388d](9fc388d154))
2021-08-19 14:37:51 +00:00
Benjamin Bellamy 9fc388d154 fix(analytics): redirect to mp3 file even when referer was not set 2021-08-19 14:08:04 +00:00
semantic-release-bot af7d625462 chore(release): 1.0.0-alpha.67 [skip ci]
# [1.0.0-alpha.67](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.66...v1.0.0-alpha.67) (2021-07-24)

### Features

* allow cross origin requests on episode comments ([e12f95a](e12f95aca1))
2021-07-24 17:01:10 +00:00
Yassine Doghri e12f95aca1
feat: allow cross origin requests on episode comments 2021-07-24 15:34:12 +00:00
semantic-release-bot 797c96c1e6 chore(release): 1.0.0-alpha.66 [skip ci]
# [1.0.0-alpha.66](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.65...v1.0.0-alpha.66) (2021-07-24)

### Features

* **rss:** add podcast:comments tag to link to episode comments ([32e8c7c](32e8c7c16a))
2021-07-24 09:37:02 +00:00
Yassine Doghri 32e8c7c16a
feat(rss): add podcast:comments tag to link to episode comments 2021-07-24 08:49:16 +00:00
semantic-release-bot ed8dc0052c chore(release): 1.0.0-alpha.65 [skip ci]
# [1.0.0-alpha.65](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.64...v1.0.0-alpha.65) (2021-07-22)

### Bug Fixes

* update conditions when checking for empty max_episodes and season_number ([fbad0b5](fbad0b59f6))
2021-07-22 14:40:17 +00:00
Yassine Doghri fbad0b59f6
fix: update conditions when checking for empty max_episodes and season_number 2021-07-19 12:27:27 +00:00
semantic-release-bot 7047d5afb7 chore(release): 1.0.0-alpha.64 [skip ci]
# [1.0.0-alpha.64](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.63...v1.0.0-alpha.64) (2021-07-12)

### Features

* **activitypub:** add Podcast actor and PodcastEpisode object with comments ([9e1e5d2](9e1e5d2e86))
2021-07-12 18:49:14 +00:00
Yassine Doghri 9e1e5d2e86 feat(activitypub): add Podcast actor and PodcastEpisode object with comments 2021-07-12 18:40:22 +00:00
semantic-release-bot b814cfaf7c chore(release): 1.0.0-alpha.63 [skip ci]
# [1.0.0-alpha.63](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.62...v1.0.0-alpha.63) (2021-07-12)

### Features

* build hashed static files to renew browser cache ([37c54d2](37c54d2477)), closes [#107](https://code.podlibre.org/podlibre/castopod-host/issues/107)
2021-07-12 18:01:18 +00:00
Yassine Doghri 37c54d2477 feat: build hashed static files to renew browser cache
- replace rollup config with vitejs
- use vite dev server during development to take advantage of
hot module replacement (HMR)
- add vite service using Vite library to load css and js assets
- update package.json scripts and remove unnecessary
dependencies
- update scripts/bundle-prepare.sh

closes #107
2021-07-12 17:47:56 +00:00
semantic-release-bot cdc660e3b0 chore(release): 1.0.0-alpha.62 [skip ci]
# [1.0.0-alpha.62](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.61...v1.0.0-alpha.62) (2021-07-02)

### Bug Fixes

* **episode:** replace guid's empty string value to null ([441052a](441052af8d))
2021-07-02 07:15:10 +00:00
Yassine Doghri 441052af8d
fix(episode): replace guid's empty string value to null
New episodes were no longer published on some platforms: the item guid was no longer set for new
episodes.
2021-07-02 06:42:03 +00:00
semantic-release-bot 3b5ce93c1b chore(release): 1.0.0-alpha.61 [skip ci]
# [1.0.0-alpha.61](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.60...v1.0.0-alpha.61) (2021-06-23)

### Bug Fixes

* **release:** add missing version number to castopod-host package ([8f3e9d9](8f3e9d90c1))
* **ux:** allow for empty message upon episode publication and warn user on submit ([33d01b8](33d01b8d4f)), closes [#129](https://code.podlibre.org/podlibre/castopod-host/issues/129)
2021-06-23 15:54:31 +00:00
Yassine Doghri 33d01b8d4f
fix(ux): allow for empty message upon episode publication and warn user on submit
- clarify distiction between the announcement post and the show notes
- change "note" occurences in UI by "post"
- show warning message explaining why the podcaster should fill the message area
- the podcaster
can choose to publish the episode with an empty message anyways
- redirect user to episode
dashboard with error message when episode publication pages are inaccessible instead of showing a
404 error
- add a cancel publication button in publish-edit form when episode is scheduled

closes #129
2021-06-23 13:34:59 +00:00
Yassine Doghri 134a071add
refactor: rename all occurences of notes to statuses 2021-06-23 13:34:53 +00:00
semantic-release-bot ddeabf5665 chore(release): 1.0.0-alpha.60 [skip ci]
# [1.0.0-alpha.60](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.59...v1.0.0-alpha.60) (2021-06-21)

### Features

* **rss:** add ˂podcast:guid˃ tag for channel ([1fab10e](1fab10eb0d))
2021-06-21 12:08:38 +00:00
Benjamin Bellamy 1fab10eb0d feat(rss): add ˂podcast:guid˃ tag for channel 2021-06-21 11:58:43 +00:00
semantic-release-bot cc0d56a2f5 chore(release): 1.0.0-alpha.59 [skip ci]
# [1.0.0-alpha.59](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.58...v1.0.0-alpha.59) (2021-06-15)

### Bug Fixes

* check that additional files are valid when creating episode ([eac5bc8](eac5bc876d))
2021-06-15 07:15:18 +00:00
Yassine Doghri eac5bc876d
fix: check that additional files are valid when creating episode 2021-06-15 06:41:28 +00:00
semantic-release-bot 7cb4e3a803 chore(release): 1.0.0-alpha.58 [skip ci]
# [1.0.0-alpha.58](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.57...v1.0.0-alpha.58) (2021-06-11)

### Bug Fixes

* cast actor_id to pass as int to set_interact_as_actor() function ([56a8e5d](56a8e5d7dd))
* **analytics:** set duration field to precise decimal as episode's audio file duration ([d772685](d772685405))
* **analytics:** update migrations to set decimal precision for latitude and longitude ([714d6b5](714d6b5d49))
* check for database connection and podcasts table existence before redirecting to install ([eb74e81](eb74e81c3d))
* save transcript and chapters files to podcasts folder ([63f49c7](63f49c719f))
* set cache expiration to next note publish to show note on publication date ([0a66de3](0a66de3e6c))
* set episode description footer to null when empty value ([3a7d97d](3a7d97d660))
* set location to null when getting empty string ([71b1b5f](71b1b5f775))
* update condition in home controller to redirect to install page ([33f1b91](33f1b91d55))
* **activity-pub:** cache issues when navigating to activity stream urls ([7bcbfb3](7bcbfb32f7))
* **activity-pub:** get database records using new model instances ([92536dd](92536ddb38))
* **category:** remove uncategorized option to enforce users in choosing a category ([8c64f25](8c64f25a0e))
* **install:** redirect manually to install wizard on first visit ([2ceaaca](2ceaaca44f))
* **types:** update fake seeders types + fix bugs ([76a4bf3](76a4bf3441))
* update broken contributor dropdown fields ([e5b7515](e5b7515023))
* **ux:** redirect user to install page on database error in home page ([9017e30](9017e30bf4))
* update condition in AnalyticsTrait ([fbc0967](fbc0967caa))

### Performance Improvements

* **cache:** use deleteMatching method to prevent forgetting cached elements in models ([76afc0c](76afc0cfa2))

### Reverts

* set deprecated config options back in App config ([433745f](433745f194))
2021-06-11 16:15:37 +00:00
Yassine Doghri 56a8e5d7dd
fix: cast actor_id to pass as int to set_interact_as_actor() function 2021-06-11 15:34:11 +00:00
Yassine Doghri d772685405
fix(analytics): set duration field to precise decimal as episode's audio file duration 2021-06-11 14:51:14 +00:00
Yassine Doghri 714d6b5d49
fix(analytics): update migrations to set decimal precision for latitude and longitude
add unsigned for soundbites start time and duration
2021-06-11 13:01:42 +00:00
Yassine Doghri 63f49c719f
fix: save transcript and chapters files to podcasts folder 2021-06-11 09:35:25 +00:00
Yassine Doghri 8d9bba4e9f
refactor: clean episode analytics url by removing `podcasts/` prefix 2021-06-11 09:35:25 +00:00
Yassine Doghri 3a7d97d660
fix: set episode description footer to null when empty value
change Database connection import with db_connect helper
2021-06-11 09:35:24 +00:00
Yassine Doghri 33f1b91d55
fix: update condition in home controller to redirect to install page 2021-06-11 09:35:24 +00:00
Yassine Doghri eb74e81c3d
fix: check for database connection and podcasts table existence before redirecting to install
fix signature regex
2021-06-11 09:35:23 +00:00
Yassine Doghri ac5b2d6e94
ci(bundle): update bundle-prepare script 2021-06-11 09:35:23 +00:00
Yassine Doghri 71b1b5f775
fix: set location to null when getting empty string 2021-06-11 09:35:22 +00:00
Yassine Doghri 2ceaaca44f
fix(install): redirect manually to install wizard on first visit
update php dependencies
2021-06-11 09:35:22 +00:00
Yassine Doghri cc9e4c7dc7
refactor(rector): update contributor controller's remap logic 2021-06-11 09:35:21 +00:00
Yassine Doghri 92536ddb38
fix(activity-pub): get database records using new model instances
update types and some remap logic
2021-06-11 09:35:21 +00:00
Yassine Doghri 76a4bf3441
fix(types): update fake seeders types + fix bugs 2021-06-11 09:35:20 +00:00
Yassine Doghri c72f4be6d8
refactor: add strict types declaration before each file and fix activitypub issues
fix some style issues
2021-06-11 09:35:19 +00:00
Yassine Doghri 76afc0cfa2
perf(cache): use deleteMatching method to prevent forgetting cached elements in models 2021-06-11 09:35:19 +00:00
Yassine Doghri 7bcbfb32f7
fix(activity-pub): cache issues when navigating to activity stream urls 2021-06-11 09:35:19 +00:00
Yassine Doghri e5b7515023
fix: update broken contributor dropdown fields 2021-06-11 09:35:18 +00:00
Yassine Doghri 9017e30bf4
fix(ux): redirect user to install page on database error in home page
When first visiting the home page, users would see an error message that was normal because Castopod
Host wasn't installed yet. From now on, the error is caught to redirect users directly to install
page, preventing them seeing the error and thus, resulting in a better user experience.
2021-06-11 09:35:18 +00:00
Yassine Doghri 0a66de3e6c
fix: set cache expiration to next note publish to show note on publication date
fix episode, podcast and persons forms + episode scheduling
2021-06-11 09:35:17 +00:00
Yassine Doghri fbc0967caa
fix: update condition in AnalyticsTrait 2021-06-11 09:35:17 +00:00
Yassine Doghri 8c64f25a0e
fix(category): remove uncategorized option to enforce users in choosing a category
Apple podcasts requires a category to submit a valid podcast RSS feed. The "uncategorized" category
is not a valid category.
2021-06-11 09:35:16 +00:00
Yassine Doghri 433745f194
revert: set deprecated config options back in App config 2021-06-11 09:35:16 +00:00
Yassine Doghri 91a9670e22
refactor: update app starter files to CI4 4.1.2 2021-06-11 09:35:16 +00:00
Yassine Doghri 88c52db53c
build(docker): optimize Dockerfile and setup vscode devcontainer with all required dependencies
- fix: set mediaBaseURL as baseURL if not defined
- update dev documentation seting up a dev environment
2021-06-11 09:35:09 +00:00
Yassine Doghri 4429a3d481
ci: fix PersonModel issues with static analysis 2021-06-11 09:35:08 +00:00
Yassine Doghri 1a024bdec7
ci: fix rector issues for code-review job to pass 2021-06-11 09:35:07 +00:00
Yassine Doghri 6802bee0db
ci(gitlabci): add easy-coding-standard check for code-style + fix quality scripts 2021-06-11 09:35:06 +00:00
Yassine Doghri aa1612342e
style(ecs): add easy-coding-standard to enforce coding style rules for php
- update .devcontainer settings: remove auto-formatting
for php + set intelephense as default formatter
- remove prettier php plugin as it lacks php 8 support
- add captain hook action for checking style pre-commit
- fix style with ecs on all files except views
2021-06-11 09:34:48 +00:00
Yassine Doghri fb3593f828
refactor: remove all empty declarations + add missing type declarations
update composer dependencies
2021-05-18 17:16:36 +00:00
Yassine Doghri 93e605b406
refactor(persons): move podcast and episode persons models to person model for consistency
- fix lazy loading properties + podcast import controller
- rename all snake_case variables to
camelCase
- fix broken routes
- refactor Location construction logic and setters
2021-05-17 17:11:23 +00:00
Yassine Doghri 6b74a9e98a
refactor: update code base to php 8 and set phpstan lvl to 6 2021-05-14 17:59:35 +00:00
Yassine Doghri 525698d834
ci: remove git hooks before uninstalling composer dev dependencies 2021-05-12 14:12:39 +00:00
Yassine Doghri 231d578d64
refactor: add phpstan and update code to adhere to level 5
- move and refactor Image.php from Libraries to Entities folder
- update some database field names
/ types
- update composer packages
2021-05-12 14:00:25 +00:00
Yassine Doghri 5c5c6da4be
refactor: add rector to enforce type declarations, code quality + style and remove dead code
- update CI process to include quality stage (tests + code review)
- add captainhook to install git pre-commit & pre-push hooks
- remove .devcontainer Dockerfile to use project's docker-compose services: all
services can now be started automatically using vscode
- update docs/setup-development.md
2021-05-12 10:48:30 +00:00
semantic-release-bot a54a5964c3 chore(release): 1.0.0-alpha.57 [skip ci]
# [1.0.0-alpha.57](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.56...v1.0.0-alpha.57) (2021-05-12)

### Bug Fixes

* **follow:** add missing helpers to Actor controller ([ee53a73](ee53a732dc))
2021-05-12 10:32:49 +00:00
Yassine Doghri ee53a732dc
fix(follow): add missing helpers to Actor controller 2021-05-12 10:22:16 +00:00
semantic-release-bot fca7bd6808 chore(release): 1.0.0-alpha.56 [skip ci]
# [1.0.0-alpha.56](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.55...v1.0.0-alpha.56) (2021-05-12)

### Bug Fixes

* **rss:** use originalPath instead of originalMediaPath in Image library ([b4012b7](b4012b7d2e))
2021-05-12 09:16:14 +00:00