示例#1
0
def get_schedule(channel, tz):
    chan = _channels.get(channel)
    if chan is None:
        return []

    global _url
    _url = _URL.format(chan)

    today = dateutil.tv_date_now(_source_tz, 0)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        param = {'date': d.strftime('%Y-%m-%d')}
        for event in _fetch(_SCHED_URL, param)[1:]:
            it = event.iterchildren()
            next(it)
            sched.set_time(next(it)[0].text)
            title = next(it)
            if len(title) == 0:
                sched.set_title(title.text.strip())
            else:
                a = title[0]
                if a.tag != 'a':  # now
                    sched.set_title(title[1][0].text_content())
                else:
                    sched.set_title(a.text)
                    sched.set_descr(descriptions.get(a))
        d += _daydelta
    return sched.pop()
示例#2
0
def get_schedule(channel, tz):
    if channel != 'Пятый канал':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        param = {'date': d.strftime('%Y-%m-%d')}
        for li in _fetch(_URL, param)[3][0]:
            sched.set_time(li[0].text)
            a = li[1]
            if a.tag == 'a':
                sched.set_title(a.text)
                descr = descriptions.get(a)
                if descr:
                    sched.set_descr(descr)
            elif len(a) == 0:
                sched.set_title(a.text)
            else:
                sched.set_title(a[0].text)
        d += _daydelta
    return sched.pop()
示例#3
0
def get_schedule(channel, tz):
    ch_code = channel_code.get(channel)
    if ch_code is None:
        return []

    event_info = _EventInfo()

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    params = {'id': ch_code}

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        params['day'] = d.strftime('%d.%m.%Y')
        item = _fetch(_CHAN_URL, params)
        try:
            tvguide = next(x for x in item if x.get('id') == 'tvguide')
        except StopIteration:
            pass
        else:
            for col in range(2):
                _get_column(tvguide[0], sched, event_info, col)
        d += _daydelta
    return sched.pop()
示例#4
0
def get_schedule(channel, tz):
    global _URL

    _URL, source_tz = _channels.get(channel) or (None, None)
    if _URL is None:
        return []

    descriptions = _Descriptions()

    today = dateutil.tv_date_now(source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        content = _fetch(d.strftime(_PROG_URL))
        tvp_day = next(itertools.islice(content.iterchildren('div'), 1, 2))
        for li in tvp_day[0][1][0]:
            try:
                a = next(li[1].iter('a'))
                t = li[0]
                time = t.text if len(t) == 0 else t[0].text
                sched.set_time(time)
                sched.set_title(a[0].text.lstrip())
                descr = descriptions.get(a)
                if descr:
                    sched.set_descr(descr)
            except StopIteration:
                pass
        d += _daydelta
    return sched.pop()
示例#5
0
def get_schedule(channel, tz):
    if channel != 'Украина':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()
    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        for li in _fetch(d.strftime(_URL))[0][1]:
            info = li[2]
            it = info.iterchildren()
            time = next(it).text
            sched.set_time(time)
            name = next(it)
            if len(name) == 0:
                sched.set_title(name.text)
            else:
                a = name[0]
                sched.set_title(a.text)
                zoo = info.getnext()[0][1]
                descr = descriptions.get(a)
                if not descr:
                    zoo = info.getnext()[0][1]
                    if len(zoo) > 0:
                        descr = zoo[0].text
                sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#6
0
def get_schedule(channel, tz):
    if channel != 'Ностальгия':
        return []

    sched = schedule.Schedule(tz, _source_tz)

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    rex = re.compile('([0-9]+\+ )?([^\.«»]*(?:«.+»)?[^\.«»]*\.?)(.*)')

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        resp = requests.get(_URL, {'day': d.strftime('%Y-%m-%d')})
        doc = lxml.etree.fromstring(resp.content, _parser)
        table = doc[1][2][0][0][11][6]
        for row in table:
            sched.set_time(row[0][0][0].text)
            m = rex.match(row[1].text)
            age, title, descr = m.groups()
            sched.set_title(title)
            sched.set_descr((age or '') + descr)
        d += _daydelta
    return sched.pop()
示例#7
0
def get_schedule(channel, tz):
    if channel != 'ТВ3':
        return []

    sched = schedule.Schedule(tz, _source_tz)

    today = dateutil.tv_date_now(_source_tz)
    data = {'action': 'get_shedule_list', 'dey': today.strftime('%Y-%m-%d')}

    resp = requests.post(_URL, data)
    days = resp.json()
    for day in days:
        for ev in days[day]:
            dt_str = ev['broadcast_time']
            dt = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
            sched.set_datetime(dt)
            sched.set_title(ev['long_name'])

            descr = ''
            for name in _fields:
                field = ev[name]
                if field:
                    descr += _fields[name] + field + '\n'
                if descr:
                    sched.set_descr(descr)
    return sched.pop()
示例#8
0
def get_schedule(channel, tz):
    if channel != 'НТВ':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        tbs = _fetch(_SCHED_URL, {'d': d.strftime('%Y%m%d')})
        for dt in tbs[1][::2]:
            dd = dt.getnext()
            if len(dt) > 0:
                dt = dt[0]
            if dd[0].tag == 's':
                dd = dd[0]
            sched.set_time(dt.text)
            a = dd[0]
            sched.set_title(a.text)
            sched.set_descr(descriptions.get(a))
        d += _daydelta
    return sched.pop()
示例#9
0
def get_schedule(channel, tz):
    if channel != 'Интер':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        dl = _fetch(d.strftime(_SCHED_URL))[1][0][4]
        for dt in (x for x in dl[1:] if x.tag == 'dt'):
            sched.set_time(dt.text)
            dd = dt.getnext()
            if len(dd) == 0:
                sched.set_title(dd.text)
            else:
                a = dd[-1]
                if a.tag == 'a':
                    sched.set_title(a.text)
                    sched.set_descr(descriptions.get(a))
                else:
                    sched.set_title(a.tail)
        d += _daydelta
    return sched.pop()
示例#10
0
def get_schedule(channel, tz):
    if channel != 'Ю':
        return []

    today = dateutil.tv_date_now(_source_tz, 5)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        param = {'date': d.strftime('%Y-%m-%d')}
        resp = requests.get(_URL, param)
        doc = lxml.etree.fromstring(resp.content, _parser)
        wrapper = doc[1][5][0][0][0][13]
        if wrapper.tag != 'div':
            wrapper = wrapper.getnext()
        for event in wrapper[0][0][0][0][1][1]:
            it = event.iterchildren()
            sched.set_time(next(it).text)
            next(it)
            it = next(it).iterdescendants()
            next(it)
            sched.set_title(next(it).text)
            try:
                descr = next(it).text + ' ' + next(it).text
                sched.set_descr(descr)
            except StopIteration:
                pass
        d += _daydelta
    return sched.pop()
示例#11
0
def get_schedule(channel, tz):
    ch_code = channel_code.get(channel)
    if ch_code is None:
        return []

    url = _URL + ch_code + '/'
    today = dateutil.tv_date_now(_source_tz, 0)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(0, 7 - weekday_now):
        sched.set_date(d)
        resp = requests.get(url + str(i) + '/')
        doc = lxml.html.fromstring(resp.content)
        page_channel = doc[1][7][2][0][0][2][0][0][0][0][1][0]
        row = page_channel[0][0][0][1][0][0][2]
        if len(row) > 0:
            for event in (x for x in row[0] if x.get('id') == 'programrow'):
                it = event.iterchildren()
                sched.set_time(next(it).text)
                div = next(it)
                title = next(div.iterchildren('a')).text_content()
                sched.set_title(title.split(' (')[0])
                sched.set_descr(div[0].get('value').split(';;')[1])
        d += _daydelta
    return sched.pop()
示例#12
0
def get_schedule(channel, tz):
    global _URL

    _URL = _url_map.get(channel)
    if _URL is None:
        return []

    today = dateutil.tv_date_now(_source_tz, 5)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        chan = _fetch(d.strftime(_PROG_URL))
        ul = chan[2][0][0][0][0][0][1][1]
        for li in (x for x in ul if len(x) > 0):
            div = li[0]
            sched.set_time(div[0].text)
            title = div[1]
            if len(title) == 0:
                sched.set_title(title.text.lstrip())
            else:
                a = title[0]
                sched.set_title(a.text)
                descr = descriptions.get(a)
                sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#13
0
def get_schedule(channel, tz):
    if channel != 'Disney Channel':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        param = {'date': d.strftime('%d-%m-%Y')}
        sch = requests.get(_URL, param).json()
        programs = sch['programs']
        for event in sch['seances']:
            sched.set_time(event['time'])
            try:
                program = programs[str(event['programId'])]
            except KeyError:
                sched.set_title(event['title'])
            else:
                sched.set_title(program['title'])
                descr = lxml.html.fromstring(program['description'])
                sched.set_descr(descr.text_content())
        d += _daydelta
    return sched.pop()
示例#14
0
def get_schedule(channel, tz):
    chan = _channels.get(channel)
    if chan is None:
        return []

    descriptions = _Descriptions()

    params = {'channel': chan, 'type': 'week'}
    today = dateutil.tv_date_now(_source_tz)

    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        params['year'], params['week'], params['dayOfWeek'] = d.isocalendar()
        list = _fetch(_sched_url, params)['list']
        doc = lxml.etree.fromstring(list, _parser)
        for li in doc[0][0][0]:
            sched.set_time(li[0].text)
            a = li[1]
            sched.set_title(a.text)
            sched.set_descr(descriptions.get(a))
        d += _daydelta
    return sched.pop()
示例#15
0
def get_schedule(channel, tz):
    if channel != 'Перший Національний / Ера':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.isoweekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 8):
        sched.set_date(d)
        doc = _fetch(_SCHED_URL.format(i))
        divs = doc[0][0][2][0].iterchildren('div')
        for time in itertools.islice(divs, 0, None, 3):
            sched.set_time(time.text)
            span = next(x for x in time.getnext() if x.get('class') is None)
            if len(span) < 1:
                sched.set_title(span.text)
            else:
                a = span[0]
                sched.set_title(a.text)
                descr = descriptions.get(a)
                if descr:
                    sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#16
0
def get_schedule(channel, tz):
    ch_code = channel_code.get(channel)
    if ch_code is None:
        return []

    today = dateutil.tv_date_now(tz)
    weekday_now = today.weekday()

    sched = schedule.Schedule(tz, tz)
    event_info = _EventInfo()
    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        url = '/87/channels/' + ch_code
        content = _fetch(url, {'date': d.strftime('%Y-%m-%d')})
        if content is not None:
            items = content[2][0][0][0][0][0][0]
            if items.get('class') != 'tv-splash':
                for item in items:
                    a = item[0]
                    sched.set_time(a[0].text)
                    title, descr = event_info.get(a)
                    sched.set_title(title)
                    if descr:
                        sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#17
0
def get_schedule(channel, tz):
    ch_code = channel_code.get(channel)
    if ch_code is None:
        return []

    today = dateutil.tv_date_now(tz)
    weekday_now = today.weekday()

    sched = schedule.Schedule(tz, tz)
    event_info = _EventInfo()
    _chan_params['sch:channel'] = ch_code
    d = today
    for i in range(weekday_now, 7):
        _chan_params['sch.date'] = d.strftime('%Y-%m-%d')
        chan_type = _fetch(_URL, _chan_params)['channel_type']
        sch = next(iter((chan_type.values())))[0]['schedule']
        for event in sch:
            fmt = '%Y-%m-%d %H:%M:%S'
            dt = datetime.datetime.strptime(event['start'], fmt)
            sched.set_datetime(dt)
            title, descr = event_info.get(event)
            sched.set_title(title)
            sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#18
0
def get_schedule(channel, tz):
    if channel != 'Русский иллюзион':
        return []

    descriptions = _Descriptions()

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    url = urllib.parse.urljoin(_URL, _SCHED_URL)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        data = {'d': d.strftime("%Y%m%d")}
        resp = requests.post(url, data)
        doc = lxml.etree.fromstring(resp.content, _parser)
        for row in doc[0][1]:
            sched.set_time(row[0].text)
            sched.set_title(row[1][0].text)
            descr = descriptions.get(row[2][0][0][0][0])
            sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#19
0
def get_schedule(channel, tz):
    if channel != 'ТВ Центр':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        for li in _fetch(d.strftime(_SCHED_URL))[0][12]:
            a = li[0]
            t = next(x for x in a.iterchildren('div')
                     if x.get('class') == 'b-schedule__item__title')
            i = a.index(t)
            sched.set_time(a[i + 2].text)
            sched.set_title(t[0].text)
            ds = a[i + 1].text
            descr = (ds + '\n' if ds else '') + (descriptions.get(a) or '')
            if descr:
                sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#20
0
def get_schedule(channel, tz):
    if channel != 'Піксель':
        return []

    today = dateutil.tv_date_now(_source_tz)

    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    event_info = _EventInfo()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        url = _URL.format(_weekday[i])
        for li in _fetch(url)[3][0][1:]:
            sched.set_time(li[0].text)
            t = li[1]
            if len(t) == 0:
                title = t.text.strip()
                descr = None
            else:
                title, descr = event_info.get(t[0])
            sched.set_title(title)
            if descr:
                sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#21
0
def get_schedule(channel, tz):
    if channel != 'Universal Channel':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)

        url = d.strftime(_URL)
        resp = requests.get(url)
        doc = lxml.etree.fromstring(resp.content, _parser)
        inner = doc[2][7][0][0][2][0][0][0][0][0][1][0]

        for event in (x for x in inner[2:] if len(x) > 1):
            sched.set_time(event[0].text)
            info = event[1]
            title = info[0]
            sched.set_title(title.text or title[0].text)
            descr = ' '.join(info[1].text.split())
            descr = descr + '\n' if descr else ''
            sched.set_descr(descr + info[2][0].text.strip())
        d += _daydelta
    return sched.pop()
示例#22
0
def get_schedule(channel, tz):
    if channel != '1+1':
        return []
    descriptions = _Descriptions()

    sched = schedule.Schedule(tz, _source_tz)

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        for li in _fetch(d.strftime(_SCHED_URL))[0][3]:
            short = li[0]
            sched.set_time(short[0].text)
            title = short[1]
            if len(title) == 0:
                sched.set_title(title.text)
            else:
                a = title[0]
                sched.set_title(a.text)
                descr = descriptions.get(a) or li[1][1][0].tail
                sched.set_descr(descr)

        d += _daydelta
    return sched.pop()
示例#23
0
def get_schedule(channel, tz):
    ch_code = channel_code.get(channel)
    if ch_code is None:
        return []

    today = dateutil.tv_date_now(_source_tz, 5)
    weekday_now = today.weekday()

    sched = schedule.Schedule(tz, _source_tz)
    d = today

    for i in range(weekday_now, 7):
        sched.set_date(d)
        param = {'date': d.strftime('%Y-%m-%d')}
        tv_common = _fetch(ch_code + '.html', param)
        if tv_common is None:
            break

        program = tv_common[1]

        for row in program.find('table'):  # tv-channel-full
            sched.set_time(row[0][0].text)
            cell = row[1]
            sched.set_title(cell[0].text)
            descr = cell[1].text
            if descr is not None:
                sched.set_descr(descr)

        d += _daydelta

    return sched.pop()
示例#24
0
def get_schedule(channel, tz):
    if channel != 'Бокс ТВ':
        return []

    today = dateutil.tv_date_now(_source_tz, 0)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        url = d.strftime(_URL)
        resp = requests.get(url)
        doc = lxml.etree.fromstring(resp.content, _parser)
        rasp = doc[1][1][2][0][4]
        for event in rasp:
            it = event.iterchildren()
            time = next(it)[0].text
            sched.set_time(time)
            it = next(it)[0].iterchildren()
            title = next(it).text
            sched.set_title(title)
            descr = next(it).text
            sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#25
0
def get_schedule(channel, tz):
    if channel != 'Карусель':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        url = d.strftime(_SCHED_URL)
        grid = _fetch(url)[0][0][1][6]
        for li in (x for x in grid[1:] if len(x) > 0):
            span = li[0][0][0][0]
            sched.set_time(span.text)
            a = span.getnext()
            if a.tag != 'a':
                sched.set_title(a.text)
                sched.set_descr(a.getnext().text)
            elif len(a) < 2:
                sched.set_title(a[-1].text)
            else:
                sched.set_title(a[-2].text)
                descr = (a[-1].text or '') + '\n' + descriptions.get(a)
                sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#26
0
def get_schedule(channel, tz):
    ch_code = channel_code.get(channel)
    if ch_code is None:
        return []

    today = dateutil.tv_date_now(_source_tz, 5)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)
    descriptions = _Descriptions()
    sched_url = _SCHED_URL.format(ch_code)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        url = d.strftime(sched_url)
        famediv = _fetch(url).get_element_by_id('famediv')
        table = next(itertools.islice(famediv.itersiblings(), 2, None))

        for row in (x[0][0][0] for x in table[1:]):
            it = row.iterchildren()
            sched.set_time(next(it).text)
            a = next(it)[0]
            sched.set_title(a.text)
            descr = descriptions.get(a)
            if descr:
                sched.set_descr(descr)
        d += _daydelta
    return sched.pop()
示例#27
0
def get_schedule(channel, tz):
    if channel != 'Моя планета':
        return []

    today = dateutil.tv_date_now(_source_tz, 0)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        for ev in _fetch(d.strftime(_URL))[1:]:
            sched.set_time(ev[0].text)
            sched.set_title(ev[1][0].text)
            sched.set_descr(ev[3].text)
        d += _daydelta
    return sched.pop()
示例#28
0
def get_schedule(channel, tz):
    if channel != 'Че':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        url = _URL + _weekday[i] + d.strftime('_%d_%m_%y/')

        r = requests.get(url, verify=False)
        doc = lxml.etree.fromstring(r.content, parser=_parser)
        items = doc[1][2][1][0][2][0][1][0][1][0][2]

        for right in (x[-1] for x in items):
            it = right.iterchildren()
            name = next(it)
            itn = name.iterchildren()
            sched.set_time(next(itn)[0][0][0].text)
            sched.set_title(next(itn).text)

            descr = ''

            try:
                next(itn)
                descr += next(itn).text + '\n'
            except StopIteration:
                pass

            descr += next(it)[0].text

            try:
                descr += '\n' + next(it).text_content()
            except StopIteration:
                pass

            sched.set_descr(descr)

        d += _daydelta

    return sched.pop()
示例#29
0
def get_schedule(channel, tz):
    if channel != 'Мультимания':
        return []

    today = dateutil.tv_date_now(_source_tz)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        resp = requests.get(_URL, {'d': d.strftime('%Y-%m-%d')})
        doc = lxml.etree.fromstring(resp.content, _parser)
        guide = doc[2][2][2][1][0][1][1][0][0]
        for row in guide[::2]:
            it = row.iterchildren()
            sched.set_time(next(it).text)
            sched.set_title(next(it)[0].text)
            sched.set_descr(row.getnext()[-1][0].text)
        d += _daydelta
    return sched.pop()
示例#30
0
def get_schedule(channel, tz):
    if channel != 'РБК':
        return []

    today = dateutil.tv_date_now(_source_tz, 0)
    weekday_now = today.weekday()
    sched = schedule.Schedule(tz, _source_tz)

    d = today
    for i in range(weekday_now, 7):
        sched.set_date(d)
        for row in _fetch(d.strftime(_URL)):
            sched.set_time(row[0].text)
            ev = row[1]
            title = ev.text
            a = ev[0]
            if title is None:
                title = a.text
            sched.set_title(title)
        d += _daydelta
    return sched.pop()