Commit Graph

123 Commits

Author SHA1 Message Date
Yassine Doghri 14d7d07822 fix: replace deletedField with published_at for episodes
- remove delete_at field + soft delete for media and pages
- update CodeIgniter4 to 4.2.0 + update all starter files
- explicitly use builder() when creating queries from model
2022-06-13 16:30:34 +00:00
Ola Hneini dbb4030da4 feat: add permanent delete feature for podcasts 🎉
closes #89
2022-06-07 11:13:06 +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 4c490c15bb fix: overwrite common lang function to escape returned string
closes #196, fixes #198
2022-04-21 12:54:19 +00:00
Yassine Doghri 92d5cc50a3 fix(home): remove hardcoded prefix in getAllPodcasts query 2022-04-16 08:36:28 +00:00
Yassine Doghri 4e22a0d5e4 fix: use UTC_TIMESTAMP() to get current utc date instead of NOW() in sql queries 2022-04-14 14:33:53 +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 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 f7c3e5bf4a fix(cache): delete posts and comments pages cache when updating platform links
remove cache when adding comment and replies as well

fixes #169
2022-02-24 16:08:24 +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 7b89da6106 feat(home): sort podcasts by recent activity + add dropdown menu to choose between sorting options
fixes #164
2022-02-05 16:57:20 +00:00
Yassine Doghri 99bb40b8bc fix: clear cache when deleting podcast banner 2022-01-23 16:02:24 +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 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 241366130e chore(clips): clear video clip and soundbite cache on delete 2022-01-10 16:52:12 +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 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 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 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 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 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 b05d177f1b fix: update MarkdownEditor component + restyle Button and other components 2021-12-29 11:55:43 +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 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 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 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
Benjamin Bellamy 4357cc25cc feat(map): display geolocated episodes on a map page 2021-09-17 15:50:55 +00:00
Yassine Doghri 9e1e5d2e86 feat(activitypub): add Podcast actor and PodcastEpisode object with comments 2021-07-12 18:40:22 +00:00