Saltearse al contenido

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.

Ventana de terminal
git clone https://gitlab.com/pineiden/reply2fb.git reply2social

Es 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

Redes de destino

reply2social

Redes de origen

aprueba

Instagram

Telegram

Feeds RSS

poller

trae novedades

archivo

bytes + metadatos

emisión

publica, con grifo

panel

mira y aprueba

Mastodon

Telegram

El sitio propio

Tres piezas hacen el trabajo y una cuarta lo vigila:

PiezaQué haceDónde vive
pollerCada N horas le pregunta a cada fuente qué hay de nuevo, y baja lo que encuentrasrc/poller.rs, src/ingesta/
archivoGuarda los bytes y los metadatos. Es el centro: todo lo demás lo lee o lo escribetablas items, item_medios
emisiónToma lo aprobado y lo publica, respetando el grifo de cada destinosrc/emision/, src/redes/
panelDonde una persona mira, aprueba, otorga permisos y frenaui/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