diff --git a/epg2xml.php b/epg2xml.php
deleted file mode 100644
index 866d7e5..0000000
--- a/epg2xml.php
+++ /dev/null
@@ -1,565 +0,0 @@
-#!/usr/bin/env php
-getMessage());
- exit;
- }
- endif;
- }
- catch(Exception $e) {
- printError($e->getMessage());
- exit;
- }
-
- printf("\n");
- printf("\n\n");
-
- printf("\n", VERSION);
-
- foreach ($Channeldatas as $Channeldata) : #Get Channel & Print Channel info
- if($Channeldata['Enabled'] == 1) :
- $ChannelId = $Channeldata['Id'];
- $ChannelName = $Channeldata['Name'];
- $ChannelSource = $Channeldata['Source'];
- $ChannelServiceId = $Channeldata['ServiceId'];
- $ChannelISPName = "[".$Channeldata[$MyISP.'Ch']."]".$Channeldata[$MyISP." Name"];
- $ChannelIconUrl = $Channeldata['Icon_url'];
-
- if($Channeldata[$MyISP.'Ch'] != Null):
- $ChannelInfos[] = array($ChannelId, $ChannelName, $ChannelSource, $ChannelServiceId);
- printf(" \n", $ChannelId);
- printf(" %s\n", $ChannelName);
- printf(" %s\n", $ChannelISPName);
- if($IconUrl) :
- printf(" \n", $IconUrl, $ChannelId);
- else :
- printf(" \n", $ChannelIconUrl);
- endif;
- printf(" \n");
- endif;
- endif;
- endforeach;
-
- # Print Program Information
- foreach ($ChannelInfos as $ChannelInfo) :
- $ChannelId = $ChannelInfo[0];
- $ChannelName = $ChannelInfo[1];
- $ChannelSource = $ChannelInfo[2];
- $ChannelServiceId = $ChannelInfo[3];
- if($GLOBALS['debug']) printLog($ChannelName.' 채널 EPG 데이터를 가져오고 있습니다');
- if($ChannelSource == 'EPG') :
- GetEPGFromEPG($ChannelInfo);
- elseif($ChannelSource == 'KT') :
- GetEPGFromKT($ChannelInfo);
- elseif($ChannelSource == 'LG') :
- GetEPGFromLG($ChannelInfo);
- elseif($ChannelSource == 'SK') :
- GetEPGFromSK($ChannelInfo);
- elseif($ChannelSource == 'SKY') :
- GetEPGFromSKY(ChannelInfo);
- elseif($ChannelSource == 'NAVER') :
- GetEPGFromNaver(ChannelInfo);
- endif;
- endforeach;
- print("\n");
-}
-function GetEPGFromEPG($ChannelInfo) {
- $ChannelId = $ChannelInfo[0];
- $ChannelName = $ChannelInfo[1];
- $ServiceId = $ChannelInfo[3];
- $epginfo = array();
- $options = array(
- 'http' => array(
- 'method' => 'GET',
- 'user-agent' => $GLOBALS['ua']
- ));
- $context = stream_context_create($options);
-
- foreach(range(1, $GLOBALS['period']) as $k) :
- $url = "http://www.epg.co.kr/epg-cgi/extern/cnm_guide_type_v070530.cgi";
- $day = date("Ymd", strtotime("+".($k - 1)." days"));
- $params = array(
- 'beforegroup' => '100',
- 'checkchannel' => $ServiceId,
- 'select_group' => '100',
- 'start_date' => $day
- );
-
- $params = http_build_query($params);
- $url = $url."?".$params;
- try {
- $response = @file_get_contents($url, False, $context);
- if ($response === False) :
- throw new Exception ($ChannelName.HTTP_ERROR);
- else :
- $response = str_replace("charset=euc-kr", "charset=utf-8", $response);
- $dom = new DomDocument;
- libxml_use_internal_errors(true);
- $dom->loadHTML(mb_convert_encoding($response, 'UTF-8', 'EUC-KR'));
- $xpath = new DomXPath($dom);
- for($i = 2; $i < 5; $i++) :
- $thisday = $day;
- $query = "//table[contains(@style,'margin-bottom:30')][".$i."]//td[contains(@colspan,'2')]/following::td[1]/table[1]//td[2]";
- $programs = $xpath->query($query);
- foreach($programs as $program) :
- $hour = $xpath->query("parent::*/parent::*/parent::*/parent::*/td[1]", $program)->item(0);
- $hour = str_replace("시", "", trim($hour->nodeValue));
- $minute = $xpath->query("preceding-sibling::td[1]", $program)->item(0);
- $hour = $hour.":".str_replace(array("[", "]"), array("",""), trim($minute->nodeValue));
- switch ($i) :
- case 2 :
- $hour = $hour." AM";
- break;
- case 3 :
- $hour = $hour." PM";
- break;
- case 4 :
- if($hour > 5 ) :
- $hour = $hour." PM";
- else :
- $hour = $hour." AM";
- $thisday = date("Ymd", strtotime("+1 days"));
- endif;
- break;
- endswitch;
- $startTime = date("YmdHis", strtotime($thisday." ".$hour));
- preg_match('/
?(.*)?(.*?)\s*(<(.*)>)?\s*(\(재\))?\s*(\(([\d,]+)회\))?()?\s*<\/td>/', trim($dom->saveHTML($program)), $matches);
- //var_dump($matches);
- if ($matches != NULL) :
- $image = $matches[8] ? $matches[8] : "";
- preg_match('/.*schedule_([\d,]+)?.*/', $image, $grade);
- if($grade != NULL) :
- $rating = $grade[1];
- else :
- $rating = 0;
- endif;
- endif;
- #programName, startTime, rating, subprogramName, rebroadcast, episode
- $epginfo[] = array(trim($matches[2]), $startTime, $rating, trim($matches[4]), $matches[5], $matches[7]);
- endforeach;
- endfor;
- $zipped = array_slice(array_map(NULL, $epginfo, array_slice($epginfo,1)),0,-1);
- foreach($zipped as $epg) :
- $programName = $epg[0][0] ?: "";
- $subprogramName = $epg[0][3] ?: "";
- $startTime = $epg[0][1] ?: "";
- $endTime = $epg[1][1] ?: "";
- $desc = "";
- $actors = "";
- $producers = "";
- $category = "";
- $rebroadcast = $epg[0][4] ? True : False;
- $episode = $epg[0][5] ?: "";
- $rating = $epg[0][2] ?: 0;
- $programdata = array(
- 'channelId'=> $ChannelId,
- 'startTime' => $startTime,
- 'endTime' => $endTime,
- 'programName' => $programName,
- 'subprogramName'=> $subprogramName,
- 'desc' => $desc,
- 'actors' => $actors,
- 'producers' => $producers,
- 'category' => $category,
- 'episode' => $episode,
- 'rebroadcast' => $rebroadcast,
- 'rating' => $rating
- );
- writeProgram($programdata);
- endforeach;
- endif;
- } catch (Exception $e) {
- printError($e->getMessage());
- }
- endforeach;
-}
-function GetEPGFromKT($ChannelInfo) {
- $ChannelId = $ChannelInfo[0];
- $ChannelName = $ChannelInfo[1];
- $ServiceId = $ChannelInfo[3];
- $epginfo = array();
- $options = array(
- 'http' => array(
- 'method' => 'GET',
- 'user-agent' => $GLOBALS['ua']
- ));
- $context = stream_context_create($options);
-}
-function GetEPGFromLG($ChannelInfo) {
-}
-
-function GetEPGFromSK($ChannelInfo) {
- $ChannelId = $ChannelInfo[0];
- $ChannelName = $ChannelInfo[1];
- $ServiceId = $ChannelInfo[3];
- $today = date("Ymd");
- $lastday = date("Ymd", strtotime("+".($GLOBALS['period'] - 1)." days"));
- $options = array(
- 'http' => array(
- 'method' => 'GET',
- 'user-agent' => $GLOBALS['ua']
- ));
- $context = stream_context_create($options);
- $url = "http://m.btvplus.co.kr/Common/Inc/IFGetData.asp";
- $params = array(
- 'variable' => 'IF_LIVECHART_DETAIL',
- 'pcode' => '|^|start_time='.$today.'00|^|end_time='.$lastday.'24|^|svc_id='.$ServiceId
- );
- $params = http_build_query($params);
- $url = $url."?".$params;
- try {
- $response = @file_get_contents($url, False, $context);
- if ($response === False) :
- throw new Exception ($ChannelName.HTTP_ERROR);
- else :
- try {
- $data = json_decode($response, TRUE);
- if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR);
- if($data['channel'] == NULL) :
- printError($ChannelName.CHANNEL_ERROR);
- else :
- $programs = $data['channel']['programs'];
- foreach ($programs as $program) :
- $programName = "";
- $subprogramName = "";
- $episode = "";
- $rebroadcast = False;
- preg_match('/^(.*?)(?:\s*[\(<]([\d,회]+)[\)>])?(?:\s*<([^<]*?)>)?(\((재)\))?$/', str_replace('...', '>', $program['programName']), $matches);
- if ($matches != NULL) :
- $programName = trim($matches[1]) ?: "";
- $subprogramName = trim($matches[3]) ?: "";
- $episode = str_replace("회", "", $matches[2]) ?: "";
- $rebroadcast = $matches[5] ? True : False;
- endif;
- $startTime = date("YmdHis",$program['startTime']/1000);
- $endTime = date("YmdHis",$program['endTime']/1000);
- if ($GLOBALS['verbose'] == 'y') :
- $desc = $program['synopsis'] ?: "";
- $actors =trim(str_replace('...','',$program['actorName']), ', ') ?: "";//.replace('...','').strip(', ') if program['actorName'] else ''
- $producers = trim(str_replace('...','',$program['directorName']), ', ') ?: "";// if program['directorName'] else ''
- else :
- $desc = "";
- $actors = "";
- $producers = "";
- endif;
- if ($program['mainGenreName'] != NULL) :
- $category = $program['mainGenreName'];
- else:
- $category = '';
- endif;
- $rating = $program['ratingCd'] ?: 0;
- $programdata = array(
- 'channelId'=> $ChannelId,
- 'startTime' => $startTime,
- 'endTime' => $endTime,
- 'programName' => $programName,
- 'subprogramName'=> $subprogramName,
- 'desc' => $desc,
- 'actors' => $actors,
- 'producers' => $producers,
- 'category' => $category,
- 'episode' => $episode,
- 'rebroadcast' => $rebroadcast,
- 'rating' => $rating
- );
- writeProgram($programdata);
- endforeach;
- endif;
- }
- catch(Exception $e) {
- printError($e->getMessage());
- }
- endif;
- } catch (Exception $e) {
- printError($e->getMessage());
- }
-}
-function GetEPGFromSKY($ChannelInfo) {
-}
-function GetEPGFromNaver($ChannelInfo) {
-}
-function writeProgram($programdata) {
- $ChannelId = $programdata['channelId'];
- $startTime = $programdata['startTime'];
- $endTime = $programdata['endTime'];
- $programName = $programdata['programName'];
- $subprogramName = $programdata['subprogramName'];
- $actors = $programdata['actors'];
- $producers = $programdata['producers'];
- $category = $programdata['category'];
- $episode = $programdata['episode'];
- $rebroadcast = $programdata['rebroadcast'];
- if($GLOBALS['addepisode'] == 'y') $programName = $programName." (".$episode."회)";
- if($rebroadcast == True && $GLOBALS['addrebroadcast'] == 'y') $programName = $programName." (재)";
- if($programdata['rating'] == 0) :
- $rating = "전체 관람가";
- else :
- $rating = sprintf("%s세 이상 관람가", $programdata['rating']);
- endif;
- if($GLOBALS['verbose'] == 'y') :
- $desc = $programdata['programName'];
- if($subprogramName) $desc = $desc."\n부제 : ".$subprogramName;
- if($episode) $desc = $desc."\n회차 : (".$episode."회)";
- if($category) $desc = $desc."\n장르 : ".$category;
- if($actors) $desc = $desc."\n출연 : ".$actors;
- if($producers) $desc = $desc."\n제작 : ".$producers;
- $desc = $desc."\n등급 : ".$rating;
- else:
- $desc = "";
- endif;
- if($programdata['desc']) $desc = $desc."\n".$programdata['desc'];
- $contentTypeDict = array(
- '교양' => 'Arts / Culture (without music)',
- '만화' => 'Cartoons / Puppets',
- '교육' => 'Education / Science / Factual topics',
- '취미' => 'Leisure hobbies',
- '드라마' => 'Movie / Drama',
- '영화' => 'Movie / Drama',
- '음악' => 'Music / Ballet / Dance',
- '뉴스' => 'News / Current affairs',
- '다큐' => 'Documentary',
- '시사/다큐' => 'Documentary',
- '연예' => 'Show / Game show',
- '스포츠' => 'Sports',
- '홈쇼핑' => 'Advertisement / Shopping'
- );
- $contentType = "";
- foreach($contentTypeDict as $key => $value) :
- if(!(strpos($category, $key) === false)) :
- $contentType = $value;
- endif;
- endforeach;
- printf(" \n", $startTime, $endTime, $ChannelId);
- printf(" %s\n", $programName);
- if($subprogramName) :
- printf(" %s\n", $subprogramName);
- endif;
- if($GLOBALS['verbose']=='y') :
- printf(" %s\n", $desc);
- if($actors || $producers):
- printf(" \n");
- if($actors) :
- foreach(split(',', $actors) as $actor):
- if($actor) printf(" %s\n", $actor);
- endforeach;
- endif;
- if($producers) :
- foreach(split(',', $producers) as $producer):
- if($producer) printf(" %s\n", $producer);
- endforeach;
- endif;
- printf(" \n");
- endif;
- endif;
- if($category) printf(" %s\n", $category);
- if($contentType) printf(" %s\n", $contentType);
- if($episode) printf(" %s\n", $episode);
- if($rebroadcast) printf(" \n");
- if($rating) :
- printf(" \n");
- printf(" %s\n", $rating);
- printf(" \n");
- endif;
- printf(" \n");
-}
-function printLog($args) {
- fwrite(STDERR, $args."\n");
-}
-function printError($args) {
- fwrite(STDERR, "Error : ".$args."\n");
-}
-set_error_handler (function ($errno, $errstr, $errfile, $errline) {
- throw new ErrorException ($errstr, 0, $errno, $errfile, $errline);
-});
-?>
|