HCN 함수 삭제(p3)

This commit is contained in:
wonipapa 2018-03-23 19:20:06 +09:00
parent 3eeca34c70
commit f118269651
3 changed files with 1 additions and 108 deletions

View File

@ -122,7 +122,7 @@ https://github.com/wonipapa/epg2xml/wiki/FAQ
- SKB 함수 수정
- SKB 함수 수정(p1)
- SKY 함수 수정(p2)
- HCN 함수 수정(p3)
- HCN 함수 삭제(p3)
### Version 1.2.4
- ISCS 함수 수정
- SKB 함수 수정(p1)

View File

@ -412,8 +412,6 @@ function getEPG() {
GetEPGFromNaver($ChannelInfo);
elseif($ChannelSource == 'ISCS') :
GetEPGFromIscs($ChannelInfo);
elseif($ChannelSource == 'HCN') :
GetEPGFromHcn($ChannelInfo);
elseif($ChannelSource == 'POOQ') :
GetEPGFromPooq($ChannelInfo);
elseif($ChannelSource == 'EVERYON') :
@ -1039,63 +1037,6 @@ function GetEPGFromIscs($ChannelInfo) {
if($epginfo) epgzip($epginfo);
}
// Get EPG data from Hcn
function GetEPGFromHcn($ChannelInfo) {
$ChannelId = $ChannelInfo[0];
$ChannelName = $ChannelInfo[1];
$ServiceId = $ChannelInfo[3];
$epginfo = array();
foreach(range(1, $GLOBALS['period']) as $k) :
$url = "http://m.hcn.co.kr/sch_ScheduleList.action";
$day = date("Y-m-d", strtotime("+".($k - 1)." days"));
$params = array(
'ch_id' => $ServiceId,
'onairdate' => $day,
'_' => _microtime()
);
$params = http_build_query($params);
$method = "GET";
try {
$response = getWeb($url, $params, $method);
if ($response === False && $GLOBALS['debug']) :
printError($ChannelName.HTTP_ERROR);
else :
$response = mb_convert_encoding($response, "HTML-ENTITIES", "UTF-8");
$dom = new DomDocument;
libxml_use_internal_errors(True);
if($dom->loadHTML($response)):
$xpath = new DomXPath($dom);
$query = "//li[@class!='noData']";
$rows = $xpath->query($query);
foreach($rows as $row) :
$startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = "";
$rebroadcast = False;
$rating = 0;
$startTime = trim($xpath->query("span[@class='progTime']", $row)->item(0)->nodeValue) ?: "";
$startTime = date("YmdHis", strtotime($day." ".$startTime));
$programName = trim($xpath->query("span[@class='progTitle']", $row)->item(0)->nodeValue) ?: "";
$images = $row->getElementsByTagName('img');
foreach($images as $image):
preg_match('/re\.png/', $image->getAttribute('src'), $rebroad);
if($rebroad != NULL) $rebroadcast = True;
preg_match('/.*plus([\d,]+)\.png/', $image->getAttribute('src'), $grade);
if($grade != NULL) $rating = $grade[1];
endforeach;
//ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating
$epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating);
usleep(1000);
endforeach;
else :
if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR);
endif;
endif;
} catch (Exception $e) {
if($GLOBALS['debug']) printError($e->getMessage());
}
endforeach;
if($epginfo) epgzip($epginfo);
}
// Get EPG data from POOQ
function GetEPGFromPooq($ChannelInfo) {
$ChannelId = $ChannelInfo[0];

View File

@ -132,8 +132,6 @@ def getEpg():
GetEPGFromNaver(ChannelInfo)
elif ChannelSource == 'ISCS':
GetEPGFromIscs(ChannelInfo)
elif ChannelSource == 'HCN':
GetEPGFromHcn(ChannelInfo)
elif ChannelSource == 'POOQ':
GetEPGFromPooq(ChannelInfo)
elif ChannelSource == 'EVERYON':
@ -579,52 +577,6 @@ def GetEPGFromIscs(ChannelInfo):
epginfo = epginfo2
epgzip(epginfo)
# Get EPG data from HCN
def GetEPGFromHcn(ChannelInfo):
ChannelId = ChannelInfo[0]
ChannelName = ChannelInfo[1]
ServiceId = ChannelInfo[3]
epginfo = []
url = 'http://m.hcn.co.kr/sch_ScheduleList.action'
for k in range(period):
day = today + datetime.timedelta(days=k)
params = {'ch_id': ServiceId, 'onairdate': day, '_': int(time.time()*1000)}
try:
response = requests.get(url, params=params, headers=ua, timeout=timeout)
response.raise_for_status()
html_data = response.content
data = html_data
strainer = SoupStrainer('li')
soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8')
html = soup.find_all('li') if soup.find_all('li') else ''
if(html) :
for row in html:
startTime = endTime = programName = subprogramName = desc = actors = producers = category = episode = ''
rebroadcast = False
rating = 0
if 'noData' in row['class']:
continue
startTime = str(day) + ' ' + row.find('span', {'class':'progTime'}).text.strip()
startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M')
startTime = startTime.strftime('%Y%m%d%H%M%S')
programName = row.find('span', {'class':'progTitle'}).text.decode('string_escape').strip()
for image in row.find_all('img', {'class':'vM'}, alt=True):
rebroad = re.match('(재방송)',image['alt'].decode('string_escape').strip())
if not (rebroad is None): rebroadcast = True
grade = re.match('([\d,]+)',image['alt'])
if not (grade is None): rating = int(grade.group(1))
#ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating
epginfo.append([ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating])
time.sleep(0.001)
except ValueError:
if(debug): printError(ChannelName + CONTENT_ERROR)
else: pass
except (requests.exceptions.RequestException) as e:
if(debug): printError(ChannelName + str(e))
else: pass
if(epginfo) :
epgzip(epginfo)
# Get EPG data from POOQ
def GetEPGFromPooq(ChannelInfo):
ChannelId = ChannelInfo[0]