Commit Graph

65 Commits

Author SHA1 Message Date
Yassine Doghri 4665741425 fix(embed): set height of player iframe from config 2023-05-21 10:24:57 +00:00
Yassine Doghri a76724a8cf fix(s3): add proxy to serve images from s3 to client
refs #321
2023-04-13 11:46:31 +00:00
Yassine Doghri d93fc98469 feat(media): add s3 to manage media files
Users may choose between filesystem (FS) or S3 to store and manage their media files
2023-03-16 13:00:05 +00:00
Yassine Doghri b63c1dc9b1 feat: add downloads count to episode list 2023-02-28 16:53:58 +00:00
Yassine Doghri 84a6447fd4 ci: fix lint and formatting issues 2023-02-22 16:29:45 +00:00
Yassine Doghri 16527ed529 feat(analytics): add OP3 analytics service option + update episode audio url 2022-12-09 15:04:42 +00:00
Yassine Doghri b07ac093b2 fix: validate slug length when submitting episode form + clean permalink edit prefix 2022-10-19 14:56:39 +00:00
Yassine Doghri d783d16eb7 feat(episode): add form to allow editing episode's publication date to a past date
This allows podcasters to reorganize their published episodes as they see fit

closes #97
2022-10-14 14:37:03 +00:00
Yassine Doghri 3234500e2d feat: add premium podcasts to manage subscriptions for premium episodes
closes #193
2022-09-28 15:02:09 +00:00
Yassine Doghri b1a6c02e56 feat(admin): add instance wide dashboard with storage and bandwidth usage
* add DashboardCard component
* add instance wide podcasts and episodes numbers
* add app.storageLimit environment variable
* divide bytes by 1000 instead of 1024 in stats sql queries

closes #216
2022-07-06 15:29:15 +00:00
Ola Hneini 3d363f2efe feat: add publish feature for podcasts and set draft by default
closes #128, #220
2022-07-05 16:39:20 +00:00
Yassine Doghri 6be5d12877 feat(admin): add search form in podcast episodes list
closes #26
2022-06-17 12:52:36 +00:00
Ola Hneini eb9ff522c2 feat(episodes): replace soft delete with permanent delete
+ add constraint to prevent deleting an episode when published
2022-05-05 15:48:16 +00:00
Yassine Doghri bc6dea2f8a fix: remove value escaping for form inputs and textareas 2022-04-01 16:35:34 +00:00
Ola Hneini 9ea5ca3169 fix: prefill description footer input when creating a new episode 2022-04-01 16:35:34 +00:00
Yassine Doghri 1253096197 fix: add explicit int conversion when formatting episode duration 2022-03-15 15:50:07 +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 9c4f60e00b fix(markdown-editor): remove unnecessary buttons for podcast and episode editors + add extensions
update CommonMark to v2 + add Autolink, SmartPunct and DisallowedRawHtml extensions
2022-02-03 14:12:47 +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 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 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 11c916fe43 feat(themes): set different default banner per theme 2022-01-20 14:51:31 +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 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 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 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 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 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 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 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 d0f9c6018f feat: add replied to post or comment to reply element 2021-12-29 12:03:17 +00:00