mirror of
https://github.com/ad-aures/castopod.git
synced 2026-04-14 03:57:45 +02:00
refactor: add modules folder to phpstan paths + fix errors
This commit is contained in:
parent
7a6d9df6db
commit
bb628f355f
166 changed files with 452 additions and 526 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\Analytics\Config\Analytics;
|
||||
use CodeIgniter\Router\RouteCollection;
|
||||
|
||||
/**
|
||||
* @copyright 2021 Ad Aures
|
||||
|
|
@ -27,17 +27,17 @@ $routes->addPlaceholder(
|
|||
$routes->group('', [
|
||||
'namespace' => 'Modules\Analytics\Controllers',
|
||||
], static function ($routes): void {
|
||||
$routes->group(config(Analytics::class)->gateway . '/(:num)/(:class)', static function ($routes): void {
|
||||
$routes->group(config('Analytics')->gateway . '/(:num)/(:class)', static function ($routes): void {
|
||||
$routes->get('/', 'AnalyticsController::getData/$1/$2', [
|
||||
'as' => 'analytics-full-data',
|
||||
'filter' => config(Analytics::class)
|
||||
'filter' => config('Analytics')
|
||||
->routeFilters[
|
||||
'analytics-full-data'
|
||||
],
|
||||
]);
|
||||
$routes->get('(:filter)', 'AnalyticsController::getData/$1/$2/$3', [
|
||||
'as' => 'analytics-data',
|
||||
'filter' => config(Analytics::class)
|
||||
'filter' => config('Analytics')
|
||||
->routeFilters['analytics-data'],
|
||||
]);
|
||||
$routes->get(
|
||||
|
|
@ -45,14 +45,14 @@ $routes->group('', [
|
|||
'AnalyticsController::getData/$1/$2/$3/$4',
|
||||
[
|
||||
'as' => 'analytics-filtered-data',
|
||||
'filter' => config(Analytics::class)
|
||||
'filter' => config('Analytics')
|
||||
->routeFilters[
|
||||
'analytics-filtered-data'
|
||||
],
|
||||
],
|
||||
);
|
||||
});
|
||||
$routes->get(config(Analytics::class)->gateway . '/(:class)/(:filter)', 'AnalyticsController::getData/$1/$2', [
|
||||
$routes->get(config('Analytics')->gateway . '/(:class)/(:filter)', 'AnalyticsController::getData/$1/$2', [
|
||||
'as' => 'analytics-data-instance',
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -31,11 +31,13 @@ class AnalyticsController extends Controller
|
|||
}
|
||||
|
||||
if (! is_numeric($params[0])) {
|
||||
// @phpstan-ignore-next-line
|
||||
$this->analyticsModel = model('Analytics' . $params[0] . 'Model');
|
||||
$this->methodName = 'getData' . $params[1];
|
||||
return $this->{$method}();
|
||||
}
|
||||
|
||||
// @phpstan-ignore-next-line
|
||||
$this->analyticsModel = model('Analytics' . $params[1] . 'Model');
|
||||
$this->methodName = 'getData' . (count($params) >= 3 ? $params[2] : '');
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcasts extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcastsByCountry extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcastsByEpisode extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcastsByHour extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcastsByPlayer extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcastsByRegion extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ use Opawg\UserAgentsV2Php\UserAgentsRSS;
|
|||
class AnalyticsPodcastsByService extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsPodcastsBySubscription extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsUnknownUserAgent extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsWebsiteByBrowser extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsWebsiteByEntryPage extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use CodeIgniter\Entity\Entity;
|
|||
class AnalyticsWebsiteByReferer extends Entity
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $dates = ['date', 'created_at', 'updated_at'];
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ declare(strict_types=1);
|
|||
use AdAures\Ipcat\IpDb;
|
||||
use Config\Services;
|
||||
use GeoIp2\Database\Reader;
|
||||
use Modules\Analytics\Config\Analytics;
|
||||
use Opawg\UserAgentsV2Php\UserAgents;
|
||||
use WhichBrowser\Parser;
|
||||
|
||||
|
|
@ -41,11 +40,12 @@ if (! function_exists('client_ip')) {
|
|||
*/
|
||||
function client_ip(): string
|
||||
{
|
||||
if (! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
$superglobals = service('superglobals');
|
||||
if (! empty($superglobals->server('HTTP_X_FORWARDED_FOR'))) {
|
||||
return $superglobals->server('HTTP_X_FORWARDED_FOR');
|
||||
}
|
||||
|
||||
return $_SERVER['REMOTE_ADDR'];
|
||||
return $superglobals->server('REMOTE_ADDR');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -109,7 +109,8 @@ if (! function_exists('set_user_session_player')) {
|
|||
|
||||
if (! $session->has('player')) {
|
||||
$playerFound = null;
|
||||
$userAgent = $_SERVER['HTTP_USER_AGENT'];
|
||||
$userAgent = service('superglobals')
|
||||
->server('HTTP_USER_AGENT');
|
||||
|
||||
try {
|
||||
$playerFound = UserAgents::find($userAgent);
|
||||
|
|
@ -175,7 +176,8 @@ if (! function_exists('set_user_session_referer')) {
|
|||
{
|
||||
$session = Services::session();
|
||||
|
||||
$newreferer = $_SERVER['HTTP_REFERER'] ?? '- Direct -';
|
||||
$newreferer = service('superglobals')
|
||||
->server('HTTP_REFERER') ?? '- Direct -';
|
||||
$newreferer =
|
||||
parse_url((string) $newreferer, PHP_URL_HOST) ===
|
||||
parse_url(current_url(false), PHP_URL_HOST)
|
||||
|
|
@ -195,7 +197,8 @@ if (! function_exists('set_user_session_entry_page')) {
|
|||
{
|
||||
$session = Services::session();
|
||||
|
||||
$entryPage = $_SERVER['REQUEST_URI'];
|
||||
$entryPage = service('superglobals')
|
||||
->server('REQUEST_URI');
|
||||
if (! $session->has('entryPage')) {
|
||||
$session->set('entryPage', $entryPage);
|
||||
}
|
||||
|
|
@ -243,10 +246,11 @@ if (! function_exists('podcast_hit')) {
|
|||
$session->get('player')['bot'] = true;
|
||||
}
|
||||
|
||||
$superglobals = service('superglobals');
|
||||
//We get the HTTP header field `Range`:
|
||||
$httpRange = $_SERVER['HTTP_RANGE'] ?? null;
|
||||
$httpRange = $superglobals->server('HTTP_RANGE') ?? null;
|
||||
|
||||
$salt = config(Analytics::class)
|
||||
$salt = config('Analytics')
|
||||
->salt;
|
||||
// We create a sha1 hash for this Salt+Current_Date+IP_Address+User_Agent+Episode_ID (used to count only once multiple episode downloads):
|
||||
$episodeListenerHashId =
|
||||
|
|
@ -254,11 +258,14 @@ if (! function_exists('podcast_hit')) {
|
|||
sha1(
|
||||
$salt . '_' . date(
|
||||
'Y-m-d'
|
||||
) . '_' . $clientIp . '_' . $_SERVER['HTTP_USER_AGENT'] . '_' . $episodeId
|
||||
) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $episodeId
|
||||
);
|
||||
// The cache expires at midnight:
|
||||
$secondsToMidnight = strtotime('tomorrow') - time();
|
||||
|
||||
/** @var int|null $downloadedBytes */
|
||||
$downloadedBytes = cache($episodeListenerHashId);
|
||||
|
||||
if ($downloadedBytes === null) {
|
||||
// If it was never downloaded that means that zero bytes were downloaded:
|
||||
$downloadedBytes = 0;
|
||||
|
|
@ -301,13 +308,16 @@ if (! function_exists('podcast_hit')) {
|
|||
sha1(
|
||||
$salt . '_' . date(
|
||||
'Y-m-d'
|
||||
) . '_' . $clientIp . '_' . $_SERVER['HTTP_USER_AGENT'] . '_' . $podcastId
|
||||
) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $podcastId
|
||||
);
|
||||
$newListener = 1;
|
||||
|
||||
// Has this listener already downloaded an episode today:
|
||||
/** @var int|null $downloadsByUser */
|
||||
$downloadsByUser = cache($podcastListenerHashId);
|
||||
|
||||
// We add one download
|
||||
if ($downloadsByUser) {
|
||||
if ($downloadsByUser === null) {
|
||||
$newListener = 0;
|
||||
++$downloadsByUser;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Analytics\Models;
|
||||
|
||||
use App\Entities\Media\BaseMedia;
|
||||
use CodeIgniter\Model;
|
||||
use Modules\Analytics\Entities\AnalyticsPodcasts;
|
||||
use Modules\Media\Models\MediaModel;
|
||||
|
|
@ -263,7 +262,7 @@ class AnalyticsPodcastModel extends Model
|
|||
/**
|
||||
* Get total storage
|
||||
*
|
||||
* @return BaseMedia[]
|
||||
* @return AnalyticsPodcasts[]
|
||||
*/
|
||||
public function getDataTotalStorageByMonth(): array
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Modules\Analytics\Models;
|
|||
use CodeIgniter\Model;
|
||||
use Modules\Analytics\Entities\AnalyticsUnknownUserAgent;
|
||||
|
||||
class AnalyticsUnknownUserAgentModel extends Model
|
||||
class AnalyticsUnknownUserAgentsModel extends Model
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
Loading…
Add table
Add a link
Reference in a new issue