def listseries(): series = database.getAllSeries() if len(series) == 0: print("Não há series adicionadas") for serie in series: print("{}".format(serie["ser_nome"])) utils.pause()
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()
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()
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()
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
def troubleshoot(): # copy log to desktop dp = os.path.join(os.environ["HOMEPATH"], "Desktop") fi = 0 while os.path.isfile(os.path.join(dp, "downloader_log(%s).log" % fi)): fi += 1 shutil.copy("log_debug.log", os.path.join(dp, "downloader_log(%s).log" % fi)) utils.pause()
def listtodownloadepisodes(): episodios = database.getToDownloadEpisode( ) # [dict_keys(ser_id, ser_nome, epi_temporada, epi_episodio)] if len(episodios) == 0: print("Não há episódios para baixar") for episodio in episodios: print("{} - S{:0>2d} E{:0>2d}".format(episodio["ser_nome"], episodio["epi_temporada"], episodio["epi_episodio"])) utils.pause()
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
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()
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()