def edicion_aux(contido, xenero_base): print('-----------------------') for ele in contido: print(ele, ': ', contido[ele]) if u.snValido(input(_('Cambiar? (s/n): '))) == (True, True): while True: if ele == 'nota': meter = input(ele + ': ') if meter.isdigit( ) and int(meter) >= 0 and int(meter) <= 100: contido[ele] = meter break elif ele == 'lonxitude': meter = input(ele + ': ') if meter.replace(',', '').replace('.', '').isdigit(): if contido[ele].endswith('minutos'): contido[ele] = meter + ' minutos' else: contido[ele] = meter + ' páxinas' break elif ele == 'idioma': meter = input(ele + ': ') if meter == '?': u.pJson([ele for ele in __codsIdiomas.keys()]) elif meter in __codsIdiomas: contido['idioma'] = meter break elif ele == 'data_ini': meter = kh.getAgora() input(ele + ': ' + meter) contido['data_ini'] = meter break elif ele == 'data_fin': meter = kh.getAgora() input(ele + ': ' + meter) contido['data_fin'] = meter break else: meter = input(ele + ': ') contido[ele] = meter break print('-----------------------') return contido
def engadir(nome, tipo, epi, lugar, video, ano, anof, audio, subs, calidade, peso, xenero, creador): global __indice elto = {} elto['nome'] = nome elto['epi'] = epi elto['tipo'] = tipo elto['lugar'] = lugar elto['video'] = video elto['ano'] = ano elto['ano_fin'] = anof elto['audio'] = audio elto['subs'] = subs elto['calidade'] = calidade elto['peso'] = peso elto['xenero'] = xenero elto['creador'] = creador # metemos o elemento con chave a data de metida en codigo 36 __indice[b36.code(kh.getAgora())] = elto
def editar_indice(key, entrada_caderno): print('-----------------------') nome_vello = entrada_caderno['nome'] for ele in entrada_caderno: print(' > ' + ele, ': ', entrada_caderno[ele]) if u.snValido(input(_(' > Cambiar? (s/n): '))) == (True, True): while True: if ele == 'tipo': tipo_vello = entrada_caderno[ele] while True: meter = input( ' > ' + ele + ' (serie(s), peli(p), docu(d), video(v), libro(l), música(m), artigo(a)): ' ) if meter in __codes.values(): entrada_caderno[ele] = meter break # se lle cambiamos o tipo debemos cambiar a carpeta de lugar tamén if tipo_vello != meter: # devolve o nome que recibe a carpeta carpeta_nova = [ ele for ele in __codes if __codes[ele] == meter ][0] carpeta_vella = [ ele for ele in __codes if __codes[ele] == tipo_vello ][0] # miramos se cambiou o nome para remoalo adecuadamente if nome_vello == entrada_caderno['nome']: fich__ = __carpetas[carpeta_vella] + nome_vello # primeiro miramos se hai xiquera algo que mover if u.existe_fich(fich__ + '.json'): shutil.move(fich__ + '.json', __carpetas[carpeta_nova]) elif u.existe_carp(fich__): shutil.move(fich__, __carpetas[carpeta_nova]) else: fich__ = __carpetas[carpeta_vella] + nome_vello # primeiro miramos se hai xiquera algo que mover if u.existe_fich(fich__ + '.json'): shutil.move( fich__ + '.json', __carpetas[carpeta_nova] + entrada_caderno['nome'] + '.json') elif u.existe_carp(fich__): shutil.move( fich__, __carpetas[carpeta_nova] + entrada_caderno['nome']) break elif ele == 'nota': meter = input(' > ' + ele + ': ') if meter.isdigit( ) and int(meter) >= 0 and int(meter) <= 100: entrada_caderno[ele] = meter break elif ele == 'lonxitude': meter = input(' > ' + ele + ': ') if meter.replace(',', '').replace('.', '').isdigit(): if entrada_caderno[ele].endswith('minutos'): entrada_caderno[ele] = meter + ' minutos' else: entrada_caderno[ele] = meter + ' páxinas' break elif ele == 'xenero': meter = input(' > ' + ele + ': ') # quitamoslle os posibles acentos meter = unidecode(meter) if meter == '?': u.pJson(__codsXeneros[xenero_base]) elif meter in __codsXeneros[xenero_base]: entrada_caderno['xenero'] = meter break elif ele == 'idioma': meter = input(' > ' + ele + ': ') if meter == '?': u.pJson([ele for ele in __codsIdiomas.keys()]) elif meter in __codsIdiomas: entrada_caderno['idioma'] = meter break elif ele == 'data_ini': meter = kh.getAgora() input(' > ' + ele + ': ' + meter) entrada_caderno['data_ini'] = meter break elif ele == 'data_fin': meter = kh.getAgora() input(' > ' + ele + ': ' + meter) entrada_caderno['data_fin'] = meter break else: meter = input(' > ' + ele + ': ') entrada_caderno[ele] = meter break print('-----------------------') __indice[key] = entrada_caderno
def valorar_aux(nome, tipo): # miramos o tipo de contido do que se trata if tipo == __codes['serie']: # miramos que nos diga un epi válido while True: cap = input(_(' > Que capítulo? (1x01): ')).lower() if u.epi_valido(cap): fich = __carpetas['serie'] + nome + '/' + cap # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): # se quere sobreescribir a critica if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')). lower()) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) break else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "audiovisual")) break # se non existe non hai proble else: u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) break else: print(_('*> Capítulo inválido.\n')) elif tipo == __codes['peli']: fich = __carpetas['peli'] + nome # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')).lower() ) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "audiovisual")) else: u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) elif tipo == __codes['docu']: fich = __carpetas['docu'] + nome # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')).lower() ) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "audiovisual")) else: u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) elif tipo == __codes['video']: fich = __carpetas['video'] + nome # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')).lower() ) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "audiovisual")) else: u.gardar_json(fich + '.json', valoracion(tipo, "audiovisual")) elif tipo == __codes['libro']: fich = __carpetas['libro'] + nome # miramos que nos diga un epi válido while True: cap = input(_(' > Que capítulo? (1): ')).lower() if cap.isdigit(): fich = __carpetas['libro'] + nome + '/' + cap # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): # se quere sobreescribir a critica if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')). lower()) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "literatura")) break else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "literatura")) break # se non existe non hai proble else: u.gardar_json(fich + '.json', valoracion(tipo, "literatura")) break else: print(_('*> Capítulo inválido.\n')) elif tipo == __codes['artigo']: fich = __carpetas['artigo'] + nome # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')).lower() ) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "literatura")) else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "literatura")) else: u.gardar_json(fich + '.json', valoracion(tipo, "literatura")) elif tipo == __codes['musica']: fich = __carpetas['musica'] + nome # miramos se xa existe o ficheiro if Path(fich + '.json').is_file(): if u.snValido( input(_('*> Xa existe, sobreescribir? (s/n): ')).lower() ) == (True, True): u.gardar_json(fich + '.json', valoracion(tipo, "musica")) else: u.gardar_json( fich + '_' + str(b36.code(kh.getAgora())) + '.json', valoracion(tipo, "musica")) else: u.gardar_json(fich + '.json', valoracion(tipo, "musica")) # debería ser imposible que non coincida con ningún código else: print(_('Imposible'))
def engadir(nome=None): existe = False media = { 'nome': None, 'tipo': None, 'nota': None, 'autor': None, 'editorial': None, 'data_saida': None, 'lonxitude': None, 'xenero': None, 'idioma': None, 'data_ini': None, 'data_fin': None } print('\n-----------------------') print(_('*> Engadindo:')) print('-----------------------') # se xa nos dan o nome non fai falla sacar o de que nos diga o nome # un exemplo sería en valorar, que o nome if nome is None: nome = input(_(' > Nome: ')) else: print(_(' > Nome: '), nome) # miramos se o que queremos meter xa existe sabendo que so pode haber un nome for ele in __indice.values(): if ele['nome'].lower() == nome.lower(): existe = True break if existe: print(_('*> Xa existe compi')) else: media['nome'] = nome # para ver que pon un tipo que exista while True: tipo = input( _(' > Tipo (1 serie, 2 peli, 3 docu, 4 video, 5 libro, 6 música, 7 artigo): ' )) # segundo o tipo poñemos o seu código if tipo == '1': media['tipo'] = __codes['serie'] u.crear_carp(__carpetas['serie'] + nome) break elif tipo == '2': media['tipo'] = __codes['peli'] break elif tipo == '3': media['tipo'] = __codes['docu'] break elif tipo == '4': media['tipo'] = __codes['video'] break elif tipo == '5': media['tipo'] = __codes['libro'] u.crear_carp(__carpetas['libro'] + nome) break elif tipo == '6': media['tipo'] = __codes['musica'] break elif tipo == '7': media['artigo'] = __codes['artigo'] break else: media['tipo'] = 'imposible' # nota while True: nota = input(_(' > Nota (0-100): ')) if nota.isdigit() and int(nota) >= 0 and int(nota) <= 100: media['nota'] = nota break # autor media['autor'] = input(_(' > Autor ou creador: ')) # editorial if tipo == __codes['libro']: media['editorial'] = input(_(' > Editorial: ')) else: media['editorial'] = 'NA' # dato de saida media['data_saida'] = input(_(' > Data de saída: ')) # lonxitude while True: valor = input(_(' > Duración (só o número): ')) if valor.replace(',', '').replace('.', '').isdigit(): if media['tipo'] in (__codes['artigo'], __codes['libro']): media['lonxitude'] = valor + ' páxinas' else: media['lonxitude'] = valor + ' minutos' break # xenero if media['tipo'] in (__codes['musica']): xenero_base = 'musica' elif media['tipo'] in (__codes['libro'], __codes['artigo']): xenero_base = 'literatura' else: xenero_base = 'audiovisual' while True: xenero = unidecode(input(_(' > Xénero: '))) if xenero == '?': u.pJson(__codsXeneros[xenero_base]) elif xenero in __codsXeneros[xenero_base]: media['xenero'] = xenero break # idioma while True: idioma = input(_(' > Idioma: ')) if idioma == '?': u.pJson([ele for ele in __codsIdiomas.keys()]) elif idioma in __codsIdiomas: media['idioma'] = idioma break # data de inicio dini = input(_(' > Poñer data inicio? (s/n): ')) if u.snValido(dini) == (True, True): media['data_ini'] = kh.getAgora() else: media['data_ini'] = None # data de fin dfin = input(_(' > Poñer data finalización? (s/n): ')) if u.snValido(dfin) == (True, True): media['data_fin'] = kh.getAgora() else: media['data_fin'] = None # engadimos o contido audiovisual á colección xeral #FALTA: Mirar que a chave que se lle pon non exista xa se se eliminou # en lugar de poñer un simple número usaremos o tempo no que foi creado en base32 __indice[b36.code(kh.getAgora())] = media print('-----------------------') # devolvemos estes valores engadidos se é que se queren return media['nome'], media['tipo']
def valoracion(tipo, xenero_base): datos = { 'resumo': None, 'opinions': None, 'nota': None, 'data_saida': None, 'lonxitude': None, 'idioma': None, 'data_ini': None, 'data_fin': None, 'notas_extra': None } # resumo datos['resumo'] = input(_('\nResumo: ')) # opinions datos['opinions'] = input(_('\nOpinións: ')) # nota while True: nota = input(_('\nNota (0-100): ')) if nota.isdigit() and int(nota) >= 0 and int(nota) <= 100: datos['nota'] = nota break # dato de saida datos['data_saida'] = input(_('\nData de saída: ')) # lonxitude while True: valor = input(_('\nDuración (só o número): ')) if valor.replace(',', '').replace('.', '').isdigit(): if xenero_base == 'literatura': datos['lonxitude'] = valor + ' páxinas' else: datos['lonxitude'] = valor + ' minutos' break # idioma while True: idioma = input(_('\nIdioma: ')) if idioma == '?': u.pJson([ele for ele in __codsIdiomas.keys()]) elif idioma in __codsIdiomas: datos['idioma'] = idioma break # data de inicio dini = input(_('\nPoñer data inicio? (s/n): ')) if u.snValido(dini) == (True, True): datos['data_ini'] = kh.getAgora() else: datos['data_ini'] = None # data de fin dfin = input(_('\nPoñer data finalización? (s/n): ')) if u.snValido(dfin) == (True, True): datos['data_fin'] = kh.getAgora() else: datos['data_fin'] = None # notas extra datos['notas_extra'] = input(_('\nNotas extra: ')) return datos