Jacek Kowalski
2012-06-25 869f974e51920ef5f81e2c5eeaa67cf3919981f5
commit | author | age
8bd4d9 1 <?php
8091b1 2 require_once('wp_parse.php');
JK 3
8bd4d9 4 echo STAR.'Pobieranie programu TV...';
JK 5 $stations = array(
6     1 => 'TVP 1',
7     2 => 'TVP 2',
8     233 => 'TVP3 Regionalna',
9     3 => 'TV Polonia',
10     368 => 'TVP Kultura',
11     5 => 'Polsat',
12     6 => 'Polsat 2',
13     435 => 'Polsat Cafe',
14     224 => 'Polsat Sport',
15     17 => 'TVN',
16     238 => 'TVN 7',
17     151 => 'TVN 24',
18     375 => 'TVN Style',
19     265 => 'TVN Turbo',
20     18 => 'TV 4',
21     235 => 'TV Puls',
22     16 => 'Tele 5',
23     355 => 'Animal Planet',
24     15 => 'Planete',
25     360 => 'National Geographic',
26     67 => 'Discovery',
27     356 => 'Discovery Science',
28     186 => 'Discovery World',
29     14 => 'HBO',
30     201 => 'HBO 2',
31     421 => 'HBO Comedy',
32     13 => 'CANAL+',
33     179 => 'CANAL+ Film',
34     183 => 'CANAL+ Sport',
35     437 => 'Cinemax',
36     442 => 'Cinemax 2',
37     436 => 'FilmBox',
38     433 => 'FilmBox Extra',
39     174 => 'AXN',
40     418 => 'AXN Crime',
41     416 => 'AXN Sci-fi',
42     85 => 'Ale Kino!',
43     205 => 'Kino Polska',
44     403 => 'TCM',
45     400 => 'Comedy Central',
46     42 => 'Eurosport',
47     364 => 'Eurosport 2',
48     420 => 'BBC Entertainment',
49     448 => 'BBC Knowledge',
50     415 => 'BBC Lifestyle',
51     71 => 'Zone Club',
52     78 => 'Zone Romantica',
53     267 => 'Zone Europa',
54     84 => 'Zone Reality',
55     434 => 'Religia TV',
56     449 => 'BBC CBeebies',
57     74 => 'Jetix',
58     217 => 'ZigZap',
59     361 => 'Cartoon Network',
60 );
3f9e0f 61 $NUMOF = count($stations);
8bd4d9 62
JK 63 $c = curl_init();
64 $out = fopen('./xmltv-pre.xml', 'w');
65 fwrite($out, '<?xml version="1.0" encoding="UTF-8" ?>
66 <tv date="'.date('YmdHis O').'" generator-info-name="BotGG" generator-info-url="http://jacekk.info/botgg">
67 ');
8091b1 68 $address = 'http://tv.wp.pl/program.html?stid=$STATION';
JK 69 $date = date('Y-m-d');
8bd4d9 70
JK 71 $counter = 0;
72 foreach($stations as $num => $station) {
8091b1 73     echo "\r".STAR.'Pobieranie programu TV: '.floor($counter/$NUMOF*100).'%';
JK 74     
75     if(!file_exists('./cache/'.$num.'_'.$date) || filesize('./cache/'.$num.'_'.$date)==0) {
76         curl_setopt($c, CURLOPT_URL, str_replace(array('$DATE', '$STATION'), array($date, $num), $address));
77         curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
78         curl_setopt($c, CURLOPT_FOLLOWLOCATION, TRUE);
79         curl_setopt($c, CURLOPT_MAXREDIRS, 5);
80         curl_setopt($c, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl-PL; rv:1.9.2) Gecko/20100101 Firefox/3.6'));
81         curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE);
82         $data = curl_exec($c);
83         if(!$data) {
84             echo FAIL;
85             return;
8bd4d9 86         }
JK 87         
8091b1 88         file_put_contents('./cache/'.$num.'_'.$date, $data);
JK 89         unset($data);
8bd4d9 90     }
JK 91     
8091b1 92     $doc = new DOMDocument;
JK 93     @$doc->loadHTMLFile('./cache/'.$num.'_'.$date);
94     
95     $wp = new wp_parse($doc);
96     $wp->xmltv($station, $out);
97     
8bd4d9 98     $counter++;
JK 99 }
100
101 fwrite($out, '</tv>');
102 fclose($out);
103
104 rename('./xmltv-pre.xml', './xmltv-utf.xml');
105
106 echo "\r".STAR.'Pobieranie programu TV: 100%'.OK;
107
108 echo STAR.'Czyszczenie cache...';
109 $today = strtotime('today');
110 foreach(glob('./cache/*') as $garbage) {
111     $date = substr($garbage, -10);
112     if(strtotime($date) < $today) {
113         unlink($garbage);
114     }
115 }
116 echo OK;
117 ?>