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.
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
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")