upstream: integrar Oasis 1.3.1

Base del merge a tres bandas: git 0.9.5 de epsylon, esta rama y el src de la
APK oficial 1.3.1 (la variante movil: OASIS_MOBILE, regex sin \p{}, audio y
video de Android). Corre en el mismo nodejs-mobile 18.20.4 que ya usabamos.

Se conserva de la rama: Karvan, identidades y multicuenta, topbar y barra
inferior, borrado de EXIF sin sharp, filtro hot del foro, RTC sin STUN y los
modulos apagados en movil (wallet, banking, torrents).

Se toma de upstream lo que ya hace de serie: respuesta citada en chats, ssb-lan
en movil, configuracion en ~/.ssb/oasis (sobrevive a reinstalar el backend).
El asistente de bienvenida deja elegir workflow tambien en movil.
This commit is contained in:
oasis-bot 2026-10-18 02:52:17 +02:00
parent 8d838dd8b1
commit c332afd6ea
265 changed files with 80970 additions and 29167 deletions

View file

@ -1,7 +1,7 @@
const { div, h2, p, section, form, input, label, select, option, button, table, tr, td, hr, ul, li, a, br } = require("../server/node_modules/hyperaxe");
const { template, i18n, userLink} = require('./main_views');
const { template, i18n, userLink, renderDocumentActions } = require('./main_views');
exports.pixeliaView = (pixelArt, errorMessage) => {
exports.pixeliaView = (pixelArt) => {
const title = i18n.pixeliaTitle;
const description = i18n.pixeliaDescription;
const gridWidth = 50;
@ -18,7 +18,7 @@ exports.pixeliaView = (pixelArt, errorMessage) => {
return td(
{
id: cellId,
title: pixel ? `By: ${pixel.author}` : "",
title: pixel ? `${pixel.author}` : "",
class: `pixel-cell ${colorClass}`
},
""
@ -33,7 +33,7 @@ exports.pixeliaView = (pixelArt, errorMessage) => {
return template(
title,
section(
div({ class: "tags-header" },
div({ class: "tags-header module-header-line" },
h2(title),
p(description)
)
@ -64,10 +64,9 @@ exports.pixeliaView = (pixelArt, errorMessage) => {
option({ value: "#d3d3d3", class: "pixelia-swatch pixelia-swatch-d3d3d3" }, "Light Grey"),
option({ value: "#ff6347", class: "pixelia-swatch pixelia-swatch-ff6347" }, "Tomato")
),
button({ type: "submit" }, i18n.paintButton)
button({ type: "submit", class: "filter-btn" }, String(i18n.paintButton).toUpperCase())
)
),
errorMessage ? div({ class: "error-message" }, errorMessage) : null,
div({ class: "total-pixels" },
h2(`${i18n.totalPixels}: ${pixelArt.length}`)
)
@ -76,6 +75,7 @@ exports.pixeliaView = (pixelArt, errorMessage) => {
section(
div({ class: "main_content" },
div({ class: "pixelia-grid-wrap" }, grid),
pixelArt.length > 0 ? renderDocumentActions('pixelia', null) : null,
pixelArt.length > 0 ?
div({ class: "contributors" },
h2(i18n.contributorsTitle),