# -*- coding: UTF-8 -*- import urllib2, re CHANNELS_ITEMS = [ ('Markíza', 17), ('JOJ', 20), ('Doma', 120), ('STV1', 18), ('STV2', 19), ('ČT1', 15), ('ČT2', 24), ('Disney Channel', 72), ('Nova', 22), ('Prima', 23), #('Eurosport', 25) ] CHANNELS = dict(CHANNELS_ITEMS) URL = 'http://iptv2.antik.sk/epg/archiv_epg_under_screen/date/%d/channel/%d' FTP_URL = 'ftp://10.254.9.2/%d.ts' reg_download = re.compile( r'''onclick="window.open.'/tvarchiv/download.id=([0-9]+)','download'.''' ) reg_time = re.compile(r"""^ * (..:..|.:..) *[\r\n]*$""") reg_name = re.compile(r"""^ +([^<>]+) +[\r\n]*$""") def parse_file(fd): row = [] for line in fd.readlines(): r_download = reg_download.search(line) if r_download: #print r_download.group(1), row.append(int(r_download.group(1))) r_time = reg_time.search(line) if r_time: #print "%5s" % r_time.group(1), row.append("%5s" % r_time.group(1)) continue r_name = reg_name.search(line) if r_name and r_name.group(1).strip(): #print r_name.group(1).replace(' ', ' ') row.append(r_name.group(1).replace(' ', ' ').strip()) if len(row)==1: yield ['PLAY', row[0]] else: yield row row = [] def parse_prog(prog=None, date=None): if not prog: return [['PROG', 'Vyber program']] + CHANNELS_ITEMS if not date: return [['DATE', 'Vyber datum']] + [[1204844400, 'NIE DNES']] #print URL % (date, CHANNELS[prog]) return list(parse_file( urllib2.urlopen(URL % (date, CHANNELS[prog])) )) if __name__ == '__main__': print parse_prog('JOJ', 1204844400)