Erste Version
[dreambox-picons-white.git] / fetch-services.php
1 <?php
2 //requires enigma2 "jsonapi" plugin
3 $host = "dreambox";
4
5 $csvFile = __DIR__ . '/services.csv';
6 $bouquets = apiCall('enigma2.servicedata.getTVBouquets');
7 $collection = [];
8
9 foreach ($bouquets as $bouquetData) {
10     list($bouquetKey, $bouquetTitle) = $bouquetData;
11
12     $services = apiCall('enigma2.servicedata.getServiceList', $bouquetKey);
13     foreach ($services as $serviceData) {
14         list($serviceKey, $serviceTitle) = $serviceData;
15         $collection[$serviceKey] = $serviceTitle;
16     }
17 }
18
19 $resCsv = fopen($csvFile, 'w');
20 foreach ($collection as $serviceKey => $serviceTitle) {
21     if (substr($serviceKey, 0, 5) == '1:64:') {
22         continue;
23     }
24     fputcsv($resCsv, [$serviceTitle, $serviceKey]);
25 }
26 fclose($resCsv);
27
28 echo $csvFile . "\n";
29
30 function apiCall($method, ...$params)
31 {
32     global $host;
33     $context = stream_context_create(
34         array(
35             'http' => array(
36                 'method'  => 'POST',
37                 'header'  => 'Content-Type: application/json',
38                 'content' => json_encode(
39                     [
40                         'method' => $method,
41                         'params' => $params,
42                     ]
43                 )
44             )
45         )
46     );
47     $response = file_get_contents('http://' . $host . '/api/call', false, $context);
48     $data = json_decode($response);
49     //FIXME: error check
50     return $data->result;
51 }
52 ?>