Yassine Doghri
5182d5d67a
fix: add downloads_count to episodes table, computed every hour
...
This removes computing latency when retrieving episodes list with download count in admin.
The more
analytics records, the more it took to calculate the sum of hits to get the downloads count for each
episode.
2024-12-28 15:23:02 +00:00
Yassine Doghri
6a2cdd066e
fix(preview): delete episode preview cache after editing episode
...
fixes #514
2024-08-14 10:34:13 +00:00
Yassine Doghri
d4a36f811b
chore: update CodeIgniter to 4.5.1 + other dependencies to latest
2024-04-26 09:26:22 +00:00
Yassine Doghri
6289c42b11
fix(file-uploads): validate chapters json content + remove permit_empty rule to uploaded files
...
refs #445
2024-03-12 09:32:22 +00:00
Yassine Doghri
67c037c9eb
fix(podcast-about): update stats query to discard scheduled episodes from episodes number
2024-01-25 11:58:39 +00:00
Yassine Doghri
6f8217e1a6
chore: update CI4 + shield + other php and js packages
2024-01-15 14:34:11 +00:00
Yassine Doghri
119742cdbb
fix(housekeeping): add where clause to check episode_id is not null on reset comments count
2023-11-30 15:46:00 +00:00
Yassine Doghri
7ff1dbe903
fix: remove fediverse prefix to prevent migration error + load routes during podcast import
...
refactor migration queries to use forge functions
2023-09-09 10:23:34 +00:00
Yassine Doghri
d10c4fd753
fix(premium-podcasts): show premium flag only when podcast has published premium episodes
2023-08-28 14:01:33 +00:00
Yassine Doghri
7d21b3509e
feat(episode): add preview link in admin to view and share episode before publication
2023-08-28 13:53:04 +00:00
Yassine Doghri
d8e1d4031d
feat(import): run podcast imports' processes asynchronously using tasks
...
- use codeigniter4/tasks project to handle cron tasks
- use yassinedoghri/podcast-feed project to parse feeds for imports
2023-06-21 16:17:11 +00:00
Krzysztof Domańczy
85505d4b31
feat(rest-api): add endpoints for episodes and full text search for podcasts and episodes
...
closes #296
2023-06-21 10:07:31 +00:00
Yassine Doghri
2a50f6e4d2
style: update ecs config to align associative arrays arrows
...
update composer dependencies to latest
2023-06-12 15:12:49 +00:00
Yassine Doghri
855aacce0b
fix(websub): add missing misc helper import
...
+ add checks before clearing episode cache
2023-04-17 11:18:02 +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
78acd7f5c0
feat(episode-unpublish): remove episode comments upon unpublish
2022-07-21 16:37:22 +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
81f790868a
chore: update quality tools + rewrite some migration files
...
* update php packages to latest
* update rector and ecs config
* update ci4/settings package to v2.1
2022-07-03 16:42:20 +00:00
Yassine Doghri
65e9c0b05e
fix(housekeeping): use EpisodeModel's builder to reset comments count
2022-06-27 14:56:08 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
134a071add
refactor: rename all occurences of notes to statuses
2021-06-23 13:34:53 +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
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
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
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
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
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
Yassine Doghri
3143c9ad36
feat: add remote_url alternative for transcript and chapters files
2021-05-03 17:39:58 +00:00
Yassine Doghri
2d297f45b3
feat: add cache to ActivityPub sql queries + cache activity and note pages
...
- authenticated pages are not cached
- add AnalyticsTrait to register a podcast webpage hit across
mutliple controllers
- set actor_id as unique in podcasts table
- fix issues with preview card not appearing
- update codeigniter4-uuid
2021-05-03 15:32:54 +00:00
Yassine Doghri
54b84f9684
perf(cache): update CI4 to use cache's deleteMatching method
...
add missing locale to category_options cache name
2021-05-03 15:32:46 +00:00