Beispiel #1
0
 def root_menu(self, args):
     include_premium = adobe_activate_api.is_authenticated()
     channel_list = events.get_channel_list(include_premium)
     curdate = datetime.utcnow()
     upcoming = int(selfAddon.getSetting('upcoming')) + 1
     days = (curdate + timedelta(days=upcoming)).strftime("%Y%m%d")
     addDir(
         translation(30029),
         dict(ESPN_URL=events.get_live_events_url(channel_list),
              MODE=self.make_mode(LIVE_EVENTS_MODE)), defaultlive)
     addDir(
         translation(30030),
         dict(ESPN_URL=events.get_upcoming_events_url(channel_list) +
              '&endDate=' + days + '&startDate=' +
              curdate.strftime("%Y%m%d"),
              MODE=self.make_mode(LIST_SPORTS_MODE)), defaultupcoming)
     enddate = '&endDate=' + (curdate +
                              timedelta(days=1)).strftime("%Y%m%d")
     replays1 = [5, 10, 15, 20, 25]
     replays1 = replays1[int(selfAddon.getSetting('replays1'))]
     start1 = (curdate - timedelta(days=replays1)).strftime("%Y%m%d")
     replays2 = [10, 20, 30, 40, 50]
     replays2 = replays2[int(selfAddon.getSetting('replays2'))]
     start2 = (curdate - timedelta(days=replays2)).strftime("%Y%m%d")
     replays3 = [30, 60, 90, 120]
     replays3 = replays3[int(selfAddon.getSetting('replays3'))]
     start3 = (curdate - timedelta(days=replays3)).strftime("%Y%m%d")
     replays4 = [60, 90, 120, 240]
     replays4 = replays4[int(selfAddon.getSetting('replays4'))]
     start4 = (curdate - timedelta(days=replays4)).strftime("%Y%m%d")
     startAll = (curdate - timedelta(days=365)).strftime("%Y%m%d")
     addDir(
         translation(30031) + str(replays1) + ' Days',
         dict(ESPN_URL=events.get_replay_events_url(channel_list) +
              enddate + '&startDate=' + start1,
              MODE=self.make_mode(LIST_SPORTS_MODE)), defaultreplay)
     addDir(
         translation(30031) + str(replays2) + ' Days',
         dict(ESPN_URL=events.get_replay_events_url(channel_list) +
              enddate + '&startDate=' + start2,
              MODE=self.make_mode(LIST_SPORTS_MODE)), defaultreplay)
     addDir(
         translation(30031) + str(replays3) + ' Days',
         dict(ESPN_URL=events.get_replay_events_url(channel_list) +
              enddate + '&startDate=' + start3,
              MODE=self.make_mode(LIST_SPORTS_MODE)), defaultreplay)
     addDir(
         translation(30031) + str(replays3) + '-' + str(replays4) + ' Days',
         dict(ESPN_URL=events.get_replay_events_url(channel_list) +
              '&endDate=' + start3 + '&startDate=' + start4,
              MODE=self.make_mode(LIST_SPORTS_MODE)), defaultreplay)
     addDir(
         translation(30032),
         dict(ESPN_URL=events.get_replay_events_url(channel_list) +
              enddate + '&startDate=' + startAll,
              MODE=self.make_mode(LIST_SPORTS_MODE)), defaultreplay)
     xbmcplugin.endOfDirectory(pluginhandle)
Beispiel #2
0
 def index_legacy_live_events(self, args):
     espn_url = args.get(ESPN_URL)[0]
     chosen_sport = args.get(SPORT, None)
     if chosen_sport is not None:
         chosen_sport = chosen_sport[0]
     chosen_network = args.get(NETWORK_ID, None)
     if chosen_network is not None:
         chosen_network = chosen_network[0]
     live = 'action=live' in espn_url
     upcoming = 'action=upcoming' in espn_url
     replay = 'action=replay' in espn_url
     if live:
         data = events.get_events(espn_url)
     else:
         data = util.get_url_as_xml_soup_cache(espn_url).findall(".//event")
     num_espn3 = 0
     num_secplus = 0
     num_events = 0
     for event in data:
         sport = event.find('sportDisplayValue').text.encode('utf-8')
         if chosen_sport <> sport and chosen_sport is not None:
             continue
         networkid = event.find('networkId').text
         if chosen_network <> networkid and chosen_network is not None:
             continue
         if networkid == ESPN3_ID and chosen_network is None and live:
             num_espn3 = num_espn3 + 1
         elif networkid == SECPLUS_ID and chosen_network is None and live:
             num_secplus = num_secplus + 1
         else:
             num_events = num_events + 1
             self.index_event(event, live, upcoming, replay, chosen_sport)
     # Don't show ESPN3 folder if there are no premium events
     if num_events == 0:
         for event in data:
             sport = event.find('sportDisplayValue').text.encode('utf-8')
             if chosen_sport <> sport and chosen_sport is not None:
                 continue
             self.index_event(event, live, upcoming, replay, chosen_sport)
     # Dir for ESPN3/SECPlus
     elif chosen_network is None:
         if num_espn3 > 0:
             translation_number = 30191 if num_espn3 == 1 else 30190
             if selfAddon.getSetting('NoColors') == 'true':
                 name = translation(translation_number) % num_espn3
             else:
                 name = '[COLOR=FFCC0000]' + (translation(translation_number) % num_espn3) + '[/COLOR]'
             addDir(name, dict(ESPN_URL=espn_url, MODE=self.make_mode(LIVE_EVENTS_MODE), NETWORK_ID=ESPN3_ID),
                    defaultlive)
         if num_secplus > 0:
             translation_number = 30201 if num_espn3 == 1 else 30200
             if selfAddon.getSetting('NoColors') == 'true':
                 name = translation(translation_number) % num_secplus
             else:
                 name = '[COLOR=FFCC0000]' + (translation(translation_number) % num_secplus) + '[/COLOR]'
             addDir(name, dict(ESPN_URL=espn_url, MODE=self.make_mode(LIVE_EVENTS_MODE), NETWORK_ID=SECPLUS_ID),
                    defaultlive)
Beispiel #3
0
 def root_menu(self, args):
     include_premium = adobe_activate_api.is_authenticated()
     channel_list = events.get_channel_list(include_premium)
     curdate = datetime.utcnow()
     upcoming = int(selfAddon.getSetting('upcoming'))+1
     days = (curdate+timedelta(days=upcoming)).strftime("%Y%m%d")
     addDir(translation(30029),
            dict(ESPN_URL=events.get_live_events_url(channel_list), MODE=self.make_mode(LIVE_EVENTS_MODE)),
            defaultlive)
     addDir(translation(30030),
            dict(ESPN_URL=events.get_upcoming_events_url(channel_list) + '&endDate=' + days + '&startDate=' + curdate.strftime("%Y%m%d"), MODE=self.make_mode(LIST_SPORTS_MODE)),
            defaultupcoming)
     enddate = '&endDate='+ (curdate+timedelta(days=1)).strftime("%Y%m%d")
     replays1 = [5,10,15,20,25]
     replays1 = replays1[int(selfAddon.getSetting('replays1'))]
     start1 = (curdate-timedelta(days=replays1)).strftime("%Y%m%d")
     replays2 = [10,20,30,40,50]
     replays2 = replays2[int(selfAddon.getSetting('replays2'))]
     start2 = (curdate-timedelta(days=replays2)).strftime("%Y%m%d")
     replays3 = [30,60,90,120]
     replays3 = replays3[int(selfAddon.getSetting('replays3'))]
     start3 = (curdate-timedelta(days=replays3)).strftime("%Y%m%d")
     replays4 = [60,90,120,240]
     replays4 = replays4[int(selfAddon.getSetting('replays4'))]
     start4 = (curdate-timedelta(days=replays4)).strftime("%Y%m%d")
     startAll = (curdate-timedelta(days=365)).strftime("%Y%m%d")
     addDir(translation(30031) + str(replays1) +' Days',
            dict(ESPN_URL=events.get_replay_events_url(channel_list) + enddate + '&startDate=' + start1, MODE=self.make_mode(LIST_SPORTS_MODE)),
            defaultreplay)
     addDir(translation(30031) + str(replays2) +' Days',
            dict(ESPN_URL=events.get_replay_events_url(channel_list) + enddate + '&startDate=' + start2, MODE=self.make_mode(LIST_SPORTS_MODE)),
            defaultreplay)
     addDir(translation(30031) + str(replays3) +' Days',
            dict(ESPN_URL=events.get_replay_events_url(channel_list) + enddate + '&startDate=' + start3, MODE=self.make_mode(LIST_SPORTS_MODE)),
            defaultreplay)
     addDir(translation(30031) + str(replays3) +'-' + str(replays4) +' Days',
            dict(ESPN_URL=events.get_replay_events_url(channel_list) + '&endDate=' + start3 + '&startDate=' + start4, MODE=self.make_mode(LIST_SPORTS_MODE)),
            defaultreplay)
     addDir(translation(30032),
            dict(ESPN_URL=events.get_replay_events_url(channel_list) + enddate + '&startDate=' + startAll, MODE=self.make_mode(LIST_SPORTS_MODE)),
            defaultreplay)
     xbmcplugin.endOfDirectory(pluginhandle)
def index_item(args):
    if args['type'] == 'over':
        return
    sport = args['sport']
    ename = args['eventName']
    sport2 = args['subcategory'] if 'subcategory' in args else sport
    if sport <> sport2 and len(sport2) > 0:
        sport += ' (' + sport2 + ')'
    starttime = args['starttime'] if 'starttime' in args else None
    length = int(args['duration'])
    xbmc.log(TAG + 'startime %s' % starttime, xbmc.LOGDEBUG)
    xbmc.log(TAG + 'type %s' % args['type'], xbmc.LOGDEBUG)

    if starttime is not None:
        now = time.time()
        etime = time.strftime("%I:%M %p", starttime)
        if 'replay' in args['type']:
            etime_local = starttime
            if etime_local.tm_hour == 0 and etime_local.tm_min == 0:
                etime = time.strftime("%m/%d/%Y", starttime)
            else:
                etime = time.strftime("%m/%d %I:%M %p", starttime)
            if selfAddon.getSetting('NoColors') == 'true':
                ename = etime + ' ' + ename
            else:
                ename = '[COLOR=FFB700EB]' + etime + '[/COLOR] ' + ename
        elif args['type'] == 'live':
            starttime_time = time.mktime(starttime)
            length -= (time.time() - starttime_time)
            if selfAddon.getSetting('NoColors') == 'true':
                ename = ename + ' ' + etime
            else:
                ename += ' [COLOR=FFB700EB]' + etime + '[/COLOR]'
        else:
            now_time = time.localtime(now)
            if now_time.tm_year == starttime.tm_year and \
                            now_time.tm_mon == starttime.tm_mon and \
                            now_time.tm_mday == starttime.tm_mday:
                etime = time.strftime("%I:%M %p", starttime)
            else:
                etime = time.strftime("%m/%d %I:%M %p", starttime)
            if selfAddon.getSetting('NoColors') == 'true':
                ename = etime + ' ' + ename
            else:
                ename = '[COLOR=FFB700EB]' + etime + '[/COLOR] ' + ename
        aired = time.strftime("%Y-%m-%d", starttime)
    else:
        aired = 0

    network_id = args['networkId'] if 'networkId' in args else ''
    if network_id == 'longhorn':
        channel_color = 'BF5700'
    elif network_id == 'sec' or network_id == 'secplus':
        channel_color = '004C8D'
    elif network_id == 'accextra':
        channel_color = '013ca6'
    else:
        channel_color = 'CC0000'
    if 'networkName' in args:
        network = args['networkName']
    else:
        network = network_id
    xbmc.log(TAG + 'network_id ' + network_id, xbmc.LOGDEBUG)
    if network_id in NETWORK_ID_TO_NETWORK_NAME:
        network = translation(NETWORK_ID_TO_NETWORK_NAME[network_id])
    blackout = args['blackout'] if 'blackout' in args else False
    blackout_text = ''
    if blackout:
        blackout_text = translation(30580)
    if len(blackout_text) > 0:
        ename = blackout_text + ' ' + ename
    if len(network) > 0:
        if selfAddon.getSetting('NoColors') == 'true':
            ename = network + ' ' + ename
        else:
            ename = '[COLOR=FF%s]%s[/COLOR] ' % (channel_color, network) + ename

    description = args['description']
    requires_auth = does_requires_auth(network_id)
    if requires_auth and not adobe_activate_api.is_authenticated():
        ename = '*' + ename

    xbmc.log(TAG + 'Duration %s' % length, xbmc.LOGDEBUG)

    mpaa = args['parentalRating'] if 'parentRating' in args else 'U'
    infoLabels = {'title': ename,
                  'genre': sport,
                  'duration': length,
                  'studio': network,
                  'mpaa': mpaa,
                  'plot': description,
                  'aired': aired,
                  'premiered': aired}

    authurl = dict()
    if args['type'] == 'upcoming':
        authurl[MODE] = UPCOMING_MODE
    else:
        adobeRSS = args['adobeRSS'] if 'adobeRSS' in args else None
        guid = args['guid'] if 'guid' in args else None
        if adobeRSS is None and guid is None:
            authurl[PLAYBACK_URL] = args['sessionUrl']
            authurl[MODE] = PLAY_ITEM_MODE
        else:
            authurl[MODE] = PLAY_TV_MODE
            authurl[EVENT_ID] = args['eventId']
            authurl[SESSION_URL] = args['sessionUrl']
            authurl[NETWORK_NAME] = args['networkId']
            if 'adobeRSS' in args:
                authurl[ADOBE_RSS] = args['adobeRSS'].encode('iso-8859-1')
            else:
                authurl[EVENT_NAME] = args['eventName'].encode('iso-8859-1')
                authurl[EVENT_GUID] = args['guid'].encode('iso-8859-1')
                authurl[EVENT_PARENTAL_RATING] = mpaa
                authurl[CHANNEL_RESOURCE_ID] = args['channelResourceId']
    fanart = args['imageHref']

    if include_item(network_id):
        addLink(ename, authurl, fanart, fanart, infoLabels=infoLabels)
    else:
        xbmc.log(TAG + 'Skipping %s' % args['networkId'], xbmc.LOGDEBUG)
def include_item(networkId):
    for setting in CHANNEL_SETTINGS:
        channel = CHANNEL_SETTINGS[setting]
        if channel == networkId:
            return selfAddon.getSetting(setting) == 'true'
    return True
Beispiel #6
0
 def index_legacy_live_events(self, args):
     espn_url = args.get(ESPN_URL)[0]
     chosen_sport = args.get(SPORT, None)
     if chosen_sport is not None:
         chosen_sport = chosen_sport[0]
     chosen_network = args.get(NETWORK_ID, None)
     if chosen_network is not None:
         chosen_network = chosen_network[0]
     live = 'action=live' in espn_url
     upcoming = 'action=upcoming' in espn_url
     replay = 'action=replay' in espn_url
     if live:
         data = events.get_events(espn_url)
     else:
         data = util.get_url_as_xml_cache(
             espn_url, encoding='ISO-8859-1').findall(".//event")
     num_espn3 = 0
     num_secplus = 0
     num_accextra = 0
     num_events = 0
     for event in data:
         sport = event.find('sportDisplayValue').text.encode('utf-8')
         if chosen_sport <> sport and chosen_sport is not None:
             continue
         networkid = event.find('networkId').text
         if chosen_network <> networkid and chosen_network is not None:
             continue
         if networkid == ESPN3_ID and chosen_network is None and live:
             num_espn3 += 1
         elif networkid == SECPLUS_ID and chosen_network is None and live:
             num_secplus += 1
         elif networkid == ACC_EXTRA_ID and chosen_network is None and live:
             num_accextra += 1
         else:
             num_events += 1
             self.index_event(event, live, upcoming, replay, chosen_sport)
     # Don't show ESPN3 folder if there are no premium events
     if num_events == 0:
         for event in data:
             sport = event.find('sportDisplayValue').text.encode('utf-8')
             if chosen_sport <> sport and chosen_sport is not None:
                 continue
             self.index_event(event, live, upcoming, replay, chosen_sport)
     # Dir for ESPN3/SECPlus/ACC Extra
     elif chosen_network is None:
         if num_espn3 > 0 and selfAddon.getSetting('ShowEspn3') == 'true':
             translation_number = 30191 if num_espn3 == 1 else 30190
             if selfAddon.getSetting('NoColors') == 'true':
                 name = translation(translation_number) % num_espn3
             else:
                 name = '[COLOR=FFCC0000]' + (
                     translation(translation_number) %
                     num_espn3) + '[/COLOR]'
             addDir(
                 name,
                 dict(ESPN_URL=espn_url,
                      MODE=self.make_mode(LIVE_EVENTS_MODE),
                      NETWORK_ID=ESPN3_ID), defaultlive)
         if num_secplus > 0 and selfAddon.getSetting(
                 'ShowSecPlus') == 'true':
             translation_number = 30201 if num_secplus == 1 else 30200
             if selfAddon.getSetting('NoColors') == 'true':
                 name = translation(translation_number) % num_secplus
             else:
                 name = '[COLOR=FF004C8D]' + (
                     translation(translation_number) %
                     num_secplus) + '[/COLOR]'
             addDir(
                 name,
                 dict(ESPN_URL=espn_url,
                      MODE=self.make_mode(LIVE_EVENTS_MODE),
                      NETWORK_ID=SECPLUS_ID), defaultlive)
         if num_accextra > 0 and selfAddon.getSetting(
                 'ShowAccExtra') == 'true':
             translation_number = 30203 if num_accextra == 1 else 30202
             if selfAddon.getSetting('NoColors') == 'true':
                 name = translation(translation_number) % num_accextra
             else:
                 name = '[COLOR=FF013ca6]' + (
                     translation(translation_number) %
                     num_accextra) + '[/COLOR]'
             addDir(
                 name,
                 dict(ESPN_URL=espn_url,
                      MODE=self.make_mode(LIVE_EVENTS_MODE),
                      NETWORK_ID=ACC_EXTRA_ID), defaultlive)