Commit Graph

119 Commits

Author SHA1 Message Date
semantic-release-bot b814cfaf7c chore(release): 1.0.0-alpha.63 [skip ci]
# [1.0.0-alpha.63](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.62...v1.0.0-alpha.63) (2021-07-12)

### Features

* build hashed static files to renew browser cache ([37c54d2](37c54d2477)), closes [#107](https://code.podlibre.org/podlibre/castopod-host/issues/107)
2021-07-12 18:01:18 +00:00
Yassine Doghri 37c54d2477 feat: build hashed static files to renew browser cache
- replace rollup config with vitejs
- use vite dev server during development to take advantage of
hot module replacement (HMR)
- add vite service using Vite library to load css and js assets
- update package.json scripts and remove unnecessary
dependencies
- update scripts/bundle-prepare.sh

closes #107
2021-07-12 17:47:56 +00:00
semantic-release-bot cdc660e3b0 chore(release): 1.0.0-alpha.62 [skip ci]
# [1.0.0-alpha.62](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.61...v1.0.0-alpha.62) (2021-07-02)

### Bug Fixes

* **episode:** replace guid's empty string value to null ([441052a](441052af8d))
2021-07-02 07:15:10 +00:00
semantic-release-bot 3b5ce93c1b chore(release): 1.0.0-alpha.61 [skip ci]
# [1.0.0-alpha.61](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.60...v1.0.0-alpha.61) (2021-06-23)

### Bug Fixes

* **release:** add missing version number to castopod-host package ([8f3e9d9](8f3e9d90c1))
* **ux:** allow for empty message upon episode publication and warn user on submit ([33d01b8](33d01b8d4f)), closes [#129](https://code.podlibre.org/podlibre/castopod-host/issues/129)
2021-06-23 15:54:31 +00:00
Yassine Doghri 33d01b8d4f
fix(ux): allow for empty message upon episode publication and warn user on submit
- clarify distiction between the announcement post and the show notes
- change "note" occurences in UI by "post"
- show warning message explaining why the podcaster should fill the message area
- the podcaster
can choose to publish the episode with an empty message anyways
- redirect user to episode
dashboard with error message when episode publication pages are inaccessible instead of showing a
404 error
- add a cancel publication button in publish-edit form when episode is scheduled

closes #129
2021-06-23 13:34:59 +00:00
Yassine Doghri 134a071add
refactor: rename all occurences of notes to statuses 2021-06-23 13:34:53 +00:00
semantic-release-bot ddeabf5665 chore(release): 1.0.0-alpha.60 [skip ci]
# [1.0.0-alpha.60](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.59...v1.0.0-alpha.60) (2021-06-21)

### Features

* **rss:** add ˂podcast:guid˃ tag for channel ([1fab10e](1fab10eb0d))
2021-06-21 12:08:38 +00:00
semantic-release-bot cc0d56a2f5 chore(release): 1.0.0-alpha.59 [skip ci]
# [1.0.0-alpha.59](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.58...v1.0.0-alpha.59) (2021-06-15)

### Bug Fixes

* check that additional files are valid when creating episode ([eac5bc8](eac5bc876d))
2021-06-15 07:15:18 +00:00
semantic-release-bot 7cb4e3a803 chore(release): 1.0.0-alpha.58 [skip ci]
# [1.0.0-alpha.58](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.57...v1.0.0-alpha.58) (2021-06-11)

### Bug Fixes

* cast actor_id to pass as int to set_interact_as_actor() function ([56a8e5d](56a8e5d7dd))
* **analytics:** set duration field to precise decimal as episode's audio file duration ([d772685](d772685405))
* **analytics:** update migrations to set decimal precision for latitude and longitude ([714d6b5](714d6b5d49))
* check for database connection and podcasts table existence before redirecting to install ([eb74e81](eb74e81c3d))
* save transcript and chapters files to podcasts folder ([63f49c7](63f49c719f))
* set cache expiration to next note publish to show note on publication date ([0a66de3](0a66de3e6c))
* set episode description footer to null when empty value ([3a7d97d](3a7d97d660))
* set location to null when getting empty string ([71b1b5f](71b1b5f775))
* update condition in home controller to redirect to install page ([33f1b91](33f1b91d55))
* **activity-pub:** cache issues when navigating to activity stream urls ([7bcbfb3](7bcbfb32f7))
* **activity-pub:** get database records using new model instances ([92536dd](92536ddb38))
* **category:** remove uncategorized option to enforce users in choosing a category ([8c64f25](8c64f25a0e))
* **install:** redirect manually to install wizard on first visit ([2ceaaca](2ceaaca44f))
* **types:** update fake seeders types + fix bugs ([76a4bf3](76a4bf3441))
* update broken contributor dropdown fields ([e5b7515](e5b7515023))
* **ux:** redirect user to install page on database error in home page ([9017e30](9017e30bf4))
* update condition in AnalyticsTrait ([fbc0967](fbc0967caa))

### Performance Improvements

* **cache:** use deleteMatching method to prevent forgetting cached elements in models ([76afc0c](76afc0cfa2))

### Reverts

* set deprecated config options back in App config ([433745f](433745f194))
2021-06-11 16:15:37 +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 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 433745f194
revert: set deprecated config options back in App config 2021-06-11 09:35:16 +00:00
Yassine Doghri 91a9670e22
refactor: update app starter files to CI4 4.1.2 2021-06-11 09:35:16 +00:00
Yassine Doghri 1a024bdec7
ci: fix rector issues for code-review job to pass 2021-06-11 09:35:07 +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 fb3593f828
refactor: remove all empty declarations + add missing type declarations
update composer dependencies
2021-05-18 17:16:36 +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
semantic-release-bot a54a5964c3 chore(release): 1.0.0-alpha.57 [skip ci]
# [1.0.0-alpha.57](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.56...v1.0.0-alpha.57) (2021-05-12)

### Bug Fixes

* **follow:** add missing helpers to Actor controller ([ee53a73](ee53a732dc))
2021-05-12 10:32:49 +00:00
semantic-release-bot fca7bd6808 chore(release): 1.0.0-alpha.56 [skip ci]
# [1.0.0-alpha.56](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.55...v1.0.0-alpha.56) (2021-05-12)

### Bug Fixes

* **rss:** use originalPath instead of originalMediaPath in Image library ([b4012b7](b4012b7d2e))
2021-05-12 09:16:14 +00:00
semantic-release-bot 6c7964fd51 chore(release): 1.0.0-alpha.55 [skip ci]
# [1.0.0-alpha.55](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.54...v1.0.0-alpha.55) (2021-05-03)

### Features

* add remote_url alternative for transcript and chapters files ([3143c9a](3143c9ad36))
2021-05-03 17:44:20 +00:00
Yassine Doghri 3143c9ad36 feat: add remote_url alternative for transcript and chapters files 2021-05-03 17:39:58 +00:00
semantic-release-bot 1296187613 chore(release): 1.0.0-alpha.54 [skip ci]
# [1.0.0-alpha.54](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.53...v1.0.0-alpha.54) (2021-05-03)

### Features

* set app parameter forceGlobalSecureRequests = true forcing requests to go through https ([d9dff1b](d9dff1b8bf))
* **ux:** remove admin dashboard and redirect directly to podcast list ([27c48b8](27c48b8fa9))
* add cache to ActivityPub sql queries + cache activity and note pages ([2d297f4](2d297f45b3))

### Performance Improvements

* **cache:** update CI4 to use cache's deleteMatching method ([54b84f9](54b84f9684))
* **docker:** add redis caching service for development ([05ace8c](05ace8cff2))
2021-05-03 15:43:53 +00:00
Yassine Doghri d9dff1b8bf
feat: set app parameter forceGlobalSecureRequests = true forcing requests to go through https
docs: update INSTALL.md to include SSL certificate requirement + update install instructions
2021-05-03 15:32:55 +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
semantic-release-bot d372d6746c chore(release): 1.0.0-alpha.53 [skip ci]
# [1.0.0-alpha.53](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.52...v1.0.0-alpha.53) (2021-04-16)

### Bug Fixes

* check that note has a preview_card_id before displaying it ([acb8b3a](acb8b3a401)), closes [#114](https://code.podlibre.org/podlibre/castopod/issues/114)
2021-04-16 18:09:32 +00:00
semantic-release-bot b81e812506 chore(release): 1.0.0-alpha.52 [skip ci]
# [1.0.0-alpha.52](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.51...v1.0.0-alpha.52) (2021-04-16)

### Bug Fixes

* **avatar:** use default avatar when no avatar url has been set ([9d23c7e](9d23c7e7e1)), closes [#111](https://code.podlibre.org/podlibre/castopod/issues/111)
2021-04-16 17:15:22 +00:00
Yassine Doghri 9d23c7e7e1
fix(avatar): use default avatar when no avatar url has been set
- get avatar and cover urls from entity: if no image exists, retrieve the default ones.
- always
set icon and image in actor object: set the default ones if podcast hasn't set them.

fixes #111
2021-04-16 17:05:23 +00:00
semantic-release-bot e2b85a1d8f chore(release): 1.0.0-alpha.51 [skip ci]
# [1.0.0-alpha.51](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.50...v1.0.0-alpha.51) (2021-04-15)

### Bug Fixes

* **interact-as:** set actor_id instead of podcast id upon login event ([5dfade7](5dfade7cf3)), closes [#104](https://code.podlibre.org/podlibre/castopod/issues/104)
2021-04-15 09:20:24 +00:00
Yassine Doghri 5dfade7cf3 fix(interact-as): set actor_id instead of podcast id upon login event
fixes #104
2021-04-15 08:27:29 +00:00
Yassine Doghri 247ae1824f refactor(analytics): move all analytics files to a new Libraries/Analytics folder
- add page hit on podcast activity page
- update development docs
2021-04-14 15:58:40 +00:00
semantic-release-bot 1c0d6cee44 chore(release): 1.0.0-alpha.50 [skip ci]
# [1.0.0-alpha.50](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.49...v1.0.0-alpha.50) (2021-04-14)

### Bug Fixes

* **persons:** prevent overflow of persons list by adding horizontal scroll ([9e8995d](9e8995dc6e))
2021-04-14 14:54:22 +00:00
semantic-release-bot 388fb42b3e chore(release): 1.0.0-alpha.49 [skip ci]
# [1.0.0-alpha.49](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.48...v1.0.0-alpha.49) (2021-04-12)

### Bug Fixes

* **multiselect:** add missing class names in choices options for purge to work properly ([719538d](719538d0cc))
2021-04-12 09:37:37 +00:00
semantic-release-bot 6303e71973 chore(release): 1.0.0-alpha.48 [skip ci]
# [1.0.0-alpha.48](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.47...v1.0.0-alpha.48) (2021-04-10)

### Bug Fixes

* **import-with-escaped-characters:** remove \CodeIgniter\HTTP\URI in download_file, closes [#103](https://code.podlibre.org/podlibre/castopod/issues/103) ([35b5be0](35b5be095f))
2021-04-10 14:42:23 +00:00
semantic-release-bot 15180d2265 chore(release): 1.0.0-alpha.47 [skip ci]
# [1.0.0-alpha.47](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.46...v1.0.0-alpha.47) (2021-04-10)

### Bug Fixes

* **episodeCount:** add missing brackets to French language file ([c1b4112](c1b411265a))
2021-04-10 14:14:47 +00:00
semantic-release-bot 6fc06bc8f8 chore(release): 1.0.0-alpha.46 [skip ci]
# [1.0.0-alpha.46](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.45...v1.0.0-alpha.46) (2021-04-09)

### Bug Fixes

* **episodes-page:** handle defaultQuery being null when no podcast episodes ([15183b7](15183b7eab)), closes [#100](https://code.podlibre.org/podlibre/castopod/issues/100)
2021-04-09 13:31:01 +00:00
semantic-release-bot 14d3d1d727 chore(release): 1.0.0-alpha.45 [skip ci]
# [1.0.0-alpha.45](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.44...v1.0.0-alpha.45) (2021-04-08)

### Bug Fixes

* add head request to analytics_hit route ([f0a2f0b](f0a2f0bea4))
2021-04-08 14:03:52 +00:00
Yassine Doghri f0a2f0bea4
fix: add head request to analytics_hit route
validators break because they can't request the episode's audio files with HEAD
2021-04-08 13:54:05 +00:00
semantic-release-bot b5eb4c68a5 chore(release): 1.0.0-alpha.44 [skip ci]
# [1.0.0-alpha.44](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.43...v1.0.0-alpha.44) (2021-04-08)

### Bug Fixes

* **rss:** set ❬itunes:author❭ tag to owner_name if publisher not specified ([2271c14](2271c1445b)), closes [#96](https://code.podlibre.org/podlibre/castopod/issues/96)
2021-04-08 11:20:49 +00:00
semantic-release-bot 0cd6b80847 chore(release): 1.0.0-alpha.43 [skip ci]
# [1.0.0-alpha.43](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.42...v1.0.0-alpha.43) (2021-04-08)

### Bug Fixes

* **episode-form:** show warning to set `memory_limit`, `upload_max_filesize` & `post_max_size` ([3b3c218](3b3c218b9c)), closes [#5](https://code.podlibre.org/podlibre/castopod/issues/5) [#86](https://code.podlibre.org/podlibre/castopod/issues/86)
2021-04-08 10:50:31 +00:00
Yassine Doghri 3b3c218b9c fix(episode-form): show warning to set `memory_limit`, `upload_max_filesize` & `post_max_size`
remove undefined "my-podcasts" route

closes #5, #86
2021-04-08 10:45:58 +00:00
semantic-release-bot c37a4af2d8 chore(release): 1.0.0-alpha.42 [skip ci]
# [1.0.0-alpha.42](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.41...v1.0.0-alpha.42) (2021-04-02)

### Features

* **fediverse:** implement activitypub protocols + update user interface ([2f525c0](2f525c0f6e)), closes [#69](https://code.podlibre.org/podlibre/castopod/issues/69) [#65](https://code.podlibre.org/podlibre/castopod/issues/65) [#85](https://code.podlibre.org/podlibre/castopod/issues/85) [#51](https://code.podlibre.org/podlibre/castopod/issues/51) [#91](https://code.podlibre.org/podlibre/castopod/issues/91) [#92](https://code.podlibre.org/podlibre/castopod/issues/92) [#88](https://code.podlibre.org/podlibre/castopod/issues/88)
2021-04-02 17:24:40 +00:00
Yassine Doghri 2f525c0f6e feat(fediverse): implement activitypub protocols + update user interface
- add "ActivityPub" library to handle server to server federation and basic
  client to server protocols using activitypub:
  - add webfinger endpoint to look for actor
  - add actor definition with inbox / outbox / followers
  - remote follow an actor
  - create notes with possible preview cards
  - interract with favourites, reblogs and replies
  - block incoming actors and/or domains
  - broadcast/schedule activities to fediverse followers using a cron task
- For castopod, the podcast is the actor:
  - overwrite the activitypub library for castopod's specific needs
  - perform basic interactions administrating a podcast to interact with fediverse users:
    - create notes with episode attachment
    - favourite and share a note + reply
    - add specific castopod_namespaces for podcasts and episodes definitions
- overwrite CodeIgniter's Route service to include alternate-content option for
  activitystream requests
- update episode publication logic:
  - remove publication inputs in create / edit episode form
  - publish / schedule or unpublish an episode after creation
  - the podcaster publishes a note when publishing an episode
- Javascript / Typescript modules:
  - fix Dropdown.ts to keep dropdown menu in foreground
  - add Modal.ts for funding links modal
  - add Toggler.ts to toggle various css states in ui
- User Interface:
  - update tailwindcss to v2
  - use castopod's pine and rose colors
  - update public layout to a 3 column layout
  - add pages in public for podcast activity, episode list and notes
  - update episode page to include linked notes
  - remove previous and next episodes from episode pages
  - show different public views depending on whether user is authenticated or not
  - use Kumbh Sans and Montserrat fonts
- update CodeIgniter's config files
- with CodeIgniter's new requirements, update docker environments are now based on
  php v7.3 image
- move Image entity to Libraries
- update composer and npm packages to latest versions

closes #69 #65 #85, fixes #51 #91 #92 #88
2021-04-02 17:20:02 +00:00
semantic-release-bot dd3ac9b4ab chore(release): 1.0.0-alpha.41 [skip ci]
# [1.0.0-alpha.41](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.40...v1.0.0-alpha.41) (2021-03-30)

### Features

* **partner:** add link and image in episode description ([ad07bb9](ad07bb9330))
2021-03-30 16:25:05 +00:00
semantic-release-bot 62bae1eb70 chore(release): 1.0.0-alpha.40 [skip ci]
# [1.0.0-alpha.40](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.39...v1.0.0-alpha.40) (2021-03-19)

### Features

* **custom-rss:** add custom xml tag injection in rss feed for ❬channel❭ and ❬item❭ ([6ecdaad](6ecdaad911))
2021-03-19 16:17:09 +00:00
semantic-release-bot ea5383643c chore(release): 1.0.0-alpha.39 [skip ci]
# [1.0.0-alpha.39](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.38...v1.0.0-alpha.39) (2021-03-01)

### Bug Fixes

* **embeddable-player:** enable any ancestor when X-Frame-Options is set on server ([44a4962](44a4962e0b))
2021-03-01 15:08:05 +00:00