Joyn: Bevorzuge kostenlose Folgen & füge Serierntitel zur Überschrift hinzu
This commit is contained in:
@@ -46,6 +46,7 @@ class JoynBridge extends BridgeAbstract {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$episodeMap = [];
|
$episodeMap = [];
|
||||||
|
// Zuerst freeSeasons (werden bevorzugt)
|
||||||
if (isset($series['freeSeasons'])) {
|
if (isset($series['freeSeasons'])) {
|
||||||
foreach ($series['freeSeasons'] as $season) {
|
foreach ($series['freeSeasons'] as $season) {
|
||||||
if (isset($season['episodes'])) {
|
if (isset($season['episodes'])) {
|
||||||
@@ -57,19 +58,20 @@ class JoynBridge extends BridgeAbstract {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Joyn Plus (svodSeasons) ergänzen
|
// Dann svodSeasons, aber nur wenn die Episode noch nicht existiert
|
||||||
if (isset($series['svodSeasons'])) {
|
if (isset($series['svodSeasons'])) {
|
||||||
foreach ($series['svodSeasons'] as $season) {
|
foreach ($series['svodSeasons'] as $season) {
|
||||||
if (isset($season['episodes'])) {
|
if (isset($season['episodes'])) {
|
||||||
foreach ($season['episodes'] as $episode) {
|
foreach ($season['episodes'] as $episode) {
|
||||||
|
if (!isset($episodeMap[$episode['id']])) {
|
||||||
$episode['seasonNumber'] = $season['number'];
|
$episode['seasonNumber'] = $season['number'];
|
||||||
$episode['__plus__'] = true;
|
$episode['__plus__'] = true;
|
||||||
// Überschreibe ggf. free-Episode mit PLUS-Version
|
|
||||||
$episodeMap[$episode['id']] = $episode;
|
$episodeMap[$episode['id']] = $episode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$allEpisodes = array_values($episodeMap);
|
$allEpisodes = array_values($episodeMap);
|
||||||
// Sortiere nach Episodennummer absteigend (neueste zuerst)
|
// Sortiere nach Episodennummer absteigend (neueste zuerst)
|
||||||
usort($allEpisodes, function($a, $b) {
|
usort($allEpisodes, function($a, $b) {
|
||||||
@@ -79,6 +81,7 @@ class JoynBridge extends BridgeAbstract {
|
|||||||
}
|
}
|
||||||
return ($b['number'] ?? 0) <=> ($a['number'] ?? 0);
|
return ($b['number'] ?? 0) <=> ($a['number'] ?? 0);
|
||||||
});
|
});
|
||||||
|
$seriesTitle = $series['title'] ?? '';
|
||||||
foreach ($allEpisodes as $episode) {
|
foreach ($allEpisodes as $episode) {
|
||||||
$seasonNumber = $episode['seasonNumber'] ?? 1;
|
$seasonNumber = $episode['seasonNumber'] ?? 1;
|
||||||
$episodeNumber = $episode['number'] ?? 1;
|
$episodeNumber = $episode['number'] ?? 1;
|
||||||
@@ -88,7 +91,10 @@ class JoynBridge extends BridgeAbstract {
|
|||||||
$primaryImage = $episode['primaryImage']['url'] ?? '';
|
$primaryImage = $episode['primaryImage']['url'] ?? '';
|
||||||
$isPlus = !empty($episode['__plus__']);
|
$isPlus = !empty($episode['__plus__']);
|
||||||
$item = [];
|
$item = [];
|
||||||
$item['title'] = sprintf('%sS%02dE%02d "%s"', $isPlus ? '[Joyn PLUS+] ' : '', $seasonNumber, $episodeNumber, $title);
|
$seasonNum = str_pad($seasonNumber, 2, '0', STR_PAD_LEFT);
|
||||||
|
$epNum = str_pad($episodeNumber, 2, '0', STR_PAD_LEFT);
|
||||||
|
$epCode = 'S' . $seasonNum . 'E' . $epNum;
|
||||||
|
$item['title'] = sprintf('%s%s %s "%s"', $isPlus ? '[Joyn PLUS+] ' : '', $seriesTitle, $epCode, $title);
|
||||||
$item['content'] = '<p>Neue Folge verfügbar';
|
$item['content'] = '<p>Neue Folge verfügbar';
|
||||||
if ($isPlus) {
|
if ($isPlus) {
|
||||||
$item['content'] .= ' <span style="color:red;font-weight:bold">Joyn PLUS+ (Abo benötigt)</span>';
|
$item['content'] .= ' <span style="color:red;font-weight:bold">Joyn PLUS+ (Abo benötigt)</span>';
|
||||||
|
|||||||
Reference in New Issue
Block a user