Skip to content
Snippets Groups Projects
  • Yassine Doghri's avatar
    2f525c0f
    feat(fediverse): implement activitypub protocols + update user interface · 2f525c0f
    Yassine Doghri authored
    - 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
    2f525c0f
    History
    feat(fediverse): implement activitypub protocols + update user interface
    Yassine Doghri authored
    - 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
This project is licensed under the GNU Affero General Public License v3.0. Learn more
LICENSE.md 33.54 KiB

GNU Affero General Public License

Version 3, 19 November 2007 Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.

A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.

The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.