Commit Graph

655 Commits

Author SHA1 Message Date
semantic-release-bot 0ab17d1075 chore(release): 1.0.0-alpha.7 [skip ci]
# [1.0.0-alpha.7](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.6...v1.0.0-alpha.7) (2020-10-21)

### Features

* **analytics:** add service name from rss user-agent ([7202b98](7202b9867b))

### BREAKING CHANGES

* **analytics:** analytics_podcasts_by_player table and analytics_podcasts procedure were updated
2020-10-21 16:08:07 +00:00
Benjamin Bellamy 7202b9867b feat(analytics): add service name from rss user-agent
BREAKING CHANGE: analytics_podcasts_by_player table and analytics_podcasts procedure were updated
2020-10-21 16:04:18 +00:00
semantic-release-bot 8ca5b33b60 chore(release): 1.0.0-alpha.6 [skip ci]
# [1.0.0-alpha.6](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.5...v1.0.0-alpha.6) (2020-10-20)

### Bug Fixes

* **cache:** add locale for podcast and episode pages + clear some persisting cache in models ([9cec8a8](9cec8a81cc)), closes [#42](https://code.podlibre.org/podlibre/castopod/issues/42) [#61](https://code.podlibre.org/podlibre/castopod/issues/61)
2020-10-20 15:50:31 +00:00
Yassine Doghri 9cec8a81cc fix(cache): add locale for podcast and episode pages + clear some persisting cache in models
fixes #42, #61
2020-10-20 15:39:20 +00:00
semantic-release-bot a354940e5e chore(release): 1.0.0-alpha.5 [skip ci]
# [1.0.0-alpha.5](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.4...v1.0.0-alpha.5) (2020-10-20)

### Features

* add lock podcast according to the Podcastindex podcast-namespace to prevent unauthozized import ([72b3012](72b301272e))
2020-10-20 13:50:01 +00:00
Benjamin Bellamy 72b301272e feat: add lock podcast according to the Podcastindex podcast-namespace to prevent unauthozized import 2020-10-20 13:46:00 +00:00
semantic-release-bot e49b223926 chore(release): 1.0.0-alpha.4 [skip ci]
# [1.0.0-alpha.4](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.3...v1.0.0-alpha.4) (2020-10-20)

### Features

* **analytics:** add charts and data export ([78625c4](78625c471b))
2020-10-20 09:42:47 +00:00
Benjamin Bellamy 78625c471b feat(analytics): add charts and data export 2020-10-20 09:32:03 +00:00
semantic-release-bot 112a71d867 chore(release): 1.0.0-alpha.3 [skip ci]
# [1.0.0-alpha.3](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.2...v1.0.0-alpha.3) (2020-10-19)

### Bug Fixes

* **analytics:** remove charts empty values + remove useless language cache ([1678794](1678794153))
2020-10-19 16:50:56 +00:00
Benjamin Bellamy 1678794153 fix(analytics): remove charts empty values + remove useless language cache
fix(install): edit host_url helper and remove back() when create .env
2020-10-19 16:47:22 +00:00
semantic-release-bot bc8b88f6f6 chore(release): 1.0.0-alpha.2 [skip ci]
# [1.0.0-alpha.2](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.1...v1.0.0-alpha.2) (2020-10-19)

### Features

* add cumulative listening time charts ([588b4d2](588b4d28da))
2020-10-19 10:46:00 +00:00
Benjamin Bellamy 588b4d28da feat: add cumulative listening time charts 2020-10-19 10:33:23 +00:00
semantic-release-bot 14733105e6 chore(release): 1.0.0-alpha.1 [skip ci]
# 1.0.0-alpha.1 (2020-10-16)

### Bug Fixes

* add public/media folder to castopod bundle ([8053d35](8053d3521b)), closes [#52](https://code.podlibre.org/podlibre/castopod/issues/52)
* add where condition to get episode count without deleted episodes ([7661734](7661734ed2)), closes [#67](https://code.podlibre.org/podlibre/castopod/issues/67)
* comment all cache clean after page update to prevent analytics cache deletion ([e6197a4](e6197a4972))
* correct chart data ([4d3e9c8](4d3e9c8c02))
* correct percona compatibility issue ([e53f819](e53f819264))
* correct php-fpm issues ([1ef55d7](1ef55d7315))
* correct referrer bug ([ed69b2f](ed69b2f500))
* correction for servers with low int precision ([31b7828](31b7828e77))
* declare typed properties in PHPDoc for php<7.4 ([14dd44d](14dd44d03d)), closes [#23](https://code.podlibre.org/podlibre/castopod/issues/23)
* escape generated feed tag values and remove new lines from public pages meta description ([6238a43](6238a43863)), closes [#57](https://code.podlibre.org/podlibre/castopod/issues/57) [#46](https://code.podlibre.org/podlibre/castopod/issues/46)
* fix layout bugs in admin and update translation files ([a834171](a83417180c)), closes [#40](https://code.podlibre.org/podlibre/castopod/issues/40)
* minor corrections ([13be386](13be386842))
* move analytics to helper ([d311917](d31191732e))
* re-order graph values ([35f633b](35f633b4c7))
* remove required for other_categories field and add podcast_id to latest podcasts query ([5417be0](5417be0049))
* rename issue_templates labels ([9f00305](9f00305844))
* rename MyAccount controller file ([e109df3](e109df3004)), closes [#60](https://code.podlibre.org/podlibre/castopod/issues/60)
* reorder fields as composite primary keys for analytics tables ([9660aa9](9660aa97c8))
* replace website key for webpages in breadcrumb translate file ([50e32ff](50e32ff756))
* set episode duration translation to hardcoded english ([c39efc9](c39efc9489)), closes [#64](https://code.podlibre.org/podlibre/castopod/issues/64)
* set episode guid upon episode creation ([ad8b153](ad8b153f2a)), closes [#48](https://code.podlibre.org/podlibre/castopod/issues/48)
* update purgecss content path for php helper files ([eb70bb4](eb70bb4f70)), closes [#59](https://code.podlibre.org/podlibre/castopod/issues/59)
* **install:** redirect to input baseUrl after instance config ([2426af7](2426af7de8)), closes [#53](https://code.podlibre.org/podlibre/castopod/issues/53)
* **platforms:** display platform link only when visible is toggled on ([6e503c8](6e503c8d61)), closes [#39](https://code.podlibre.org/podlibre/castopod/issues/39)
* sort episodic podcasts by season ([d7b6794](d7b6794f68))
* update .htaccess for shared hosting config ([2379826](2379826352))
* update iso-369 language table seeder ([0c90db4](0c90db44c4))
* **package.json:** update destination of postcss generation scripts ([21413f8](21413f8af3))
* use slash instead of backslash to call layout ([a80adb2](a80adb2295))

### Features

* add alternate rss feed link tag to podcast page head ([a973c09](a973c097d5)), closes [#35](https://code.podlibre.org/podlibre/castopod/issues/35)
* add analytics and unknown useragents ([ec92e65](ec92e65aa4))
* add breadcrumb in admin area ([7fb1de2](7fb1de2cf3)), closes [#17](https://code.podlibre.org/podlibre/castopod/issues/17)
* add french translation ([196920d](196920d62f))
* add install wizard form to bootstrap database and create the first superadmin user ([cba871c](cba871c5df)), closes [#2](https://code.podlibre.org/podlibre/castopod/issues/2)
* add ISO 3166 country codes ([97cd94b](97cd94b474))
* add map analytics, add episodes analytics, clean analytics page layout, translate countries ([07eae83](07eae83a00))
* add npm for js dependencies + move src/ files to root folder ([cbb83a6](cbb83a6f30))
* add pages table to store custom instance pages (eg. legal-notice, cookie policy, etc.) ([9c224a8](9c224a8ac6)), closes [#24](https://code.podlibre.org/podlibre/castopod/issues/24)
* add platform models ([a333d29](a333d29196))
* add platforms form in podcast settings ([043f49c](043f49c784))
* add platforms tables ([ce59344](ce5934419a))
* add unique listeners analytics ([3a49258](3a4925816f))
* add user permissions and basic groups to handle authorizations ([d58e518](d58e51874a)), closes [#3](https://code.podlibre.org/podlibre/castopod/issues/3) [#18](https://code.podlibre.org/podlibre/castopod/issues/18)
* create optimized & resized images upon upload ([02e4441](02e4441f98)), closes [#6](https://code.podlibre.org/podlibre/castopod/issues/6)
* display legal disclaimer and warning on podcast import page ([2f07992](2f07992e55)), closes [#34](https://code.podlibre.org/podlibre/castopod/issues/34)
* edit + delete podcast and episode ([ac5f0c7](ac5f0c7328))
* enhance admin ui with responsive design and ux improvements ([2d44b45](2d44b457a0)), closes [#31](https://code.podlibre.org/podlibre/castopod/issues/31) [#9](https://code.podlibre.org/podlibre/castopod/issues/9)
* enhance ui using javascript in admin area ([c0e66d5](c0e66d5f70))
* import podcast from an rss feed url ([9a5d5a1](9a5d5a15b4)), closes [#21](https://code.podlibre.org/podlibre/castopod/issues/21)
* set podcast / episode description in the pages description meta tag ([1c4a504](1c4a50442b)), closes [#44](https://code.podlibre.org/podlibre/castopod/issues/44)
* update analytics so to meet IABv2 requirements ([03e23a2](03e23a28bf)), closes [#10](https://code.podlibre.org/podlibre/castopod/issues/10)
* **cache:** add podcast and episode pages to cache + clear them after insert or update ([da0f047](da0f047281))
* **categories:** create model, entity, migrations and seeds ([f73b042](f73b042cc0))
* **devcontainer:** add devcontainer settings for dev environment ([69e7266](69e7266736))
* **episodes:** add create form and view pages for episode ([f3b2c8b](f3b2c8b84f)), closes [#1](https://code.podlibre.org/podlibre/castopod/issues/1)
* **episodes:** add migrations, model and entity for episodes table ([0444821](044482174e))
* **podcast:** create a podcast using form ([1202ba3](1202ba3545))
* **podcast-form:** update routes and redirect to podcast page ([12ce905](12ce905799))
* **public-ui:** adapt public podcast and episode pages to wireframes ([40a0535](40a0535fc1)), closes [#30](https://code.podlibre.org/podlibre/castopod/issues/30) [#13](https://code.podlibre.org/podlibre/castopod/issues/13)
* **rss:** generate rss feed from podcast entity ([c815ecd](c815ecd664))
* **users:** add myth-auth to handle users crud + add admin gateway only accessible by login ([c63a077](c63a077618)), closes [#11](https://code.podlibre.org/podlibre/castopod/issues/11)
* minor corrections to some tables ([3bf9420](3bf9420b59))
* write id3v2 tags to episode's audio file ([4651d01](4651d01a84))

### Reverts

* use basic input file for episodes audio files instead of button for better UX ([d5f22fb](d5f22fbb38))
2020-10-16 15:26:13 +00:00
Yassine Doghri 6c36888a21 ci(release): automate castopod versioned releases using semantic-release
closes #38
2020-10-16 15:17:08 +00:00
Yassine Doghri 50e32ff756 fix: replace website key for webpages in breadcrumb translate file 2020-10-15 20:22:33 +00:00
Yassine Doghri 96b39002eb chore: clean interactive rebase conflicts 2020-10-15 15:24:16 +00:00
Yassine Doghri d5f22fbb38 revert: use basic input file for episodes audio files instead of button for better UX
replace platform visible checkbox with switch
2020-10-15 14:42:33 +00:00
Yassine Doghri 7661734ed2 fix: add where condition to get episode count without deleted episodes
contain podcast page header info within an md width

fixes #67
2020-10-15 14:42:32 +00:00
Yassine Doghri e6197a4972 fix: comment all cache clean after page update to prevent analytics cache deletion 2020-10-15 14:42:31 +00:00
Yassine Doghri eb70bb4f70 fix: update purgecss content path for php helper files
- fix overshooting podcast name when too long in podcast sidebar
- update npm packages to latest versions

fixes #59
2020-10-15 14:42:30 +00:00
Yassine Doghri c39efc9489 fix: set episode duration translation to hardcoded english
- intl NumberFormatter doesn't work as it should with french language
- fix typo in episode french tranlation

fixes #64
2020-10-15 14:42:29 +00:00
Benjamin Bellamy 07eae83a00 feat: add map analytics, add episodes analytics, clean analytics page layout, translate countries 2020-10-15 14:42:28 +00:00
Benjamin Bellamy 196920d62f feat: add french translation 2020-10-15 14:42:25 +00:00
Yassine Doghri 93eb9e1056 style: update 404 and 500 error pages to use tailwindcss and Castopod mascot
- add back to previous page button to 404 page
- replace public/favicon.ico
2020-10-15 14:42:24 +00:00
Yassine Doghri a83417180c fix: fix layout bugs in admin and update translation files
fixes #40
2020-10-15 14:42:23 +00:00
Yassine Doghri e109df3004 fix: rename MyAccount controller file
Myaccount controller causes 404 page on certain systems

fixes #60
2020-10-15 14:42:22 +00:00
Yassine Doghri 6238a43863 fix: escape generated feed tag values and remove new lines from public pages meta description
fixes #57, #46
2020-10-15 14:42:21 +00:00
Yassine Doghri 8053d3521b fix: add public/media folder to castopod bundle
ignore all contents of media folder except index.html file in .gitignore

fixes #52
2020-10-15 14:42:20 +00:00
Yassine Doghri ad8b153f2a fix: set episode guid upon episode creation
fixes #48
2020-10-15 14:42:19 +00:00
Yassine Doghri 9f00305844 fix: rename issue_templates labels 2020-10-15 14:42:18 +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
Yassine Doghri 2426af7de8 fix(install): redirect to input baseUrl after instance config
install was redirecting to default baseUrl because `redirect->back()` uses the `site_url()` function

fix #53
2020-10-15 14:42:17 +00:00
Benjamin Bellamy 419604c486 docs(readme): fix broken image link 2020-10-15 14:42:16 +00:00
Yassine Doghri 1c4a50442b feat: set podcast / episode description in the pages description meta tag
strip html tags from description_html attributes to generate text only description

closes #44
2020-10-15 14:42:15 +00:00
Benjamin Bellamy 4d3e9c8c02 fix: correct chart data 2020-10-15 14:42:14 +00:00
Yassine Doghri 769ea469c9 refactor: update install logic and add missing cache config step
- add `.env.example` and `INSTALL.md` to castopod bundle for installation docs
- update seeders to be silent on insert errors
- update install layout
- add manual config instructions when .env file is not writable
- fix eslint error in Charts.ts module

closes #32
2020-10-15 14:42:13 +00:00
Benjamin Bellamy 35f633b4c7 fix: re-order graph values 2020-10-15 14:42:11 +00:00
Benjamin Bellamy e53f819264 fix: correct percona compatibility issue 2020-10-15 14:42:10 +00:00
Benjamin Bellamy 3a4925816f feat: add unique listeners analytics
- add unique listener
- add some charts
- correct minor bugs
2020-10-15 14:42:09 +00:00
Benjamin Bellamy 9660aa97c8 fix: reorder fields as composite primary keys for analytics tables 2020-10-15 14:42:07 +00:00
Benjamin Bellamy ed69b2f500 fix: correct referrer bug 2020-10-15 14:42:06 +00:00
Yassine Doghri 6e503c8d61 fix(platforms): display platform link only when visible is toggled on
add condition to podcast page

fix #39
2020-10-15 14:42:05 +00:00
Yassine Doghri 2f07992e55 feat: display legal disclaimer and warning on podcast import page
updated podcast import translations

closes #34
2020-10-15 14:42:04 +00:00
Yassine Doghri a973c097d5 feat: add alternate rss feed link tag to podcast page head
update composer packages to latest versions

closes #35
2020-10-15 14:42:03 +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 5417be0049 fix: remove required for other_categories field and add podcast_id to latest podcasts query 2020-10-15 14:41:57 +00:00
Yassine Doghri 2d44b457a0 feat: enhance admin ui with responsive design and ux improvements
- add podcast sidebar navigation
- add podcast dashboard with latest episodes
- add pagination to podcast episodes
- add components helper to reuse ui components (button, data_table, etc.)
- enhance podcast and episode forms by splitting them into form sections
- add hint tooltips to podcast and episode forms
- transform radio inputs as buttons for better ux
- replace explicit field by parental_advisory
- replace author field by publisher
- add podcasts_categories table to set multiple categories
- use choices.js to enhance multiselect fields
- update Language files
- update js dependencies to latest versions

closes #31, #9
2020-10-15 14:41:56 +00:00
Benjamin Bellamy 31b7828e77 fix: correction for servers with low int precision 2020-10-15 14:41:49 +00:00
Benjamin Bellamy d7b6794f68 fix: sort episodic podcasts by season 2020-10-15 14:41:49 +00:00
Benjamin Bellamy 2379826352 fix: update .htaccess for shared hosting config 2020-10-15 14:41:48 +00:00