Yassine Doghri
ed57e13b40
feat: set min PHP version to 8.5 + upgrade CI4 to 4.7
...
update all dependencies to latest
2026-02-19 16:23:20 +00:00
Yassine Doghri
a585362827
chore: update CI files after update from 4.6.3 to 4.6.5
2026-02-17 21:09:55 +00:00
Yassine Doghri
8ec42c33ff
fix(fediverse): add is_private field to posts to flag private posts and hide them from public views
2025-08-25 18:32:09 +00:00
Yassine Doghri
346c00e7b5
chore: update CI to v4.6.3 + all php and js dependencies
2025-08-25 18:09:41 +00:00
Yassine Doghri
94cea0ce91
feat: set min PHP version to 8.4
...
update CI4 to 4.6.0 + use codeigniter-vite and vite-plugin-codeigniter to load assets
2025-03-14 12:54:51 +00:00
semantic-release-bot
c9fabe8888
chore(release): 2.0.0-next.3 [skip ci]
...
## [2.0.0-next.3](https://code.castopod.org/adaures/castopod/compare/v2.0.0-next.2...v2.0.0-next.3 ) (2024-12-30)
### Features
* **api:** add Episode create and publish endpoints ([a90cdfd ](a90cdfdcdb ))
* **image:** add image size's width and height ([f50098e ](f50098ec89 ))
* **plugins:** add defaultValue for all field types ([d3a98db ](d3a98db6d0 ))
* **plugins:** add group field type + multiple option to render field arrays ([11ccd0e ](11ccd0ebe7 ))
* **plugins:** add html field type + CodeEditor component + rework html head generation ([8cf9c6d ](8cf9c6dc83 ))
* **rss:** add option for 301 redirect to new feed url ([8402cc2 ](8402cc29d2 ))
### Bug Fixes
* add downloads_count to episodes table, computed every hour ([f981937 ](f981937645 ))
* allow passing json to app.proxyIPs config to set it ([cbf739e ](cbf739e95c ))
* **api:** cast integers when creating episode ([775b302 ](775b302f7c ))
* **docker-image:** clear cache to account for new assets and data structure changes ([63c763f ](63c763f941 )), closes [#510 ](https://code.castopod.org/adaures/castopod/issues/510 )
* edit remap functions to get episode in episode admin controllers ([9f74cca ](9f74cca342 ))
* **episode:** do not change slug when editing episode title ([a83afb0 ](a83afb0004 )), closes [#513 ](https://code.castopod.org/adaures/castopod/issues/513 )
* **fediverse:** add "processing" and "failed" statuses to better manage broadcast load ([1d7583d ](1d7583d738 )), closes [#511 ](https://code.castopod.org/adaures/castopod/issues/511 )
* **icons:** set correct names for lock and lock-unlock icons in premium banner ([37ee6d3 ](37ee6d35b4 ))
* **plugins:** clear cache after activating or deactivating plugin ([08c7df2 ](08c7df2a5d ))
* **plugins:** delete relevant cache when submitting settings ([00bd4c0 ](00bd4c02ee ))
* **podcast-model:** always query podcast from database when clearing cache ([d30c49c ](d30c49cdff ))
* **premium-podcasts:** update query to validate subscription ([2b1bbf3 ](2b1bbf3430 ))
* **preview:** delete episode preview cache after editing episode ([732d429 ](732d42923d )), closes [#514 ](https://code.castopod.org/adaures/castopod/issues/514 )
* **release:** add conventional-changelog-conventionalcommits for CHANGELOG generation ([6934c8a ](6934c8aa8f ))
* **rss:** add subscription id to cache name to prevent premium feeds from overlapping ([74f9325 ](74f9325946 ))
* set user as www-data when running cron jobs in docker's supervisord config ([65d74f1 ](65d74f14e6 ))
* typo in EpisodeController remap function to get episode ([f288a75 ](f288a750f5 ))
* update select and multi-select options to value/label arrays ([63f93f5 ](63f93f585b ))
### Internal
* **plugins:** create Field objects per field type in settings forms + handle rendering in class ([34be5bc ](34be5bccab ))
* remove fields from podcast and episode entities to be replaced with plugins ([b869acb ](b869acb3a9 ))
* rename controller methods for views and actions to be more consistent ([85704bf ](85704bfbe0 ))
* update CodeIgniter to v4.5.6 ([f295e9a ](f295e9aa4c ))
* update codigniter-icons to v1.0.1 ([fa6967e ](fa6967e65c ))
* update js dependencies to latest ([70c9797 ](70c97971fc ))
2024-12-30 12:31:21 +00:00
Yassine Doghri
f295e9aa4c
chore: update CodeIgniter to v4.5.6
...
+ update php dependencies to latest
2024-12-29 16:02:08 +00:00
Yassine Doghri
f981937645
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-29 13:24:42 +00:00
Nate Ritter
a90cdfdcdb
feat(api): add Episode create and publish endpoints
2024-12-25 11:22:29 +00:00
Yassine Doghri
85704bfbe0
refactor: rename controller methods for views and actions to be more consistent
...
add PermalinkEditor component
2024-12-18 16:05:25 +00:00
Yassine Doghri
8cf9c6dc83
feat(plugins): add html field type + CodeEditor component + rework html head generation
...
update php and js packages to latest
2024-12-17 15:11:45 +00:00
Yassine Doghri
f50098ec89
feat(image): add image size's width and height
...
escape plugin description + replace codeigniter-icons with php-icons v1.2
2024-11-07 12:56:46 +00:00
Yassine Doghri
cbf739e95c
fix: allow passing json to app.proxyIPs config to set it
2024-11-06 13:19:59 +00:00
Yassine Doghri
1667f5b202
build: update CI4 to v4.5.5 + php and js packages to latest
2024-11-06 13:19:59 +00:00
semantic-release-bot
3cd30205d9
chore(release): 2.0.0-next.2 [skip ci]
...
# [2.0.0-next.2](https://code.castopod.org/adaures/castopod/compare/v2.0.0-next.1...v2.0.0-next.2 ) (2024-07-08)
### Bug Fixes
* **audio-player:** set player icons to default instead of missing Castopod's ([0ba0a25 ](0ba0a25b11 ))
* broken icon call in frontend default pages template ([3228362 ](322836254e ))
* **manifest:** set repository url as required in docstring typings ([a8c81b3 ](a8c81b3fa1 ))
* set correct icons parameters in map and funding links views ([5d35524 ](5d35524875 )), closes [#500 ](https://code.castopod.org/adaures/castopod/issues/500 )
### Features
* **plugins:** add `minCastopodVersion` to denote incompatibility with previous Castopod versions ([fc9ea75 ](fc9ea7597e ))
* **plugins:** load and display LICENSE.md file if found in plugin's directory ([fee7905 ](fee7905935 ))
2024-07-08 16:12:36 +00:00
Yassine Doghri
1a439083a2
docs: fix typo in comments in auth file
2024-07-04 15:54:17 +00:00
Yassine Doghri
e9c04548de
build: update CI to 4.5.3 + php and js dependencies to latest
2024-07-04 13:27:10 +00:00
semantic-release-bot
0eeedb9dc6
chore(release): 2.0.0-next.1 [skip ci]
...
# [2.0.0-next.1](https://code.castopod.org/adaures/castopod/compare/v1.11.0...v2.0.0-next.1 ) (6/19/2024)
### Bug Fixes
* add missing php-icons config file to bundle ([56612f0 ](56612f0c76 ))
* **docs:** add base to og image using env variable ([fe67659 ](fe676590f2 ))
* **import:** rewrite download_file helper to output curl response directly to file ([eb7ad2f ](eb7ad2f7e1 ))
* include app/Resources/icons folder to bundle ([3fd5efc ](3fd5efc795 ))
* **platforms:** add platforms service + reduce memory consumption when rendering platform cards ([fe73e9f ](fe73e9fae9 ))
* set owner email visibility when editing podcast ([fc4f982 ](fc4f982556 )), closes [#473 ](https://code.castopod.org/adaures/castopod/issues/473 )
### Build System
* release next major version as prerelease ([8275226 ](827522643e ))
### Features
* add Plugins module with base files for plugins architecture ([7253e13 ](7253e13ac2 ))
* **plugins:** abstract settings form for general, podcast and episode types ([b62b483 ](b62b483ad9 ))
* **plugins:** activate / deactivate plugin using settings table ([27d2a1b ](27d2a1b0ff ))
* **plugins:** add aside with plugin metadata next to plugin's readme ([dfb7888 ](dfb7888aeb ))
* **plugins:** add before channel/item hooks to allow podcast/episode data edit when generating rss ([80d2c48 ](80d2c48ee2 ))
* **plugins:** add json schema definition for plugin manifest ([b5eddf3 ](b5eddf351f ))
* **plugins:** add methods to easily retrieve general, podcast and episode settings in hooks methods ([3a900bb ](3a900bbab6 ))
* **plugins:** add new field types + validate & cast user data before storing settings ([6f833fc ](6f833fc76a ))
* **plugins:** add options to manifest for building forms and storing plugin settings ([3d8aedf ](3d8aedf9c3 ))
* **plugins:** add settings page for podcast and episode if defined in the plugin's manifest ([89ac92f ](89ac92fb41 ))
* **plugins:** add siteHead hook to add custom meta tags to public pages ([e80a33b ](e80a33bf2a ))
* **plugins:** display errors when plugin is invalid instead of crashing ([8ec7909 ](8ec79097bb ))
* **plugins:** handle empty states and long strings in UI ([45ac2a4 ](45ac2a4be9 ))
* **plugins:** load and validate plugin manifest.json ([1510e36 ](1510e36c0a ))
* **plugins:** load plugins using file locator service ([587938d ](587938d2bf ))
* **plugins:** load README.md file to view plugin's instructions in UI ([e6bfdfc ](e6bfdfc390 ))
* **plugins:** register plugins using Plugin.php file instead of namespace + simplify i18n structure ([2035c39 ](2035c39fd1 ))
* **plugins:** uninstall plugins via CLI and admin UI ([9a80de4 ](9a80de4068 ))
* set owner email to hidden by default in podcast create form ([7a6d9df ](7a6d9df6db ))
* support podcast:txt tag with verify use case ([57e459e ](57e459e187 )), closes [#468 ](https://code.castopod.org/adaures/castopod/issues/468 )
### BREAKING CHANGES
* next major release including plugins architecture
2024-06-19 10:12:35 +00:00
Yassine Doghri
2035c39fd1
feat(plugins): register plugins using Plugin.php file instead of namespace + simplify i18n structure
2024-06-14 15:53:33 +00:00
Yassine Doghri
b62b483ad9
feat(plugins): abstract settings form for general, podcast and episode types
...
update filter permission logic for replacing router param
2024-06-14 15:53:33 +00:00
Yassine Doghri
1510e36c0a
feat(plugins): load and validate plugin manifest.json
2024-06-14 15:53:32 +00:00
Yassine Doghri
896f00661f
refactor(plugins): redefine plugins folder structure to vendor/package
2024-06-14 15:53:32 +00:00
Yassine Doghri
9a80de4068
feat(plugins): uninstall plugins via CLI and admin UI
2024-06-14 15:53:32 +00:00
Yassine Doghri
89ac92fb41
feat(plugins): add settings page for podcast and episode if defined in the plugin's manifest
...
- rename options to settings
2024-06-14 15:53:32 +00:00
Yassine Doghri
3d8aedf9c3
feat(plugins): add options to manifest for building forms and storing plugin settings
2024-06-14 15:53:32 +00:00
Yassine Doghri
e80a33bf2a
feat(plugins): add siteHead hook to add custom meta tags to public pages
2024-06-14 15:53:32 +00:00
Yassine Doghri
27d2a1b0ff
feat(plugins): activate / deactivate plugin using settings table
...
+ load plugin icon
+ add pagination
+ autoload plugins in Config/Autoload.php to handle plugin
i18n
+ style plugin cards
2024-06-14 15:53:32 +00:00
Yassine Doghri
7253e13ac2
feat: add Plugins module with base files for plugins architecture
2024-06-14 15:53:32 +00:00
Yassine Doghri
d88b041d2c
docs: change vitepress with astro's starlight
...
- change language keys to kebab-case
- add new languages to docs: ca, de, es, sr-latn, zh-hans
2024-05-21 16:07:56 +00:00
Yassine Doghri
bb628f355f
refactor: add modules folder to phpstan paths + fix errors
2024-04-28 16:41:24 +00:00
Yassine Doghri
51b064d67a
refactor(icons): use php-icons library to load and display icons
2024-04-26 17:57:25 +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
303a900f66
refactor(platforms): move platforms data in code instead of database
...
refs #457
2024-04-24 14:47:05 +00:00
semantic-release-bot
30a56546d3
chore(release): 1.11.0 [skip ci]
...
# [1.11.0](https://code.castopod.org/adaures/castopod/compare/v1.10.5...v1.11.0 ) (4/17/2024)
### Bug Fixes
* **premium:** set itunes:block on premium feeds to prevent indexing ([88851b0 ](88851b0226 ))
* **rss:** generate podcast guid if empty ([a5aef2a ](a5aef2a63e )), closes [#450 ](https://code.castopod.org/adaures/castopod/issues/450 )
### Features
* add trailer tags to rss if trailer episodes are present ([80fdd9c ](80fdd9cfb4 ))
* add transcript display to episode page ([4d141fc ](4d141fceae )), closes [#411 ](https://code.castopod.org/adaures/castopod/issues/411 )
* **platforms:** add telegram to socials ([004f804 ](004f804045 ))
* **platforms:** add truefans.fm and episodes.fm ([d046ecc ](d046ecc52f )), closes [#458 ](https://code.castopod.org/adaures/castopod/issues/458 ) [#459 ](https://code.castopod.org/adaures/castopod/issues/459 )
2024-04-17 11:05:38 +00:00
Guy Martin (Dwev)
4d141fceae
feat: add transcript display to episode page
...
+ fix transcript parser
closes #411
2024-04-17 09:13:07 +00:00
semantic-release-bot
9d7d11cefa
chore(release): 1.10.5 [skip ci]
...
## [1.10.5](https://code.castopod.org/adaures/castopod/compare/v1.10.4...v1.10.5 ) (3/12/2024)
### Bug Fixes
* **file-uploads:** validate chapters json content + remove permit_empty rule to uploaded files ([6289c42 ](6289c42b11 )), closes [#445 ](https://code.castopod.org/adaures/castopod/issues/445 )
2024-03-12 11:28:38 +00:00
Yassine Doghri
c24850bda9
build(i18n): include Breton and Serbian (Latin) languages to Castopod bundle
2024-03-12 09:32: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
semantic-release-bot
37f2d2d21a
chore(release): 1.10.4 [skip ci]
...
## [1.10.4](https://code.castopod.org/adaures/castopod/compare/v1.10.3...v1.10.4 ) (2/26/2024)
### Bug Fixes
* display chapters in episode preview page ([797516a ](797516a2ec )), closes [#445 ](https://code.castopod.org/adaures/castopod/issues/445 )
2024-02-26 12:11:00 +00:00
semantic-release-bot
efa5acd415
chore(release): 1.10.3 [skip ci]
...
## [1.10.3](https://code.castopod.org/adaures/castopod/compare/v1.10.2...v1.10.3 ) (2/21/2024)
### Bug Fixes
* **chapters:** use episode cover when chapter img is an empty string ([a343de4 ](a343de4cf6 )), closes [#444 ](https://code.castopod.org/adaures/castopod/issues/444 )
* **import:** set episodes as premium if podcast is set as premium by default ([dfd66be ](dfd66beebf ))
2024-02-21 15:16:02 +00:00
semantic-release-bot
6c3dee2131
chore(release): 1.10.2 [skip ci]
...
## [1.10.2](https://code.castopod.org/adaures/castopod/compare/v1.10.1...v1.10.2 ) (2/20/2024)
### Bug Fixes
* **podcast-import:** move closing parenthasis when checking for owner name and email existence ([cec7815 ](cec78155f9 ))
2024-02-20 15:35:03 +00:00
semantic-release-bot
867dfad9ae
chore(release): 1.10.1 [skip ci]
...
## [1.10.1](https://code.castopod.org/adaures/castopod/compare/v1.10.0...v1.10.1 ) (2/20/2024)
### Bug Fixes
* **fediverse:** use config name to get Fediverse config properties instead of hardcoded class string ([5fd0980 ](5fd0980ff7 ))
2024-02-20 10:36:40 +00:00
semantic-release-bot
80c114287f
chore(release): 1.10.0 [skip ci]
...
# [1.10.0](https://code.castopod.org/adaures/castopod/compare/v1.9.0...v1.10.0 ) (2/19/2024)
### Bug Fixes
* **op3:** move op3 prefix to enclosure url instead of audio proxy ([d580369 ](d580369235 ))
* **podcast-import:** rollback transaction before exception is thrown ([419bb04 ](419bb04716 )), closes [#429 ](https://code.castopod.org/adaures/castopod/issues/429 ) [#319 ](https://code.castopod.org/adaures/castopod/issues/319 ) [#443 ](https://code.castopod.org/adaures/castopod/issues/443 ) [#438 ](https://code.castopod.org/adaures/castopod/issues/438 )
### Features
* add podcast:season and podcast:episode tags to rss feed ([98c6658 ](98c6658840 ))
* add support for podcasting 2.0 "medium" tag with podcast, music and audiobook ([630e788 ](630e788f0e )), closes [#439 ](https://code.castopod.org/adaures/castopod/issues/439 )
* display chapters in episode's public page ([87cc437 ](87cc437e1e )), closes [#423 ](https://code.castopod.org/adaures/castopod/issues/423 )
* support VTT transcript file format in addition to SRT ([7071b4b ](7071b4b6f4 )), closes [#433 ](https://code.castopod.org/adaures/castopod/issues/433 )
2024-02-19 12:35:11 +00:00
Guy Martin
87cc437e1e
feat: display chapters in episode's public page
...
closes #423
2024-02-17 12:02:38 +00:00
Yassine Doghri
94ceba6081
chore(media): remove media Routes file from Routing config
2024-02-12 13:23:30 +00:00
semantic-release-bot
bc4f93d2b7
chore(release): 1.9.0 [skip ci]
...
# [1.9.0](https://code.castopod.org/adaures/castopod/compare/v1.8.2...v1.9.0 ) (1/31/2024)
### Bug Fixes
* **i18n:** escape language strings in form fields to prevent them from disappearing ([3cb5ffd ](3cb5ffd25b )), closes [#412 ](https://code.castopod.org/adaures/castopod/issues/412 )
* **podcast-about:** update stats query to discard scheduled episodes from episodes number ([67c037c ](67c037c9eb ))
* **premium-subs:** clear subscription list cache after insert ([2accb0f ](2accb0f765 )), closes [#430 ](https://code.castopod.org/adaures/castopod/issues/430 )
* **s3:** remove proxy, set objects acl to public-read, and serve files using their public urls ([6a77a9d ](6a77a9d2f2 ))
### Features
* add actor domain to handle in follow page ([de099ac ](de099ac643 ))
* **admin:** add podcast's OP3 analytics dashboard link ([5f3752b ](5f3752b443 ))
2024-01-31 10:00:05 +00:00
semantic-release-bot
a12327da8e
chore(release): 1.8.2 [skip ci]
...
## [1.8.2](https://code.castopod.org/adaures/castopod/compare/v1.8.1...v1.8.2 ) (1/17/2024)
### Bug Fixes
* **transcript:** add condition when concatenating sub text to prevent second line duplication ([6cbfec0 ](6cbfec0d7d ))
2024-01-17 10:16:14 +00:00
semantic-release-bot
28a31ca03b
chore(release): 1.8.1 [skip ci]
...
## [1.8.1](https://code.castopod.org/adaures/castopod/compare/v1.8.0...v1.8.1 ) (1/16/2024)
### Bug Fixes
* **models:** set updatedField as empty string when not used ([164f4d3 ](164f4d3be7 ))
2024-01-16 10:07:25 +00:00
semantic-release-bot
9899870e28
chore(release): 1.8.0 [skip ci]
...
# [1.8.0](https://code.castopod.org/adaures/castopod/compare/v1.7.4...v1.8.0 ) (1/15/2024)
### Bug Fixes
* **episode-form:** add required validation rules for title and slug ([30a3473 ](30a3473863 )), closes [#420 ](https://code.castopod.org/adaures/castopod/issues/420 )
* **import:** check for empty string when generating podcast guid for feeds not including one ([ac5336f ](ac5336fbc5 ))
* **install:** add created superadmin to most powerful group in instance, ie. superadmin ([2ed511f ](2ed511f8a0 ))
* **persons:** delete person avatar when deleting a person ([c1ec98c ](c1ec98c956 )), closes [#419 ](https://code.castopod.org/adaures/castopod/issues/419 )
* **platforms:** add matrix.org as a social platform ([9178c3f ](9178c3f3af )), closes [#421 ](https://code.castopod.org/adaures/castopod/issues/421 )
### Features
* **admin:** add tooltip for not authorized routes ([f7f9baf ](f7f9bafc3e ))
* **admin:** emphasize unprivileged items in sidebar with "prohibited" icon ([0bd7dde ](0bd7ddea58 ))
* allow hiding owner's email in public RSS feed ([222e02a ](222e02a2af ))
* **persons:** order persons by full_name ASC for easier list scanning ([68a599f ](68a599fee0 )), closes [#418 ](https://code.castopod.org/adaures/castopod/issues/418 )
2024-01-15 16:31:11 +00:00
Yassine Doghri
6f8217e1a6
chore: update CI4 + shield + other php and js packages
2024-01-15 14:34:11 +00:00