Qué es esto
reply2social trae material de una cuenta de red social, se queda con los bytes, y lo vuelve a publicar en otras cuentas — con permiso registrado y, por defecto, después de que una persona lo mire.
Suena a un puente. Es más que eso, y la diferencia está en el medio: el archivo.
El código es libre y está acá. Última versión: v0.1.0-rc.1
(2026-08-15) — AGPL-3.0.
git clone https://gitlab.com/pineiden/reply2fb.git reply2socialEs un release candidate: Instagram, la fuente que da origen al proyecto, nunca corrió contra la API de Meta. Qué trae y qué no verificó.
Las URLs del CDN de Instagram vencen en horas o días. Un sistema que guardara sólo el enlace tendría, al año, un catálogo de links muertos: no un archivo sino un índice de cosas que ya no se pueden ver. Por eso se descargan y se guardan los bytes. Que además sirvan para republicar es una consecuencia, no el objetivo.
El mapa, de una
Tres piezas hacen el trabajo y una cuarta lo vigila:
| Pieza | Qué hace | Dónde vive |
|---|---|---|
| poller | Cada N horas le pregunta a cada fuente qué hay de nuevo, y baja lo que encuentra | src/poller.rs, src/ingesta/ |
| archivo | Guarda los bytes y los metadatos. Es el centro: todo lo demás lo lee o lo escribe | tablas items, item_medios |
| emisión | Toma lo aprobado y lo publica, respetando el grifo de cada destino | src/emision/, src/redes/ |
| panel | Donde una persona mira, aprueba, otorga permisos y frena | ui/core + su envoltorio |
Lo que este sistema no puede hacer
No es una lista de features faltantes: son cosas que el diseño impide a propósito, y cada una tiene su guarda en el código o en la base.
No publica sin permiso registrado. Un flujo dibujado no es un permiso. Sin un consentimiento vigente hacia esa cuenta de destino, la emisión no sale — y el panel dibuja la arista rota, no conectada. Cómo funciona
No publica sin atribución lo que llegó sin consentimiento. Un ítem replicado
desde un enlace suelto queda marcado atribucion_sin_permiso, y la base
rechaza el INSERT si no trae el enlace al original. La atribución no es una
convención: es un CHECK.
No firma sus propias credenciales. Este servicio valida identidades contra el anfitrión y nunca emite un token. Si el anfitrión no contesta, responde 503 — «no puedo saber quién sos»— y no 401, que sería afirmar que no sos nadie. Cómo funciona
No inventa un verde. Ninguna pantalla dice «funciona» sin haberlo comprobado contra la red. Lo mejor que dice un flujo sin probar es «sin probar».
Por dónde seguir
- El recorrido de un post — de la cuenta ajena a la publicación, paso a paso. Empezá por acá.
- Descargar el código — el repo, las versiones etiquetadas y la licencia (AGPL-3.0).
- Los datos — el DER, tabla por tabla.
- Los módulos — cómo está partido el servicio.
- La interfaz — el núcleo sin framework y sus envoltorios.
- Cauce — describir la instalación entera en un archivo.