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 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
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()
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 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
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 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()
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