def check_mode(args):
    """Run mode-specific functions.

    """
    mode = args.mode
    log("CR: Main: argv[0] = %s" % sys.argv[0],     xbmc.LOGDEBUG)
    log("CR: Main: argv[1] = %s" % sys.argv[1],     xbmc.LOGDEBUG)
    log("CR: Main: argv[2] = %s" % sys.argv[2],     xbmc.LOGDEBUG)
    log("CR: Main: args = %s" % str(args.__dict__), xbmc.LOGDEBUG)
    log("CR: Main: mode = %s" % mode,               xbmc.LOGDEBUG)

    if mode is None:
        show_main(args)
    elif mode == 'channels':
        channels(args)
    elif mode == 'list_series':
        crj.list_series(args)
    elif mode == 'list_categories':
        crj.list_categories(args)
    elif mode == 'list_coll':
        crj.list_collections(args)
    elif mode == 'list_media':
        crj.list_media(args)
    elif mode == 'history':
        crj.history(args)
    elif mode == 'queue':
        crj.queue(args)
    elif mode == 'add_to_queue':
        crj.add_to_queue(args)
    elif mode == 'remove_from_queue':
        crj.remove_from_queue(args)
    elif mode == 'videoplay':
        crj.start_playback(args)
    else:
        fail(args)
Esempio n. 2
0
def check_mode(args):
    """Run mode-specific functions.

    """
    #For a very minimal request to play video
    try:
        mode = args.mode
    except:
        #Shorthand for play on id
        if hasattr(args, 'id'):
            mode = 'videoplay'
        #Shorthand for play on url
        elif hasattr(args, 'url'):
            mode = 'videoplay'
            args.id = re.sub(r'.*-', '', args.url)
            args.id = re.sub(r'\?.*', '', args.id)
        else:
            mode = None

    log("CR: Main: argv[0] = %s" % sys.argv[0], xbmc.LOGDEBUG)
    log("CR: Main: argv[1] = %s" % sys.argv[1], xbmc.LOGDEBUG)
    log("CR: Main: argv[2] = %s" % sys.argv[2], xbmc.LOGDEBUG)
    log("CR: Main: args = %s" % str(args.__dict__), xbmc.LOGDEBUG)
    log("CR: Main: mode = %s" % mode, xbmc.LOGDEBUG)

    if mode is None:
        show_main(args)
    elif mode == 'channels':
        channels(args)
    elif mode == 'list_series':
        crj.list_series(args)
    elif mode == 'list_categories':
        crj.list_categories(args)
    elif mode == 'list_coll':
        crj.list_collections(args)
    elif mode == 'list_media':
        crj.list_media(args)
    elif mode == 'history':
        crj.history(args)
    elif mode == 'queue':
        crj.queue(args)
    elif mode == 'add_to_queue':
        crj.add_to_queue(args)
    elif mode == 'remove_from_queue':
        crj.remove_from_queue(args)
    elif mode == 'videoplay':
        crj.start_playback(args)
    elif mode == 'get_random':
        crj.get_random(args)
    elif mode == 'set_progress':
        crj.set_progress(args, args.time)
    elif mode == 'bad_login':
        bad_login(args)
    else:
        fail(args)
def check_mode(args):
    """Run mode-specific functions.

    """
    #For a very minimal request to play video
    try:
        mode = args.mode
    except:
        #Shorthand for play on id
        if hasattr(args,'id'):
           mode = 'videoplay'
        #Shorthand for play on url
        elif hasattr(args,'url'):
           mode = 'videoplay'
           args.id = re.sub(r'.*-', '', args.url)
           args.id = re.sub(r'\?.*', '', args.id)
        else:
           mode = None

    log("CR: Main: argv[0] = %s" % sys.argv[0],     xbmc.LOGDEBUG)
    log("CR: Main: argv[1] = %s" % sys.argv[1],     xbmc.LOGDEBUG)
    log("CR: Main: argv[2] = %s" % sys.argv[2],     xbmc.LOGDEBUG)
    log("CR: Main: args = %s" % str(args.__dict__), xbmc.LOGDEBUG)
    log("CR: Main: mode = %s" % mode,               xbmc.LOGDEBUG)

    if mode is None:
        show_main(args)
    elif mode == 'channels':
        channels(args)
    elif mode == 'list_series':
        crj.list_series(args)
    elif mode == 'list_categories':
        crj.list_categories(args)
    elif mode == 'list_coll':
        crj.list_collections(args)
    elif mode == 'list_media':
        crj.list_media(args)
    elif mode == 'history':
        crj.history(args)
    elif mode == 'queue':
        crj.queue(args)
    elif mode == 'add_to_queue':
        crj.add_to_queue(args)
    elif mode == 'remove_from_queue':
        crj.remove_from_queue(args)
    elif mode == 'videoplay':
        crj.start_playback(args)
    elif mode == 'get_random':
        crj.get_random(args)
    elif mode == 'set_progress':
        crj.set_progress(args,args.time)
    elif mode == 'bad_login':
        bad_login(args)
    else:
        fail(args)
Esempio n. 4
0
def fail(args):
    """Unrecognized mode found.

    """
    badstuff = args._lang(30207)

    add_item(args, {'title': badstuff, 'mode': 'fail'})

    log("CR: Main: check_mode fall through", xbmc.LOGWARNING)

    endofdirectory()
def fail(args):
    """Unrecognized mode found.

    """
    badstuff = args._lang(30207)

    add_item(args,
             {'title': badstuff,
              'mode':  'fail'})

    log("CR: Main: check_mode fall through", xbmc.LOGWARNING)

    endofdirectory()
Esempio n. 6
0
def main():
    """Main function for the addon.

    """
    args = parse_args()

    if crj.load_pickle(args) is False:
        add_item(args, {'title': 'Session failed: Check login'})
        endofdirectory()

    else:
        xbmcplugin.setContent(int(sys.argv[1]), 'movies')

        check_mode(args)

    try:
        base_path = xbmc.translatePath(
            args._addon.getAddonInfo('profile')).decode('utf-8')
        pickle_path = os.path.join(base_path, "cruchyPickle")
        user_data = pickle.dump(args.user_data, open(pickle_path, 'wb'))

    except:
        log("CR: Unable to dump pickle")
Esempio n. 7
0
def main():
    """Main function for the addon.

    """
    args = parse_args()

    if crj.load_pickle(args) is False:
        add_item(args,
                {'title': 'Session failed: Check login'})
        endofdirectory()

    else:
        xbmcplugin.setContent(int(sys.argv[1]), 'movies')

        check_mode(args)

    try:
        base_path = xbmc.translatePath(args._addon.getAddonInfo('profile')).decode('utf-8')
        pickle_path = os.path.join(base_path, "cruchyPickle")
        user_data = pickle.dump(args.user_data, open(pickle_path, 'wb'))

    except:
        log("CR: Unable to dump pickle")
Esempio n. 8
0
def main():
    """Main function for the addon.

    """
    args = parse_args()

    if (hasattr(args, 'mode')) and (args.mode == 'bad_login'):
        bad_login(args)
        args = parse_args()
        args.mode = None

    logged_in = True
    if crj.load_pickle(args) is False:
        base_path = xbmc.translatePath(
            args._addon.getAddonInfo('profile')).decode('utf-8')
        pickle_path = os.path.join(base_path, "cruchyPickle")
        if os.path.exists(
                pickle_path):  #silently remove crunchyPickle and try again
            os.remove(pickle_path)
        if crj.load_pickle(args) is False:  #Yes, we retry
            logged_in = False
            add_item(args, {'title': args._lang(30206), 'mode': 'bad_login'})
            endofdirectory()

    if logged_in:
        xbmcplugin.setContent(int(sys.argv[1]), 'tvshows')

        check_mode(args)

    try:
        base_path = xbmc.translatePath(
            args._addon.getAddonInfo('profile')).decode('utf-8')
        pickle_path = os.path.join(base_path, "cruchyPickle")
        user_data = pickle.dump(args.user_data, open(pickle_path, 'wb'))

    except:
        log("CR: Unable to dump pickle")
def main():
    """Main function for the addon.

    """
    args = parse_args()

    if (hasattr(args,'mode')) and (args.mode == 'bad_login'):
        bad_login(args)
        args = parse_args()
        args.mode = None

    logged_in = True
    if crj.load_pickle(args) is False:
        base_path = xbmc.translatePath(args._addon.getAddonInfo('profile')).decode('utf-8')
        pickle_path = os.path.join(base_path, "cruchyPickle")
        if os.path.exists(pickle_path): #silently remove crunchyPickle and try again
            os.remove(pickle_path)
        if crj.load_pickle(args) is False: #Yes, we retry
            logged_in = False
            add_item(args,
                     {'title': args._lang(30206),
                      'mode':  'bad_login'})
            endofdirectory()

    if logged_in: 
        xbmcplugin.setContent(int(sys.argv[1]), 'tvshows')

        check_mode(args)

    try:
        base_path = xbmc.translatePath(args._addon.getAddonInfo('profile')).decode('utf-8')
        pickle_path = os.path.join(base_path, "cruchyPickle")
        user_data = pickle.dump(args.user_data, open(pickle_path, 'wb'))

    except:
        log("CR: Unable to dump pickle")