Un script de automatización en Python diseñado para leer enlaces desde un archivo Markdown local y sincronizarlos automáticamente como tareas en TickTick y registros en una base de datos de Notion. Pensado para ejecutarse sin intervención humana mediante GitHub Actions.
- Parseo Inteligente: Lee archivos
.mdy clasifica los enlaces por Categoría (#) y Subcategoría (##). - Auto-Etiquetado: Extrae palabras clave de la descripción para usarlas como etiquetas.
- Prevención de Rate-Limiting: Incorpora pausas estratégicas para no saturar las APIs de Notion y TickTick.
- Ejecución Flexible: Usa
argparsepara procesar cualquier archivo Markdown ingresado por terminal. - CI/CD Ready: Configurado para ejecutarse diariamente o al detectar cambios mediante GitHub Actions.
Este coddigo esta apoyado y creado en gran parte por IA.Entiendo las criticas razonables al vibe coding pero no estoy familiarizado en apis (y no me interesa,con sinceridad).La idea es que alguien mas lo aproveche,personalice y mejore :)
La conexión con github actions esta pendiente de desarrollar
Para usar este proyecto, necesitarás:
- Python 3.10 o superior.
- Una integración interna en Notion (API Key).
- El ID de tu base de datos de Notion.
- Un Token de acceso a la API de TickTick.
git clone [https://github.com/TU-USUARIO/TU-REPOSITORIO.git](https://github.com/TU-USUARIO/TU-REPOSITORIO.git)
cd TU-REPOSITORIO
Esto mantendrá las librerías del proyecto aisladas de tu sistema global.
Bash
python3 -m venv venv
# Para activar en Linux o macOS:
source venv/bin/activate
# Para activar en Windows:
venv\Scripts\activate
Asegúrate de tener un archivo requirements.txt en la raíz con las librerías necesarias (requests, notion-client).
Bash
pip install -r requirements.txt
Para que el script procese correctamente los enlaces, el archivo debe seguir esta estructura de Markdown:
# Categoría Principal
## Subcategoría
- [Título del Enlace](https://url-ejemplo.com): Descripción detallada para generar etiquetas.
- Categorías: Se definen con
#y##. - Enlaces: Deben seguir el formato
- [Título](URL): Descripción. - Tags: El script extraerá automáticamente palabras de más de 5 letras de la descripción.
El script requiere las siguientes variables configuradas en GitHub Secrets o en un archivo .env local:
| Variable | Descripción |
|---|---|
NOTION_API_KEY |
Token de integración de Notion. |
TICKTICK_ACCESS_TOKEN |
Token de acceso OAuth de TickTick. |
LIBRARY_DB_ID |
ID de la base de datos de Notion donde se guardarán los links. |
- Lectura: El script busca el archivo
input_links.md. - Parsing: Identifica títulos, URLs y descripciones mediante Regex.
- Sincronización: - Crea una tarea en TickTick.
- Crea una página en la base de datos de Notion vinculando el ID de TickTick.
- Logs: Informa en consola el progreso de cada enlace procesado.
Este repositorio está configurado para:
- Ejecutarse automáticamente al hacer
pusheninput_links.md. - Detenerse de forma segura si las variables de entorno no están presentes.
Este proyecto está bajo la Licencia MIT.