Commit Graph

229 Commits

Author SHA1 Message Date
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 4a33c50fb6
ci: add phpstan static analysis to .gitlabci.yml 2021-05-12 15:23:50 +00:00
Yassine Doghri b735b369a7
ci: remove invalid commit-message job 2021-05-12 14:15:37 +00:00
Yassine Doghri 525698d834
ci: remove git hooks before uninstalling composer dev dependencies 2021-05-12 14:12:39 +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 b691b927fe
ci(tests): install intl php extension 2021-05-12 10:48:36 +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
Yassine Doghri ee53a732dc
fix(follow): add missing helpers to Actor controller 2021-05-12 10:22:16 +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
Yassine Doghri 861a805299
ci: remove git hooks folder before release command 2021-05-12 09:08:11 +00:00
Yassine Doghri b4012b7d2e
fix(rss): use originalPath instead of originalMediaPath in Image library 2021-05-12 08:19:09 +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 fad06e697d
refactor: replace castopod ➡ castopod-host
- rename all occurences of castopod to castopod host
- docs: update contribution guidelines
-
docs: update README to include guidance for help and links to socials
- remove
castopod_namespace.json
2021-05-03 15:32:55 +00:00
Yassine Doghri 27c48b8fa9
feat(ux): remove admin dashboard and redirect directly to podcast list
As there is currently no info on the dashboard, it is unnecessary for now
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
Yassine Doghri 05ace8cff2
perf(docker): add redis caching service for development
update Dockerfile to include php redis extension
- update development docs
2021-04-19 13:08:16 +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
Yassine Doghri acb8b3a401
fix: check that note has a preview_card_id before displaying it
fixes #114
2021-04-16 17:59:39 +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
Yassine Doghri 9e8995dc6e
fix(persons): prevent overflow of persons list by adding horizontal scroll
add js tootip to show persons info
2021-04-12 10:08:05 +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
Yassine Doghri 719538d0cc
fix(multiselect): add missing class names in choices options for purge to work properly
Multiselect options wouldn't show up in production environment because of purgecss removing state
classes.
2021-04-12 09:18:25 +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
Benjamin Bellamy 35b5be095f fix(import-with-escaped-characters): remove \CodeIgniter\HTTP\URI in download_file, closes #103 2021-04-10 16:18:23 +02: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
Benjamin Bellamy c1b411265a fix(episodeCount): add missing brackets to French language file 2021-04-10 14:06:30 +02: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
Yassine Doghri 15183b7eab
fix(episodes-page): handle defaultQuery being null when no podcast episodes
fixes #100
2021-04-09 13:16:31 +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
Yassine Doghri 2271c1445b
fix(rss): set ❬itunes:author❭ tag to owner_name if publisher not specified
some platforms require the ❬itunes:author❭ tag to be specified in order to import an rss feed

fixes #96
2021-04-08 11:10:58 +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