예제 #1
0
파일: shortcuts.py 프로젝트: Muzic98/addon
def servers_menu(item):
    # from core.support import dbg; dbg()
    from core import servertools
    from core.item import Item
    from platformcode import config, platformtools
    from specials import setting

    names = []
    ids = []

    if item.type == 'debriders':
        action = 'server_debrid_config'
        server_list = list(servertools.get_debriders_list().keys())
        for server in server_list:
            server_parameters = servertools.get_server_parameters(server)
            if server_parameters['has_settings']:
                names.append(server_parameters['name'])
                ids.append(server)

        select = platformtools.dialog_select(
            config.get_localized_string(60552), names)
        if select != -1:
            ID = ids[select]

            it = Item(channel='settings', action=action, config=ID)
            setting.server_debrid_config(it)
    else:
        action = 'server_config'
        server_list = list(servertools.get_servers_list().keys())
        for server in sorted(server_list):
            server_parameters = servertools.get_server_parameters(server)
            if server_parameters["has_settings"] and [
                    x for x in server_parameters["settings"]
                    if x["id"] not in ["black_list", "white_list"]
            ]:
                names.append(server_parameters['name'])
                ids.append(server)

        select = platformtools.dialog_select(
            config.get_localized_string(60538), names)
        if select != -1:
            ID = ids[select]

            it = Item(channel='settings', action=action, config=ID)

            setting.server_config(it)
    if select != -1:
        servers_menu(item)
예제 #2
0
def registerOrLogin(page_url, forced=False):
    if not forced and config.get_setting('username', server='hdmario') and config.get_setting('password', server='hdmario'):
        login()
    else:
        if platformtools.dialog_yesno('HDmario',
                                      'Questo server necessita di un account, ne hai già uno oppure vuoi tentare una registrazione automatica?',
                                      yeslabel='Accedi', nolabel='Tenta registrazione'):
            from specials import setting
            from core.item import Item
            setting.server_config(Item(config='hdmario'))
            login()
        else:
            logger.info('Registrazione automatica in corso')
            import random
            import string
            randEmail = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(random.randint(9, 14))) + '@gmail.com'
            randPsw = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(10))
            logger.info('email: ' + randEmail)
            logger.info('pass: '******'loggedin' in httptools.downloadpage(baseUrl + '/register/',
                                                          post={'email': randEmail, 'email_confirmation': randEmail,
                                                                'password': randPsw,
                                                                'password_confirmation': randPsw}).url
                if rq:
                    config.set_setting('username', randEmail, server='hdmario')
                    config.set_setting('password', randPsw, server='hdmario')
                    platformtools.dialog_ok('HDmario',
                                            'Registrato automaticamente con queste credenziali:\nemail:' + randEmail + '\npass: '******'HDmario', 'Impossibile registrarsi automaticamente')
            logger.info('Registrazione completata')
    global page, data
    page = httptools.downloadpage(page_url)
    data = page.data
예제 #3
0
def registerOrLogin(page_url):
    if config.get_setting('username', server='hdmario') and config.get_setting(
            'password', server='hdmario'):
        if login():
            return True

    action = platformtools.dialog_yesno(
        'HDmario',
        'Questo server necessita di un account, ne hai già uno oppure vuoi tentare una registrazione automatica?',
        yeslabel='Accedi',
        nolabel='Tenta registrazione',
        customlabel='Annulla')
    if action == 1:  # accedi
        from specials import setting
        from core.item import Item
        user_pre = config.get_setting('username', server='hdmario')
        password_pre = config.get_setting('password', server='hdmario')
        setting.server_config(Item(config='hdmario'))
        user_post = config.get_setting('username', server='hdmario')
        password_post = config.get_setting('password', server='hdmario')

        if user_pre != user_post or password_pre != password_post:
            return registerOrLogin(page_url)
        else:
            return []
    elif action == 0:  # tenta registrazione
        import random
        import string
        logger.debug('Registrazione automatica in corso')
        mailbox = Gmailnator()
        randPsw = ''.join(
            random.choice(string.ascii_letters + string.digits)
            for i in range(10))
        # captcha = httptools.downloadpage(baseUrl + '/captchaInfo').json
        logger.debug('email: ' + mailbox.address)
        logger.debug('pass: '******'/register/',
                                            email=True,
                                            password=True,
                                            email_default=mailbox.address,
                                            password_default=randPsw)
        if not reg:
            return False
        regPost = httptools.downloadpage(baseUrl + '/register/',
                                         post={
                                             'email':
                                             reg['email'],
                                             'email_confirmation':
                                             reg['email'],
                                             'password':
                                             reg['password'],
                                             'password_confirmation':
                                             reg['password']
                                         })
        # 'captchaUuid': captcha['captchaUuid'],
        # 'captcha': reg['captcha']})
        if '/register' in regPost.url:
            error = scrapertools.htmlclean(
                scrapertools.find_single_match(
                    regPost.data, 'Impossibile proseguire.*?</div>'))
            error = scrapertools.unescape(
                scrapertools.re.sub('\n\s+', ' ', error))
            platformtools.dialog_ok('HDmario', error)
            return False
        if reg['email'] == mailbox.address:
            if "L'indirizzo email è già stato utilizzato" in regPost.data:
                # httptools.downloadpage(baseUrl + '/forgotPassword', post={'email': reg['email']})
                platformtools.dialog_ok('HDmario',
                                        'Indirizzo mail già utilizzato')
                return False
            mail = mailbox.waitForMail()
            if mail:
                checkUrl = scrapertools.find_single_match(
                    mail.body, 'href="([^"]+)">Premi qui').replace(r'\/', '/')
                logger.debug('CheckURL: ' + checkUrl)
                httptools.downloadpage(checkUrl)
                config.set_setting('username',
                                   mailbox.address,
                                   server='hdmario')
                config.set_setting('password', randPsw, server='hdmario')
                platformtools.dialog_ok(
                    'HDmario',
                    'Registrato automaticamente con queste credenziali:\nemail:'
                    + mailbox.address + '\npass: '******'HDmario', 'Impossibile registrarsi automaticamente')
                return False
        else:
            platformtools.dialog_ok(
                'HDmario',
                'Hai modificato la mail quindi KoD non sarà in grado di effettuare la verifica in autonomia, apri la casella '
                + reg['email'] + ' e clicca sul link. Premi ok quando fatto')
        logger.debug('Registrazione completata')
    else:
        return False

    return True