コード例 #1
0
def undownloadEpisode():
    episode = userinput.getEpisode(
    )  # dict_keys(* from serie, epi_temporada, epi_episodio)
    if episode is None:
        print("Operação cancelada!")
        utils.pause()
        return
    utils.clear()
    print("Remover download episódio:")
    print("Série: %s" % episode['ser_nome'])
    print("Temporada: %s" % episode['epi_temporada'])
    print("Episódio: %s" % episode['epi_episodio'])
    if userinput.confirm():
        if database.setDownloadEpisodeAs(episode["ser_id"],
                                         episode["epi_temporada"],
                                         episode["epi_episodio"], False):
            print("Concluido com sucesso!")
            logger.debug("Sucesso ao definir para não baixar episodio '%s'" %
                         str(episode))
        else:
            print(
                "Houve um erro ao realizar a ação no banco de dados! Tente mais tarde!"
            )
            logger.warning("Erro ao definir episodio para não baixar")
    else:
        print("operação cancelada!")
    utils.pause()
コード例 #2
0
def removeSerie():
    utils.clear()
    series = database.getAllSeries()  # dict_keys(* from serie)
    if len(series) == 0:
        print("Não há series adicionadas.")
        utils.pause()
        return
    else:
        for k, serie in enumerate(series):
            print("*" * 50)
            print("Identificador: {}".format(k + 1))
            print("Nome: {}".format(serie["ser_nome"]))
            print("*" * 50)
        print("Informe o identificador")
        try:
            op = int(input(">>"))
        except ValueError:
            pass
        else:
            if 0 < op <= len(series):
                logger.debug(f"Trying to remove: {series[op - 1]['ser_id']}")
                if database.removeSerie(series[op - 1]["ser_id"]):
                    print("Série removida com sucesso")
                    logger.debug("Removed")
                else:
                    print("Houve algum erro durante a remoção!")
                    logger.warning("Problem on removing")
            else:
                print("Operação cancelada.")
    utils.pause()
コード例 #3
0
def listmenu():
    while True:
        utils.clear()
        print("** Listar menu **")
        print("0 - Voltar")
        print("1 - Series")
        print("2 - Episodios para baixar")
        print("3 - Episodios adicionados recentemente")
        print("4 - Ultimos episódios adicionados")
        try:
            op = int(input("O que deseja listar?\n>>"))
        except ValueError:
            pass
        else:
            utils.clear()
            if op == 1:
                # mostrar series
                listseries()
            elif op == 2:
                # mostrar to download episodes
                listtodownloadepisodes()
            elif op == 3:
                recentlyadded()
            elif op == 4:
                lastadded()
            else:
                break
コード例 #4
0
def lastadded():
    utils.clear()
    episodios = database.getLastAddedEpisodes(
    )  # [dict_keys(ser_nome, epi_temporada, epi_episodio, epi_adicionado), ... ]
    episodios.reverse()  # least recent to most recent
    size = database.getMinMaxSizeOfSerieNames()
    if len(episodios) == 0:
        print("Não há episodios adicionados")
        utils.pause()
        return
    if size is None:
        logger.critical(
            "Something is not right! size cannot be none if there is something on the table"
        )
        print("Um erro inesperado aconteceu!")
        utils.pause()
        return
    print("Ultimos {} episódios adicionados".format(len(episodios)))
    for episodio in episodios:
        print("{: <{width}} S{:02}E{:02}   {}".format(
            episodio["ser_nome"],
            episodio["epi_temporada"],
            episodio["epi_episodio"],
            episodio["epi_adicionado"],
            width=size[1] + 2))
    utils.pause()
コード例 #5
0
def downloadAfter():
    episode = userinput.getEpisode(
    )  # None or dict_keys(* from serie + epi_temporada + epi_episodio)
    if episode is None:
        print("Operação cancelada!")
        utils.pause()
        return
    utils.clear()
    print("Baixar todos os episódios a partir de:")
    print("Série: %s" % episode['ser_nome'])
    print("Temporada: %s" % episode['epi_temporada'])
    print("Episódio: %s" % episode['epi_episodio'])
    if userinput.confirm():
        if database.setToDownloadAfterEpisodeAs(episode["ser_id"],
                                                episode["epi_temporada"],
                                                episode["epi_episodio"], True):
            print("Concluido com sucesso!")
            logger.info(
                "Sucesso ao definir para baixar episodios a partir de '%s'" %
                str(episode))
        else:
            print(
                "Houve um erro ao realizar a ação no banco de dados! Tente mais tarde!"
            )
            logger.warning("Erro ao definir episodio para baixar a partir de")
    else:
        print("operação cancelada!")
    utils.pause()
コード例 #6
0
def getSerie():
    """
    :return: None or dict_keys(*)
    """
    utils.clear()
    tvshows = database.getAllSeries()
    if len(tvshows) == 0:
        print("Não há series adicionadas")
        utils.pause()
        return None
    print("Séries disponíveis:")
    for k, tvshow in enumerate(tvshows):
        print("%d - %s" % (k + 1, tvshow["ser_nome"]),
              "*" if tvshow["ser_firstadd"] == 1 else "** -> %s" % tvshow["ser_uatualizado"] if (datetime.datetime.now() - datetime.datetime.strptime(tvshow["ser_uatualizado"], DATETIME_FORMAT)) > datetime.timedelta(
                  hours=3) else "")
    print("* não finalizou primeira adição")
    print("** não foi atualizado recentemente")
    try:
        choice = int(input("\nInforme o número da serie: \n>>"))
    except ValueError:
        return None
    except:
        logger.exception("Error ocurred while picking serie.")
    else:
        if 0 < choice <= len(tvshows):
            return tvshows[choice - 1]
        else:
            return None
コード例 #7
0
def undownloadmenu():
    while True:
        utils.clear()
        print("** Remove from download menu **")
        print("0 - Voltar")
        print("1 - Remover a partir de")
        print("2 - Remover episodio")
        try:
            op = int(input("Informe a opção?\n>>"))
        except ValueError:
            pass
        else:
            utils.clear()
            if op == 1:
                undownloadAfter()
            elif op == 2:
                undownloadEpisode()
            else:
                break
コード例 #8
0
def getSeason():
    """
    :return: None or dict_keys(* from serie + epi_temporada)
    """
    serie = getSerie()  # dict_keys(* from serie)
    if serie is None:
        return None
    utils.clear()
    print("Série selecionada: '%s'" % serie['ser_nome'])
    try:
        season = int(input("Informe a temporada: "))
    except ValueError:
        print("Erro ao digitar o valor, retornando...")
    except:
        print("Um erro inesperado ocorreu, retornando...")
        logger.exception("Erro ao captar entrada do usuario")
    else:
        serie["epi_temporada"] = season
        return serie
    utils.pause()
    return None
コード例 #9
0
def adicionarSerie():
    utils.clear()
    print("Informe o nome da série")
    name = input(">>")
    utils.clear()
    acquired = tmdb.lock.acquire(blocking=False)
    if not acquired:
        print("Aguarde...")
    while not acquired:
        acquired = tmdb.lock.acquire(blocking=False)
    results = tmdb.searchTVShow(name=name)
    tmdb.lock.release()
    if len(results) == 0:
        print("Nenhum resultado encontrado para '{}'".format(name))
    else:
        print("{} resultados encontrados para {}".format(
            len(results['results']), name))
        for k, serie in enumerate(results['results']):
            print("*" * 50)
            print("Idenfitificador: {}".format(k + 1))
            print("Nome: {original_name}".format(**serie))
            print("*" * 50)
        print("Informe o identificador da serie que deseja adicionar: ")
        try:
            op = int(input(">>"))
        except ValueError:
            pass
        else:
            if op < 1:
                print("Saindo...")
                utils.pause()
                return
            elif op <= len(results):
                if database.addSerie(
                        results['results'][op - 1]['id'],
                        results['results'][op - 1]['original_name']):
                    print("Serie adicionada com sucesso!")
                else:
                    print("Serie não adicionada!")
                utils.pause()
コード例 #10
0
def main(nDEBUG, nSIGNATURE, nTOKEN, nLOG):
    global DEBUG
    global SIGNATURE
    global TOKEN
    global LOG
    global m

    DEBUG = nDEBUG
    SIGNATURE = nSIGNATURE
    TOKEN = nTOKEN
    LOG = nLOG
    m = message_formats(TOKEN)

    # clear the screen
    clear()

    # open the connection with all the settings
    ws = websocket.WebSocketApp(m.url,
                                on_message=on_message,
                                on_error=on_error,
                                on_close=on_close)
    ws.on_open = on_open
    ws.run_forever()
コード例 #11
0
def mainmenu():
    utils.clear()
    print_to_download()
    print("+" * 50)
    print("0 - Sair")
    print("1 - Baixar")
    print("2 - Listar")
    print("3 - Adicionar")
    print("4 - Remover")
    print("5 - Remover de download")
    print("+" * 50)
    print("Informe a opção:")
    try:
        inp = input(">>").lower()
        if inp == "troubleshoot":
            troubleshoot()
        choice = int(inp)
    except ValueError:
        pass
    except:
        logger.exception("Choice exception ocurred.")
    else:
        if choice == 0:  # sair
            logger.info("Exitting")
            print("Saindo...")
            return False
        elif choice == 1:  # baixar
            downloadmenu()
        elif choice == 2:  # listar
            listmenu()
        elif choice == 3:  # adicionar
            adicionarSerie()
        elif choice == 4:  # remover
            removeSerie()
        elif choice == 5:  #remover download
            undownloadmenu()
    return True