Commit Graph

289 Commits

Author SHA1 Message Date
Benjamin Bellamy 0188b67354 feat(analytics-gdpr): update cached personal data to expire at midnight 2022-04-01 16:35:34 +00:00
Yassine Doghri df8506bb40 build: filter out unsupported locales from the castopod bundle + remove german as supported locale
- add .rsync-filter files to Language folders in order to filter out unsupported locales
- remove
german as supported locale, awaiting completed translation files
- remove unneeded app/Resources/
folder from bundle
2022-04-01 16:35:34 +00:00
Benjamin Bellamy 6f2e7c009c feat(analytics): add current date and secret salt to analytics hash for improved privacy 2022-04-01 16:35:34 +00:00
crowdin d021abb52f feat(i18n): add 7 new languages + update german translations
add Breton, Dutch, Indonesian, Italian, Portuguese, Spanish and Swedish
2022-04-01 16:35:34 +00:00
Yassine Doghri 12b22008a2 fix(socialinteract): move social interact uri into uri attribute + update social data upon import 2022-04-01 16:35:34 +00:00
Yassine Doghri c220b310ed feat(i18n): add german language as supported locale + create Language files from english source 2022-04-01 16:35:34 +00:00
crowdin e985a193dc chore(i18n): update French translations 2022-04-01 16:35:34 +00:00
crowdin f3db223e33 chore: new Crowdin updates 2022-04-01 16:35:34 +00:00
Yassine Doghri 357886b931 refactor(translations): sort french translation keys for Countries.php in admin module 2022-04-01 16:35:34 +00:00
Ola Hneini 9859c7434c fix: change message upon cancellation of episode publication 2022-04-01 16:35:34 +00:00
Yassine Doghri 10d3f73786 feat: add WebSub module for pushing feed updates to open hubs 2022-03-15 16:47:35 +00:00
Yassine Doghri 90e44437bd fix: remove cache from remote follow form to display error messages 2022-03-15 14:05:19 +00:00
Patryk Miś 2d83b44add feat(i18n): add Polish translation 2022-03-04 17:52:52 +00:00
Yassine Doghri b57f0b6eb6 fix(video-clips): update condition to check if ffmpeg is installed
fixes #163
2022-03-04 15:40:38 +00:00
Yassine Doghri cd2e1e1dc3 fix(security): add csrf filter + prevent xss attacks by escaping user input
- update CI4 to v4.1.9's stable production package
- update php and js dependencies to latest
2022-03-04 14:36:32 +00:00
Yassine Doghri a597cf4ecf feat(podcasting 2.0): update podcast:social tag to adhere to latest spec 2022-03-03 16:15:42 +00:00
Yassine Doghri 5bcdfebe64 feat(icons): add default icons for podcasting, social and funding platforms + remove complex icons
- add pleroma, misskey and fosspay platforms
- update adaures/ipcat-php to fix autoload issue
-
fix Breez and Podcast Guru icons

closes #166, #167, #170
2022-02-24 14:48:17 +00:00
Yassine Doghri fa5b5f51a4 docs(init): create documentation website using vitepress
- rename podlibre to adaures
- rename castopod-host to castopod
- simplify README and redirect to docs site
- move INSTALL and UPDATE docs
- add new gitlabci pipeline to deploy docs
- upgrade node to v16 in Dockerfile
2022-02-19 16:06:11 +00:00
Yassine Doghri e7eec48e7b feat(podcast-form): add new_feed_url field to set an url when changing domain or host 2022-02-09 17:44:24 +00:00
Yassine Doghri 91128fad7a fix(fediverse): set model instances as non shared to prevent overlapping 2022-02-05 11:40:30 +00:00
Yassine Doghri 2f2480998f fix(activitypub): allow cors on get requests for routes exposing acitivitypub objects 2022-02-05 10:57:02 +00:00
Yassine Doghri 0128a21ec5 fix(activitypub): add target_actor_id for create activity to broadcast post reply 2022-02-03 14:12:47 +00:00
Yassine Doghri 962dd305f5 fix(activitypub): add target actor id to like / announce activities to send directly to note's actor 2022-02-03 14:12:47 +00:00
Yassine Doghri 8fbf948fbb fix(activitypub): add conditions for possibly missing actor properties + add user-agent to requests 2022-02-03 14:12:36 +00:00
Yassine Doghri b7f285e4e2 fix(http-signature): update SIGNATURE_PATTERN allowing signature keys to be sent in any order
set algorithm key as optional and set defaults for both algorithm (rsa-sha256) and headers (date)
keys
2022-02-03 10:15:59 +00:00
Benjamin Bellamy ee50539591 fix(analytics): set initial value for duration and bandwidth 2022-01-31 16:49:26 +00:00
Yassine Doghri 99bfac0b42 feat(housekeeping): add clear_cache option to flush redis or files cache 2022-01-29 16:42:34 +00:00
Yassine Doghri 42d92d0c8d fix(housekeeping): replace the use of GLOB_BRACE with looping over file extensions
The GLOB_BRACE flag is not available on non GNU systems, such as Solaris or Alpine Linux.

fixes #154
2022-01-29 15:32:38 +00:00
Yassine Doghri f21ca57603 fix(housekeeping): set default sizes value + ignore illegal IFD size error to proceed with script 2022-01-29 15:21:46 +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 67b73c1525 docs: update install, update and readme for next release
fix translation files
2022-01-22 14:44:07 +00:00
Yassine Doghri 06b1a8b29b fix: update translations for settings' tasks to include what they should be used for 2022-01-21 19:51:36 +00:00
Yassine Doghri db191ac31b fix: add translation key for audio-clipper trim labels 2022-01-21 18:29:39 +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 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 c1581c1fd4 refactor: rename audio_file urls to audio urls 2022-01-21 08:52:28 +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 3ae6232585 fix(video-clips): clear video clip cache after process has finished 2022-01-19 19:09:35 +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 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 e65e236bbc refactor: replace hardcoded media root with media_path helper method in settings controller 2022-01-13 16:45:08 +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 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 88fddc81d7 feat(nodeinfo2): add .well-known route for nodeinfo2 containing metadata about the castopod instance 2022-01-06 14:26:32 +00:00
Yassine Doghri 5bf7200fb3 fix(import): add validation for handle field to prevent Router.invalidParameterType error
fixes #119
2022-01-05 16:15:36 +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 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 6809789206 refactor: set episode and podcast type hints next to each option 2021-12-31 10:21:57 +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 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 6ecf2866cf feat: add media entity and link documents, images and audio files to it 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 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 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 025b2f42e6 refactor: replace "embeddable-player" occurrences to "embed" 2021-12-29 12:02:53 +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 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 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 e64548b982 feat: replace form helper functions with components in admin template 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 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 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