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 and broadcast notes with possible preview cards
- interract with favourites, reblogs and replies
- block incoming actors and/or domains --> 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 attachements
- 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
-
update CodeIgniter's config files
-
with CodeIgniter's new requirements, update docker environments to be based on php v7.3 image
-
move Image entity to Libraries
-
update composer and npm packages to latest versions
closes #69 (closed) #65 (closed), fixes #51 (closed)
Edited by Yassine Doghri