docs: media publishing and producer checks in README and validation guide
This commit is contained in:
parent
1b58768738
commit
b4557ae23a
2 changed files with 45 additions and 2 deletions
|
|
@ -132,8 +132,8 @@ Conectar una cuenta (OAuth con `state` de un solo uso y PKCE donde la red lo adm
|
||||||
|
|
||||||
| Red | Conectar | Publicar | Notas |
|
| Red | Conectar | Publicar | Notas |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| Mastodon | Sí | Texto | Sin claves de servidor; cada cuenta registra la app en su instancia. |
|
| Mastodon | Sí | Texto e imágenes (con texto alternativo) | Sin claves de servidor; cada cuenta registra la app en su instancia. |
|
||||||
| Telegram | Sí | Texto | Token del bot de BotFather. |
|
| Telegram | Sí | Texto e imágenes | Token del bot de BotFather. |
|
||||||
| Instagram | Sí, con `INSTAGRAM_CLIENT_ID/SECRET` | No todavía | Meta descarga la imagen de una URL pública y los medios están cifrados: falta un endpoint temporal. Ver [docs/oauth-connect.md](docs/oauth-connect.md). |
|
| Instagram | Sí, con `INSTAGRAM_CLIENT_ID/SECRET` | No todavía | Meta descarga la imagen de una URL pública y los medios están cifrados: falta un endpoint temporal. Ver [docs/oauth-connect.md](docs/oauth-connect.md). |
|
||||||
| PeerTube | No | Directo sí | Falta el puente OAuth en tube.occupymedia.cc. |
|
| PeerTube | No | Directo sí | Falta el puente OAuth en tube.occupymedia.cc. |
|
||||||
| X | No | No | Sin conector. API de pago por uso. |
|
| X | No | No | Sin conector. API de pago por uso. |
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,49 @@ Verificación
|
||||||
GET /media/<id> con sesión del colectivo B -> 404.
|
GET /media/<id> con sesión del colectivo B -> 404.
|
||||||
|
|
||||||
|
|
||||||
|
3b. PUBLICAR CON IMÁGENES (scheduler)
|
||||||
|
-------------------------------------
|
||||||
|
Problema
|
||||||
|
Desde 71db0a0/a6843e9 un borrador aprobado puede llevar mediaAssetIds y
|
||||||
|
altTexts, pero el registro del scheduler
|
||||||
|
(packages/connector-runtime/src/registry.ts) creaba los conectores sin
|
||||||
|
loadAsset/openAsset: Mastodon y Telegram devolvían rejected_permanent
|
||||||
|
INVALID_POST y el post no salía. Los altTexts no llegaban al conector.
|
||||||
|
|
||||||
|
Qué cambia
|
||||||
|
- packages/connector-runtime/src/media.ts: loadAsset lee media_assets
|
||||||
|
dentro del colectivo de la ejecución (app.workspace_id, RLS forzado);
|
||||||
|
openAsset descarga el objeto, abre el marco SPENC1 con S3_KEK y
|
||||||
|
comprueba el hash del contenido. Solo lectura. Los bytes van
|
||||||
|
worker -> red; nunca pasan por la API.
|
||||||
|
- preparePostForDispatch convierte altTexts[i] en
|
||||||
|
providerMetadata.altText[mediaAssetIds[i]] (lo que lee Mastodon).
|
||||||
|
- Instagram registrado también en el scheduler: rechaza con error
|
||||||
|
explícito en vez de "proveedor desconocido". Sigue sin publicar fotos
|
||||||
|
(necesita URL pública; decisión pendiente).
|
||||||
|
|
||||||
|
Tests
|
||||||
|
cd packages/connector-runtime && npx vitest run esperado: 33 pass
|
||||||
|
cd apps/scheduler && npx vitest run esperado: 96 pass
|
||||||
|
|
||||||
|
Prueba manual (entorno de pruebas)
|
||||||
|
1. Compose: post con 2 imágenes y texto alternativo a Mastodon.
|
||||||
|
2. Aprobar y programar a 1 minuto.
|
||||||
|
3. El post sale con las 2 imágenes y su descripción en la instancia.
|
||||||
|
4. Con una imagen de otro colectivo forzada en mediaAssetIds -> falla
|
||||||
|
(MEDIA_ASSET_NOT_FOUND), no se publica nada.
|
||||||
|
|
||||||
|
|
||||||
|
3c. PRODUCTOR DE VÍDEO
|
||||||
|
----------------------
|
||||||
|
- Quitado MEDIA_DEBUG_STDERR=1 del compose de producción (escribía la
|
||||||
|
salida de ffmpeg sin censurar en /tmp).
|
||||||
|
- El logo superpuesto solo acepta imágenes del propio colectivo
|
||||||
|
(adjuntos, recursos de grupo o la marca). Antes bastaba una clave con
|
||||||
|
formato válido.
|
||||||
|
cd apps/api && npx vitest run src/video esperado: 38 pass
|
||||||
|
|
||||||
|
|
||||||
4. ESTILO Y LOGO
|
4. ESTILO Y LOGO
|
||||||
----------------
|
----------------
|
||||||
- apps/web/src/app/globals.css: paleta de acampada26s.net. Fondo
|
- apps/web/src/app/globals.css: paleta de acampada26s.net. Fondo
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue