From 765af484bc19d38f08ac2fe8d2d050fac293d06a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20F=C3=BCrhoff?= Date: Thu, 17 Feb 2022 04:15:19 +0100 Subject: [PATCH] =?UTF-8?q?[RtsBridge]=20Add=20new=20bridge=20for=20Radio?= =?UTF-8?q?=20T=C3=A9l=C3=A9vision=20Suisse=20(#2442)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bridges/RtsBridge.php | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 bridges/RtsBridge.php diff --git a/bridges/RtsBridge.php b/bridges/RtsBridge.php new file mode 100644 index 00000000000..002e4d6af77 --- /dev/null +++ b/bridges/RtsBridge.php @@ -0,0 +1,76 @@ + array( + 'idShow' => array( + 'name' => 'Show id', + 'required' => true, + 'exampleValue' => 385418, + 'title' => 'ex. 385418 pour + https://www.rts.ch/play/tv/emission/a-bon-entendeur?id=385418' + ) + ), + 'ID de la section' => array( + 'idSection' => array( + 'name' => 'Section id', + 'required' => true, + 'exampleValue' => 'ce802a54-8877-49cc-acd6-8d244762829b', + 'title' => 'ex. ce802a54-8877-49cc-acd6-8d244762829b pour + https://www.rts.ch/play/tv/detail/humour?id=ce802a54-8877-49cc-acd6-8d244762829b' + ) + ) + ); + + public function collectData(){ + switch($this->queriedContext) { + case 'ID de l\'émission': + $showId = $this->getInput('idShow'); + + $url = 'https://www.rts.ch/play/v3/api/rts/production/videos-by-show-id?showId=' + . $showId; + break; + case 'ID de la section': + $sectionId = $this->getInput('idSection'); + + $url = 'https://www.rts.ch/play/v3/api/rts/production/media-section?sectionId=' + . $sectionId; + break; + } + + $header = array(); + $input = getContents($url, $header); + $input_json = json_decode($input, true); + + foreach($input_json['data']['data'] as $element) { + + $item = array(); + $item['uri'] = 'https://www.rts.ch/play/tv/-/video/-?urn=' . $element['urn']; + $item['uid'] = $element['id']; + + $item['timestamp'] = strtotime($element['date']); + $item['title'] = $element['show']['title'] . ' - ' . $element['title']; + + $item['duration'] = round((int)$element['duration'] / 60000); + $durationInHour = date('g\hi', mktime(0, $item['duration'])); + $durationInMin = date('i\m\i\n', mktime(0, $item['duration'])); + $durationText = $item['duration'] > 60 ? $durationInHour : $durationInMin; + + $item['content'] = $element['description'] + . '

' + . $durationText + . '
'; + + $this->items[] = $item; + } + } +}