Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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'))
Esempio n. 5
0
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']
Esempio n. 6
0
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