Yretek 🍃

Generador de Entradas

Acabo de crear un pequeño generador de entradas en python para esta cápsula que se llama yretek.py. El programa toma los datos de un archivo en texto plano, denominado nuevo_yretek.txt, genera la entrada con todos los enlaces genéricos y el texto común que debe tener y lo pone en su carpeta adecuada. Además prepara el archivo con el que voy a modificar mi feed de atom y actualiza el index.gmi, esto es la entrada a mi cápsula.

En resumen es un generador de sitio gemini estático, solo que pensado para mi caso particular. Ojito, es solo para que tengas una idea porque no sé cómo estará organizado tu cápsula ni nada de

nada.

Contenido del archivo nuevo_yretek.txt

titulo ↓
Ejemplo de un título

resumen ↓ (la línea anterior debe estar en blanco)
Esto es un ejemplo

enlace relativo a gemini://yretek.com ↓  sin gmi (la línea anterior debe estar en blanco)
ejemplos/ejemplo

texto de artículo ↓ (la línea anterior debe estar en blanco)
Pues esto es un artículo ejemplar que es es solo un ejemplo.

Puede tener espacios en blanco



pues gemtext es solo texto plano corriente y moliente

y un enlace es fácil

=> http://example.org  Aunque sea a la web

Y ahora contenido del script

Ojo, que aquí habría que cambiar muchas cosas, sobre todo en la detección de errores, pero prefiero dejarlo en su forma más simple.

# ------------------------------ #
# -      Generador Yretek      - #
# - por Yretek para Yretek.com - #
# -------------------------------#

from datetime import datetime

fechora = datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")
fecha = datetime.now().strftime("%Y-%m-%d") 
texto = ""
dominio = "gemini://yretek.com/"

pie = f"""
### ~ Miguel de Luis
=> {dominio}index.gmi A inicio
=> http://yretek.com/gatom.xml ⚛ Mi atom para suscripción por lector
=> mailto:ailolai@protonmail.com ailolai@protonmail.com
=> {dominio}todo.gmi Todos los enlaces
"""

with open('nuevo_yretek.txt', mode='r') as archivo_entrada:
    datos = archivo_entrada.readlines()
    titulo = datos[1].strip()
    resumen = datos[4].strip()
    enlace = datos[7].strip() + ".gmi"
    for linea in datos[10:]:
        texto += linea
    salida = f'# Yretek 🍃 \n##{titulo}\n\n{texto}\n\n{pie}'

enlace_al_nuevo_articulo = f'=> {dominio}{enlace} {fecha} {titulo}\n'

with open(f'../yretek/{enlace}', mode='w') as archivo_salida:
    archivo_salida.write(salida)
    
with open("../yretek/todo.gmi", mode='r') as archivo_todos:
    datos = archivo_todos.readlines()    
    
if datos[2] != enlace_al_nuevo_articulo: 
    # de lo contrario ya está añadido   
    datos.insert(2,enlace_al_nuevo_articulo)
    with open("../yretek/todo.gmi", mode='w') as archivo_todos:
        archivo_todos.writelines(datos)
    with open("toAtom.csv", mode='r') as archivo_atom_csv:
        datos_csv = archivo_atom_csv.readlines()
        nuevo_dato = f"{titulo}|{enlace}|{fechora}|{resumen}"
    datos_csv.insert(1,nuevo_dato + '\n')
    with open("toAtom.csv", mode='w') as archivo_atom_csv:
        archivo_atom_csv.writelines(datos_csv)
    with open("../yretek/index.gmi",mode='r') as archivo_indice:
        datos_indice = archivo_indice.readlines()
    donde_lo_pongo = datos_indice.index("### Novedades\n") + 1
    datos_indice.insert(donde_lo_pongo,enlace_al_nuevo_articulo)
    with open("../yretek/index.gmi",mode='w') as archivo_indice:
        archivo_indice.writelines(datos_indice)
else:
    print("Ya añadido")
       

~ Miguel de Luis

A inicio

⚛ Mi atom para suscripción por lector

ailolai@protonmail.com

Todos los enlaces