mirror of
https://github.com/ad-aures/castopod.git
synced 2026-04-14 20:17:46 +02:00
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
This commit is contained in:
parent
5417be0049
commit
03e23a28bf
61 changed files with 3162 additions and 540 deletions
|
|
@ -58,6 +58,14 @@ class Podcast extends BaseController
|
|||
return view('admin/podcast/view', $data);
|
||||
}
|
||||
|
||||
public function analytics()
|
||||
{
|
||||
$data = ['podcast' => $this->podcast];
|
||||
|
||||
replace_breadcrumb_params([0 => $this->podcast->title]);
|
||||
return view('admin/podcast/analytics', $data);
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
helper(['form', 'misc']);
|
||||
|
|
@ -204,7 +212,9 @@ class Podcast extends BaseController
|
|||
$podcast = new \App\Entities\Podcast([
|
||||
'name' => $this->request->getPost('name'),
|
||||
'imported_feed_url' => $this->request->getPost('imported_feed_url'),
|
||||
|
||||
'new_feed_url' => base_url(
|
||||
route_to('podcast_feed', $this->request->getPost('name'))
|
||||
),
|
||||
'title' => $feed->channel[0]->title,
|
||||
'description' => $feed->channel[0]->description,
|
||||
'image' => download_file($nsItunes->image->attributes()),
|
||||
|
|
@ -214,7 +224,9 @@ class Podcast extends BaseController
|
|||
? null
|
||||
: (in_array($nsItunes->explicit, ['yes', 'true'])
|
||||
? 'explicit'
|
||||
: null),
|
||||
: (in_array($nsItunes->explicit, ['no', 'false'])
|
||||
? 'clean'
|
||||
: null)),
|
||||
'owner_name' => $nsItunes->owner->name,
|
||||
'owner_email' => $nsItunes->owner->email,
|
||||
'publisher' => $nsItunes->author,
|
||||
|
|
@ -302,11 +314,13 @@ class Podcast extends BaseController
|
|||
'image' => empty($nsItunes->image->attributes())
|
||||
? null
|
||||
: download_file($nsItunes->image->attributes()),
|
||||
'explicit' => $nsItunes->explicit
|
||||
? (in_array($nsItunes->explicit, ['yes', 'true'])
|
||||
'parental_advisory' => empty($nsItunes->explicit)
|
||||
? null
|
||||
: (in_array($nsItunes->explicit, ['yes', 'true'])
|
||||
? 'explicit'
|
||||
: null)
|
||||
: null,
|
||||
: (in_array($nsItunes->explicit, ['no', 'false'])
|
||||
? 'clean'
|
||||
: null)),
|
||||
'number' =>
|
||||
$this->request->getPost('force_renumber') === 'yes'
|
||||
? $itemNumber
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue