upstream: integrar Oasis 1.3.3

Diferencia 1.3.1 -> 1.3.3 del codigo de la APK oficial aplicada a tres
bandas encima de la rama: karma en el perfil, salas con directo, fotos
selladas, visibilidad de menciones, telefono por stream en Android y
las traducciones nuevas. Sin dependencias nuevas.

OasisMobile.css sigue siendo el del fork; del oficial solo se traen al
final las reglas de las piezas nuevas (karma, directo a pantalla
completa, salas en vivo, graphos).
This commit is contained in:
oasis-bot 2026-10-19 00:30:25 +02:00
parent bc64565e9c
commit 948b6460d9
95 changed files with 3613 additions and 1356 deletions

View file

@ -24,16 +24,9 @@ const blobUsageOnDisk = (ssbPath) => {
let printed = false;
let checkedForUpdate = false;
let pendingClearnetModules = null;
let clearnetReady = false;
let pendingWarmup = null;
let warmupReady = false;
function setClearnetModules(modules) {
pendingClearnetModules = Array.isArray(modules) ? modules : [];
clearnetReady = true;
}
function setWarmupTime(str) {
pendingWarmup = str;
warmupReady = true;
@ -81,19 +74,6 @@ async function checkForUpdate() {
await updater.getRemoteVersion();
}
function waitForClearnet(timeoutMs = 25000) {
return new Promise((resolve) => {
if (clearnetReady) return resolve(pendingClearnetModules || []);
const started = Date.now();
const tick = () => {
if (clearnetReady) return resolve(pendingClearnetModules || []);
if (Date.now() - started >= timeoutMs) return resolve(null);
setTimeout(tick, 250);
};
tick();
});
}
async function printMetadata(mode, modeColor = colors.cyan, httpPort = 3000, httpHost = 'localhost', offline = false, isPublic = false) {
if (printed) return;
printed = true;
@ -151,8 +131,6 @@ async function printMetadata(mode, modeColor = colors.cyan, httpPort = 3000, htt
console.log(`- Media cache limit: ${cacheMb > 0 ? formatMB(cacheMb * 1024 * 1024) : 'Unlimited'}`);
console.log(`- Current usage: ${formatMB(cacheUsage.bytes, 1)} · ${cacheUsage.files} files`);
console.log(`- LAN Broadcasting (UDP): ${localDiscovery ? 'enabled' : 'disabled'}`);
const clearnetModules = await waitForClearnet();
const clearnetStatus = (clearnetModules && clearnetModules.length > 0) ? clearnetModules.join(', ') : 'disabled';
const multiverse = (() => {
if ((oasisCfg.modules || {}).fediverseMod === 'off') return [];
try {
@ -164,12 +142,10 @@ async function printMetadata(mode, modeColor = colors.cyan, httpPort = 3000, htt
].filter(Boolean);
} catch (_) { return []; }
})();
console.log(`- Internet Broadcasting:`);
console.log(` - Clearnet: ${clearnetStatus}`);
console.log(` - Multiverse: ${multiverse.length ? multiverse.join(', ') : 'disabled'}`);
console.log(`- Multiverse: ${multiverse.length ? multiverse.join(', ') : 'disabled'}`);
if (hasHttp) {
const en = (() => { try { return require('../client/assets/translations/i18n').en || {}; } catch (_) { return {}; } })();
const uxNames = { blocks: en.uxModeMenus, ainav: en.uxModeAINav, chats: en.uxModeChats, feed: en.uxModeFeed, phone: en.phoneTitle };
const uxNames = { blocks: en.uxModeMenus, ainav: en.uxModeAINav, chats: en.uxModeChats, feed: en.uxModeFeed, phone: en.phoneTitle, rooms: en.roomsTitle };
const wishNames = { whole: en.settingsWishWhole, mutuals: en.settingsWishMutuals, 'only-lan': en.settingsWishOnlyLan, local: en.settingsWishLocal };
const workflow = (() => {
try {
@ -202,7 +178,6 @@ async function printMetadata(mode, modeColor = colors.cyan, httpPort = 3000, htt
module.exports = {
printMetadata,
setClearnetModules,
setWarmupTime,
colors
};