Commit Graph

123 Commits

Author SHA1 Message Date
crowdin 2e7b462d94 chore(i18n): new Crowdin updates 2022-12-09 15:42:46 +00:00
crowdin 80666bc728 chore(i18n): new Crowdin updates 2022-11-25 17:44:19 +00:00
Yassine Doghri 2d82411788 docs(docker): rename ffmpeg service to video-clipper in docker-compose example 2022-11-17 16:21:02 +00:00
crowdin b1e52ffac3 chore: new Crowdin updates 2022-11-17 14:42:46 +00:00
Yassine Doghri e960440854 docs(all-contributors): add missing translators in contributors list 2022-11-17 13:49:44 +00:00
crowdin fa90decdd1 chore(i18n): new Crowdin updates 2022-11-04 11:03:24 +00:00
Yassine Doghri 45d302be29 docs(dev-setup): add missing environment keys for development .env 2022-11-04 10:39:26 +00:00
Yassine Doghri ed7c247bcb fix(notifications): add manage-notifications permission to podcast 2022-11-04 10:39:26 +00:00
Romain de Laage 1192a228ef build(docker): add dedicated ffmpeg image to run video clips' scheduled tasks 2022-11-01 17:55:39 +00:00
Yassine Doghri 3419369af0 docs(docker): add tags for specific versions and latest builds
update gitlabci: do not run docker build if CP_VERSION.env file is not present
2022-10-24 15:41:08 +00:00
crowdin d76a1d9fee chore: new Crowdin updates 2022-10-20 07:55:28 +00:00
Yassine Doghri d0836f3ee3 feat: add about page in admin with instance info + database update button 2022-10-18 16:53:51 +00:00
Yassine Doghri 3a57538572 build: set minimal php version to 8.1
closes #225
2022-10-17 14:17:50 +00:00
Yassine Doghri c1287cbe6c refactor(auth): replace myth/auth with codeigniter/shield + define new roles
closes #222
2022-10-16 13:35:26 +00:00
crowdin d0d8be7fe3 chore: new Crowdin updates 2022-10-14 16:12:14 +00:00
Yassine Doghri 17e75c4439 docs(docker): add generic tag for specific beta version 2022-09-30 17:10:57 +00:00
Yassine Doghri 87c65e601a docs(docker): fix available tags link to be more obvious 2022-09-30 09:51:35 +00:00
Yassine Doghri 32e1dbe996 docs: add new premium podcasts feature 2022-09-30 09:42:24 +00:00
Yassine Doghri bac210105f docs(docker): add beta tag to supported tags + link to available tags 2022-09-30 09:34:29 +00:00
Yassine Doghri b2db783c8e docs(install): add email/smtp configuration options
closes #147
2022-09-26 14:55:00 +00:00
crowdin 7b66f46ae2 chore: new Crowdin updates 2022-09-23 15:51:26 +00:00
Yassine Doghri 707dd0800e docs(install): add missing user privileges for database 2022-09-06 16:21:26 +00:00
Yassine Doghri 355f3bf674 docs(all-contributors): add irithys, caos30 and ghose as translators 2022-09-06 15:30:07 +00:00
crowdin 3fc9734161 chore: new Crowdin updates 2022-09-06 14:55:46 +00:00
crowdin c4a07c29f1 chore: new Crowdin updates 2022-08-22 15:56:51 +00:00
Yassine Doghri a40d636cfa docs(all-contributors): update contributors list 2022-07-21 16:49:16 +00:00
crowdin b5263107da chore: new Crowdin updates 2022-07-14 09:03:44 +00:00
Romain de Laage 78152d8412 docs: complete docker page and translate it to french
closes #230
2022-07-11 10:36:57 +00:00
Yassine Doghri b7e2c09297 docs(docker): add page describing castopod's docker images and example usage with docker-compose
refs #230
2022-07-08 16:40:22 +00:00
Yassine Doghri 8cbc902a75 docs(contributions): recognize any kind of contribution with all-contributors spec
- add contributors list to readme and docs' index page
- add CONTRIBUTING.md file redirecting to docs website
- add "translate castopod" section to guidelines
2022-07-07 16:41:34 +00:00
crowdin 9843ce3882 chore: new Crowdin updates 2022-07-04 13:27:21 +00:00
Yassine Doghri ca55c248d0 fix(xml-editor): prettify xml even without root node
- update js dependencies to latest
- add indentWithTab to xml-editor
- tailwindcss 3.1: replace withOpacity with <alpha-value>
2022-07-03 08:07:20 +00:00
Ola Hneini 0345728739 docs: add note in getting started install section 2022-05-03 10:21:03 +00:00
Yassine Doghri eff5d2fca6 docs: update french documentation 2022-04-22 15:59:22 +00:00
crowdin cdc2e2edfb chore: new Crowdin updates 2022-04-22 07:56:31 +00:00
Yassine Doghri b5c0b72093 docs: add French language 2022-04-15 12:45:32 +00:00
Yassine Doghri 01640fa161 chore: new Crowdin updates
+ update rector config for crowdin compatibility
2022-04-15 12:16:12 +00:00
Yassine Doghri e9adc216e4 docs: add Brazilian Portuguese and Norwegian Nynorsk languages 2022-04-15 09:47:48 +00:00
Yassine Doghri 1cbc7de623 chore: new Crowdin updates 2022-04-14 14:54:13 +00:00
Yassine Doghri 2306df1c98 ci: add path to i18n-filter script 2022-04-14 13:21:50 +00:00
Yassine Doghri 5564f77502 chore: new Crowdin updates 2022-04-14 13:11:07 +00:00
Yassine Doghri b870ce55bc ci(gitlabci): filter out docs src languages not declared in .i18n-filter file before build 2022-04-14 12:09:40 +00:00
Yassine Doghri b27ce3d901 docs(l10n): add crowdin badge to docs + append message for crowdin commits 2022-04-01 16:35:34 +00:00
Yassine Doghri abbe449c64 docs: update features to add WebSub and polish language + add exif requirements to install
closes #185
2022-04-01 16:35:34 +00:00
Yassine Doghri 10d3f73786 feat: add WebSub module for pushing feed updates to open hubs 2022-03-15 16:47:35 +00:00
Yassine Doghri 4716a4a5b9 docs: add contributions welcome badge linking to castopod issues 2022-03-04 14:57:58 +00:00
Yassine Doghri d093530e14 docs: add security section to contributing guidelines 2022-02-20 14:27:04 +00:00
Yassine Doghri f58f712aa6 chore: replace group slug from ad-aures to adaures in repo url
this fixes the adblocker loading viewer error
2022-02-20 13:23:57 +00:00
Yassine Doghri 3c89bc15ef docs(readme): update sponsors section + add license section 2022-02-20 10:04:42 +00:00
Yassine Doghri b3888c2c7f docs: add open-graph meta tags + edit pages link
- rename castopod icons and logos
- fix nlnet logo link
- add castopod icon as logo
- set twitter
card to summary_large_image
- update README.md
2022-02-19 19:09:11 +00:00
Yassine Doghri fa5b5f51a4 docs(init): create documentation website using vitepress
- rename podlibre to adaures
- rename castopod-host to castopod
- simplify README and redirect to docs site
- move INSTALL and UPDATE docs
- add new gitlabci pipeline to deploy docs
- upgrade node to v16 in Dockerfile
2022-02-19 16:06:11 +00:00
Yassine Doghri 8721719cd7 feat(vite): add vite config to decouple it from CI_ENVIRONMENT 2022-01-19 18:31:57 +00:00
Yassine Doghri fee2c1c0d0 feat(pwa): add service-worker + webmanifest for each podcasts to have them install on devices
- configure service-worker using vite-plugin-pwa
- refactor Image entity to generate images of
different types based on size config
- add requirement for webp library for php gd to generate webp
images for instance
- add action to regenerate all instance images for eventual Images config
changes
- enhance google lighthouse metrics for pwa
2021-12-29 12:09:31 +00:00
Yassine Doghri 5083cd2fda refactor(modules): extract castopod parts into a modules/ folder for a scalable HMVC structure
- create Admin, Analytics, Auth, Fediverse and Install modules in the root modules/ folder
- rename
ActivityPub to Fediverse
2021-12-29 11:54:22 +00:00
Yassine Doghri 7fdea63de7 fix(persons): set person picture as optional for better ux
- use default avatar image if person image is not set
- add thumbnail and medium default avatar
images
- set default avatar images directly in public/media folder
- remove public/media's root
folder from .gitignore
- remove unnecessary copy:images script and cpy-cli package

closes #125
2021-12-29 11:37:16 +00:00
Yassine Doghri 32e8c7c16a
feat(rss): add podcast:comments tag to link to episode comments 2021-07-24 08:49:16 +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
Yassine Doghri ec35d5e49d
docs: update linux user namespace section in setup-development.md 2021-06-23 13:34:58 +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 88c52db53c
build(docker): optimize Dockerfile and setup vscode devcontainer with all required dependencies
- fix: set mediaBaseURL as baseURL if not defined
- update dev documentation seting up a dev environment
2021-06-11 09:35:09 +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
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 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
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
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
Yassine Doghri 4101ef47ad docs: add gitlab issue templates, code of conduct and contributing files
- update prettier config for markdown file for better readability
- fix some formatting issues
2020-10-15 14:42:18 +00:00
Benjamin Bellamy 03e23a28bf feat: update analytics so to meet IABv2 requirements
- https://iabtechlab.com/wp-content/uploads/2017/12/Podcast_Measurement_v2-Dec-20-2017.pdf
  - no IP address is ever stored on the server. Only aggregate data is stored in the dababase.
  - rolling 24-hour window
  - castopod does not do pre-load
  - IP Blacklisting https://github.com/client9/ipcat
  - user-agent Filtering https://github.com/opawg/user-agents
  - ignores 2 bytes range "Range: 0-1" (performed by official Apple iOS Podcast app)
  - in case of partial content, adds up all requests to check >1mn was downloaded
  - identifying Uniques is done with a combination of IP Address and User Agent
- add AMcharts
- add some graphs
- add regions to analytics
- add ipcat blacklist
- enhance useragents performances
- add filesize and header size in order to calculate 1mn downloads
- update publisher ID3 field
- update castopod icon
- add disclaimer and warning import form translation
- update docs/setup-development.md

closes #10
2020-10-15 14:42:02 +00:00
Benjamin Bellamy 9a5d5a15b4 feat: import podcast from an rss feed url
* add podcast import form
* add League\\HTMLToMarkdown
* add guid field in podcast table
* change podcast category from string to id

closes #21
2020-10-15 14:41:36 +00:00
Yassine Doghri 58364bfed1 refactor(auth): change contributor's role logic to have it included in the users_podcasts table
- update myth-auth and codeigniter to latest develop changes
- improve permission check: remove all
dynamic permissions per podcast and overwrite myth-auth services and permission filter
- remove
unnecessary code because of myth-auth upgrade
- refactor some controller code for better clarity
-
add remaining seeders in docs

closes #19, #20
2020-10-15 14:41:14 +00:00
Yassine Doghri e0da11517d refactor: update js files to typescript and replace parcel with rollup
- add basic rollup config to bundle minified and browser compatible js
- use babel to transpile
typescript files to js
- add static code checkers: eslint and stylelint
- update package.json
scripts
- update DEPENDENCIES.md file to include rollup and popper
- set html in rss feed
description fields
- update Podcast and Episode entities to add description_html attribute
generated by parsing markdown to html using parsedown

#9
2020-10-15 14:41:12 +00:00
Yassine Doghri c63a077618 feat(users): add myth-auth to handle users crud + add admin gateway only accessible by login
- overwrite myth/auth config with castopod app needs
- create custom views for users authentication
- add admin area bootstrapped by admin controller
- shift podcast and episodes crud to admin area
- reorganize view layouts
- update docs for database migration
- add myth-auth to DEPENDENCIES.md

closes #11
2020-10-15 14:41:03 +00:00
Yassine Doghri c815ecd664 feat(rss): generate rss feed from podcast entity
- refactor episode, podcast and category entities to add dynamic properties
- refactor Routes when adding feed route
- update migration files to better fit itunes' and rss' specs
- update podcast and episode forms
- add SimpleRSSElement class to Libraries
- add rss_helper
- update home controller to redirect if system has only one podcast
2020-10-15 14:40:55 +00:00
Yassine Doghri cbb83a6f30 feat: add npm for js dependencies + move src/ files to root folder
- add node service in docker-compose.yml
- update .devcontainer Dockerfile by adding node, npm and vim
- init package.json for npm with tailwindcss, postcss, commitlint and commitizen as dev dependencies
- update default layout main header and footer
- replace CI's welcome_message.php with home.php listing all podcasts
- add AUTHORS.md file
- add docs folder in which to place castopod's technical documentation
2020-10-15 14:05:36 +00:00