Commit 3a492581 authored by Benjamin Bellamy's avatar Benjamin Bellamy 💬 Committed by Yassine Doghri
Browse files

feat: add unique listeners analytics

- add unique listener
- add some charts
- correct minor bugs
parent 9660aa97
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -121,6 +121,14 @@ $routes->group(
                    'as' => 'podcast-analytics',
                    'filter' => 'permission:podcasts-view,podcast-view',
                ]);
                $routes->get(
                    'analytics-data/(:segment)',
                    'AnalyticsData::getData/$1/$2',
                    [
                        'as' => 'analytics-full-data',
                        'filter' => 'permission:podcasts-view,podcast-view',
                    ]
                );
                $routes->get(
                    'analytics-data/(:segment)/(:segment)',
                    'AnalyticsData::getData/$1/$2/$3',
+3 −2
Original line number Diff line number Diff line
@@ -23,14 +23,15 @@ class AnalyticsData extends BaseController

    public function _remap($method, ...$params)
    {
        if (count($params) > 2) {
        if (count($params) > 1) {
            if (!($this->podcast = (new PodcastModel())->find($params[0]))) {
                throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound(
                    'Podcast not found: ' . $params[0]
                );
            }
            $this->className = '\App\Models\Analytics' . $params[1] . 'Model';
            $this->methodName = 'getData' . $params[2];
            $this->methodName =
                'getData' . (empty($params[2]) ? '' : $params[2]);
            if (count($params) > 3) {
                if (
                    !($this->episode = (new EpisodeModel())
+7 −2
Original line number Diff line number Diff line
<?php

/**
 * Class AddAnalyticsPodcastsByCountry
 * Creates analytics_podcasts_by_country table in database
 * Class AddAnalyticsPodcasts
 * Creates analytics_podcasts table in database
 * @copyright  2020 Podlibre
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
@@ -30,6 +30,11 @@ class AddAnalyticsPodcasts extends Migration
                'constraint' => 10,
                'default' => 1,
            ],
            'unique_listeners' => [
                'type' => 'INT',
                'constraint' => 10,
                'default' => 1,
            ],
        ]);
        $this->forge->addPrimaryKey(['podcast_id', 'date']);
        $this->forge->addField(
+2 −2
Original line number Diff line number Diff line
<?php

/**
 * Class AddAnalyticsEpisodesByCountry
 * Creates analytics_episodes_by_country table in database
 * Class AddAnalyticsPodcastsByEpisode
 * Creates analytics_episodes_by_episode table in database
 * @copyright  2020 Podlibre
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
+2 −2
Original line number Diff line number Diff line
<?php

/**
 * Class AddAnalyticsWebsiteByReferer
 * Creates analytics_website_by_referer table in database
 * Class AddAnalyticsWebsiteByEntryPage
 * Creates analytics_website_by_entry_page table in database
 * @copyright  2020 Podlibre
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
Loading