wiki: contar lo que esta rama hace distinto, no Oasis otra vez
Misma reforma que en la de movil: la portada abre con las novedades y una tabla comparativa con el oficial, y remite a la wiki de epsylon para lo generico. Chats pasa a ser "Responder citando" y se queda con lo que aporta.
parent
d5d44d7cc9
commit
f069256f9c
5 changed files with 85 additions and 108 deletions
72
Chats.md
72
Chats.md
|
|
@ -1,64 +1,60 @@
|
|||
# Chats
|
||||
# Responder citando
|
||||
|
||||
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
||||
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
||||
> Lo único que esta rama cambia en los chats. Cómo funcionan los chats de Oasis está
|
||||
> en [su wiki](https://wiki.solarnethub.com/socialnet/overview) ·
|
||||
> [Volver a la portada](Home)
|
||||
|
||||
Los chats de Oasis son **salas cifradas que sí se guardan**: cada mensaje se publica
|
||||
firmado en tu registro SSB y se replica a quien te siga. Son lo contrario de
|
||||
[Karvan](Karvan), que no guarda nada.
|
||||
En el Oasis oficial, dentro de un chat se escribe y ya. Si diez mensajes después
|
||||
alguien contesta a algo de arriba, no hay forma de saber a qué.
|
||||
|
||||
Esta rama no cambia cómo funcionan. Le añade una cosa: **responder citando** un
|
||||
mensaje anterior.
|
||||
|
||||
---
|
||||
|
||||
## La pantalla
|
||||
|
||||

|
||||
|
||||
En escritorio el chat se abre en dos columnas: a la izquierda la ficha de la sala
|
||||
—imagen, estado **OPEN**, etiqueta **E2E**, participantes, etiquetas—, y a la derecha
|
||||
el hilo de mensajes con el formulario debajo.
|
||||
|
||||
Arriba, los filtros de siempre: ALL, MINE, RECENT, FAVORITES, OPEN, CLOSED y
|
||||
**Create Chat**.
|
||||
|
||||
---
|
||||
|
||||
## Responder citando
|
||||
Esta rama añade **una flecha en cada burbuja**.
|
||||
|
||||

|
||||
|
||||
Cada burbuja tiene una **flecha ↩**. Al pulsarla, el formulario de abajo se prepara
|
||||
para responder a ese mensaje: aparece una cita con el autor y el principio del texto,
|
||||
y una **✕** para cancelar.
|
||||
Al pulsar la **↩** de un mensaje, el formulario de abajo se prepara para responderle:
|
||||
sale una cita con el autor y el principio del texto, y una **✕** para cancelar. Al
|
||||
enviar, la respuesta lleva la cita dentro —la barra amarilla de la última burbuja—.
|
||||
|
||||
Al enviar, la respuesta sale con la cita dentro —la barra amarilla de la última
|
||||
burbuja de la captura—, así que se ve a qué contesta sin tener que buscarlo.
|
||||
---
|
||||
|
||||
### Cómo está hecho
|
||||
## Cómo está hecho, que es la parte interesante
|
||||
|
||||
Sin JavaScript en el cliente, como el resto de Oasis:
|
||||
**Sin una línea de JavaScript en el cliente.** Oasis funciona sin JS a propósito y esto
|
||||
no iba a ser la excepción:
|
||||
|
||||
1. El botón ↩ es un enlace a `?replyTo=<id>#chat-compose`.
|
||||
1. La **↩** es un enlace normal a `?replyTo=<id>#chat-compose`.
|
||||
2. El backend lee ese parámetro y se lo pasa a la vista.
|
||||
3. La vista pinta la cita sobre el formulario y añade un campo oculto `replyTo`.
|
||||
3. La vista pinta la cita sobre el formulario y mete un campo oculto `replyTo`.
|
||||
4. Al enviar, el identificador viaja con el mensaje y **se guarda dentro de él**.
|
||||
5. Al pintar el hilo, la vista arma un índice de mensajes por identificador y resuelve
|
||||
cada cita contra él.
|
||||
|
||||
Si el mensaje citado ya no está —se borró, o es más viejo que lo que se carga—, la
|
||||
burbuja sale sin cita en lugar de romperse.
|
||||
burbuja sale sin cita en vez de romperse.
|
||||
|
||||
> Este arreglo salió de probarlo, no de leer el código: el identificador **se guardaba
|
||||
> pero no se pintaba**, porque el modelo no lo copiaba al construir el mensaje. La cita
|
||||
> aparecía al escribir y desaparecía al enviar.
|
||||
|
||||
## Las imágenes suben sin metadatos
|
||||
|
||||
Antes de guardarlas se les quitan la ubicación GPS, la marca y el modelo de la cámara,
|
||||
el número de serie y la fecha. Vale para JPEG, PNG y WebP.
|
||||
|
||||
Esto en el oficial depende de la biblioteca `sharp`, y **si no está, la imagen pasa
|
||||
intacta sin avisar**. Aquí no depende de nada. Ver [Si algo va mal](Problemas).
|
||||
|
||||
---
|
||||
|
||||
## Cuándo usar cada cosa
|
||||
## Chats o Karvan
|
||||
|
||||
Son dos cosas distintas y conviene no confundirlas:
|
||||
|
||||
| | Chats | [Karvan](Karvan) |
|
||||
|---|---|---|
|
||||
| Dónde viven los mensajes | En tu registro SSB, en disco | Solo en memoria |
|
||||
| Cuánto duran | Para siempre | Hasta que vence la sala |
|
||||
| Se replican a la red | Sí | No |
|
||||
| Quién puede entrar | Miembros del chat | Quien tenga el enlace |
|
||||
| Quién entra | Miembros del chat | Quien tenga el enlace |
|
||||
| Llamadas | No | Sí |
|
||||
| Sirve para | Lo que quieres conservar | Lo que no |
|
||||
| Para qué | Lo que quieres conservar | Lo que no |
|
||||
|
|
|
|||
121
Home.md
121
Home.md
|
|
@ -1,92 +1,73 @@
|
|||
# Oasis para escritorio — rama de desarrollo experimental
|
||||
# Oasis para escritorio — qué añade esta rama
|
||||
|
||||
> # ⚠ ESTO NO ES OASIS OFICIAL
|
||||
>
|
||||
> Esta wiki documenta una **rama de desarrollo experimental** mantenida por el
|
||||
> hacklab, **sin afiliación** con el proyecto original.
|
||||
>
|
||||
> ## El Oasis oficial es el de epsylon: https://github.com/epsylon/oasis
|
||||
>
|
||||
> Si quieres **usar Oasis de verdad, instala el oficial**. Lo que se documenta aquí
|
||||
> puede romperse, cambiar de forma incompatible o desaparecer sin aviso. No está
|
||||
> auditado y no tiene garantía de ninguna clase.
|
||||
>
|
||||
> **Los fallos de esta rama se reportan aquí, nunca a epsylon.**
|
||||
> **⚠ No es Oasis oficial.** Es una rama experimental del hacklab sobre
|
||||
> [el Oasis de epsylon](https://github.com/epsylon/oasis), sin afiliación con él.
|
||||
> Si quieres usar Oasis de verdad, **instala el oficial**. Los fallos de aquí se
|
||||
> reportan aquí, nunca a epsylon. Base: **0.9.5**. Rama: `PRUEBAS`.
|
||||
|
||||
Versión base: **Oasis 0.9.5**. Rama: `PRUEBAS`.
|
||||

|
||||
|
||||
**Esta wiki solo cuenta lo que esta rama hace distinto.** Lo demás —qué es SSB, cómo
|
||||
funcionan los pubs, para qué sirve cada módulo— está en la
|
||||
[wiki del proyecto oficial](https://wiki.solarnethub.com/socialnet/overview), y no
|
||||
tiene sentido repetirlo peor.
|
||||
|
||||
La interfaz es la suya, sin tocar: el menú lateral por grupos, los mismos nombres de
|
||||
categoría, los mismos módulos.
|
||||
|
||||
---
|
||||
|
||||
## Qué añade respecto al oficial
|
||||
## Lo que no existe en el Oasis oficial
|
||||
|
||||
Dos cosas, y ninguna cambia la interfaz que ya conoces:
|
||||
| | Oficial | Esta rama |
|
||||
|---|---|---|
|
||||
| **[Salas efímeras](Karvan)** | — | Karvan: mensajes que solo viven en memoria y se autodestruyen |
|
||||
| **[Videollamadas](Llamadas)** | — | Audio y vídeo por WebRTC, probado entre dos participantes |
|
||||
| **[Varias identidades](Instalar)** | Una, en `~/.ssb` | Las que quieras, con aviso si dos comparten clave |
|
||||
| **[Respuesta citada](Chats)** | — | Responder a un mensaje concreto dentro de un chat |
|
||||
| **Metadatos de las imágenes** | Se quitan solo si está `sharp` | Se quitan siempre, sin depender de nada |
|
||||
| **Servidor STUN** | Uno de Google, por defecto | Ninguno. TURN propio si lo configuras |
|
||||
|
||||
- **[Karvan](Karvan)**, un módulo de salas efímeras con llamadas de audio y vídeo.
|
||||
- **Responder citando** en los [chats](Chats) de Oasis.
|
||||
---
|
||||
|
||||
El resto es Oasis 0.9.5 tal cual: el menú lateral por grupos del proyecto original, no
|
||||
la rejilla de hexágonos, que es de la versión para móvil.
|
||||
## Por dónde empezar
|
||||
|
||||

|
||||
|
||||
| Página | De qué va |
|
||||
| Página | Qué cuenta |
|
||||
|---|---|
|
||||
| **[Instalar](Instalar)** | Puesta en marcha, TURN y avisos antes de tocar tu `~/.ssb` |
|
||||
| **[Karvan](Karvan)** | Salas efímeras: crearlas, entrar, invitar, qué protege y qué no |
|
||||
| **[Llamadas](Llamadas)** | WebRTC sin servidores de terceros, y cómo montar un TURN propio |
|
||||
| **[Chats](Chats)** | Los chats cifrados, con respuesta citada |
|
||||
| **[Temas](Temas)** | Cómo se ve el módulo con los cuatro temas |
|
||||
| **[Diferencias con la versión de móvil](Diferencias)** | Qué cambia y por qué |
|
||||
| **[Instalar](Instalar)** | Puesta en marcha, varias identidades y avisos antes de tocar tu `~/.ssb` |
|
||||
| **[Karvan](Karvan)** | Salas efímeras: crear, invitar, cuánto viven, qué protege y qué no |
|
||||
| **[Llamadas](Llamadas)** | WebRTC sin terceros, la prueba entre dos participantes y el TURN |
|
||||
| **[Chats](Chats)** | Lo único que cambia ahí: responder citando |
|
||||
| **[Temas](Temas)** | Cómo se ve el módulo con los cuatro, y por qué el claro necesita ayuda |
|
||||
| **[Diferencias con móvil](Diferencias)** | Qué cambia respecto al repositorio hermano |
|
||||
| **[Estructura del código](Estructura)** | Dónde vive cada fichero y por qué ahí |
|
||||
| **[Si algo va mal](Problemas)** | Los fallos que han pasado de verdad, y su arreglo |
|
||||
| **[Estado](Roadmap)** | Qué funciona y qué no |
|
||||
| **[Si algo va mal](Problemas)** | Los fallos que han pasado de verdad |
|
||||
| **[Estado](Roadmap)** | Qué está probado y qué no |
|
||||
|
||||
Todas las capturas de esta wiki están tomadas de esta rama funcionando en un navegador
|
||||
real. Lo que se ve es lo que sale.
|
||||
Todas las capturas están tomadas de esta rama funcionando en un navegador real.
|
||||
|
||||
---
|
||||
|
||||
## Karvan, de un vistazo
|
||||
## Instalar, en corto
|
||||
|
||||

|
||||
|
||||
Una sala efímera: el tiempo que le queda arriba a la derecha, los botones de llamada,
|
||||
y los mensajes, que **solo viven en la memoria del proceso**. Al vencer el plazo
|
||||
desaparece todo. Explicado en detalle en **[Karvan](Karvan)**.
|
||||
|
||||
---
|
||||
|
||||
## Relación con la versión para móvil
|
||||
|
||||
Hay un repositorio hermano,
|
||||
**[OASIS_MOBILE](https://gitea.laenre.net/hacklab/OASIS_MOBILE)**, con la versión de
|
||||
Android: misma base y mismo módulo Karvan, pero con una interfaz distinta pensada para
|
||||
el pulgar.
|
||||
|
||||
El código de Karvan es el mismo en ambos. Lo que cambia es el enganche: aquí un enlace
|
||||
en el menú lateral siguiendo el patrón del proyecto original, allí una rejilla de
|
||||
hexágonos. Está desarrollado en **[Diferencias](Diferencias)**.
|
||||
|
||||
---
|
||||
|
||||
## Cómo está organizado el código
|
||||
|
||||
El código propio vive separado de los ficheros del proyecto original:
|
||||
|
||||
```
|
||||
src/models/karvan_model.js las salas y su ciclo de vida
|
||||
src/views/karvan_view.js la interfaz de la sala
|
||||
src/backend/fork_routes.js las rutas del módulo
|
||||
src/backend/turnCredentials.js credenciales efímeras para TURN
|
||||
src/client/public/js/karvan.js el cliente WebRTC del navegador
|
||||
src/client/assets/styles/karvan.css los estilos del módulo
|
||||
```sh
|
||||
git clone https://gitea.laenre.net/hacklab/OASIS_LINUX.git
|
||||
cd OASIS_LINUX/src/server && npm install
|
||||
cd ../.. && ./oasis.sh
|
||||
```
|
||||
|
||||
Sobre los ficheros de upstream solo hay **enganches de una línea**. El motivo:
|
||||
epsylon publica una versión cada dos a cuatro días, y así cada una se integra sin
|
||||
arrastrar nada.
|
||||
Abre `http://localhost:3000`. Los detalles, los avisos y cómo levantar una segunda
|
||||
identidad están en **[Instalar](Instalar)**.
|
||||
|
||||
---
|
||||
> ⚠ **No ejecutes esta rama y el Oasis oficial a la vez con la misma identidad.**
|
||||
> Publicar desde dos sitios con el mismo `secret` **parte tu registro y lo deja
|
||||
> inservible para siempre**. No es recuperable.
|
||||
|
||||
## Relación con la versión de móvil
|
||||
|
||||
**[OASIS_MOBILE](https://gitea.laenre.net/hacklab/OASIS_MOBILE)** es el repositorio
|
||||
hermano: misma base, mismo Karvan, pero con una interfaz propia para el pulgar y su
|
||||
propio envoltorio de Android. Está en **[Diferencias](Diferencias)**.
|
||||
|
||||
## Licencia
|
||||
|
||||
|
|
|
|||
BIN
img/00-novedades.png
Normal file
BIN
img/00-novedades.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 94 KiB |
BIN
img/04-chat.png
BIN
img/04-chat.png
Binary file not shown.
|
Before Width: | Height: | Size: 153 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 108 KiB |
Loading…
Add table
Add a link
Reference in a new issue