From 80ee8244244176b466e61f1457c5b9d757cba47b Mon Sep 17 00:00:00 2001 From: WardPearce Date: Mon, 26 Jan 2026 02:25:23 +1300 Subject: [PATCH 1/2] 1.13.9 --- materialious/android/app/build.gradle | 4 ++-- materialious/electron/materialious.metainfo.xml | 6 +++++- materialious/electron/package.json | 2 +- materialious/package.json | 2 +- materialious/src/lib/api/apiExtended.ts | 14 ++++++++------ materialious/src/lib/api/index.ts | 4 ++-- materialious/src/lib/api/model.ts | 2 +- materialious/src/lib/components/Thumbnail.svelte | 4 ++-- update_versions.py | 2 +- 9 files changed, 23 insertions(+), 17 deletions(-) diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index 5b8a9d61..bc6aa5b7 100644 --- a/materialious/android/app/build.gradle +++ b/materialious/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "us.materialio.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 192 - versionName "1.13.8" + versionCode 193 + versionName "1.13.9" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/materialious/electron/materialious.metainfo.xml b/materialious/electron/materialious.metainfo.xml index 82418c35..af54b8dc 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -91,7 +91,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.13.9 + + https://github.com/Materialious/Materialious/releases/tag/1.13.8 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 2e880bfa..c467bbd5 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.13.8", + "version": "1.13.9", "description": "Modern material design for Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index 07d6fa97..716b8d52 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.13.8", + "version": "1.13.9", "private": true, "scripts": { "dev": "npm run patch:github && vite dev", diff --git a/materialious/src/lib/api/apiExtended.ts b/materialious/src/lib/api/apiExtended.ts index bc50d145..77d73063 100644 --- a/materialious/src/lib/api/apiExtended.ts +++ b/materialious/src/lib/api/apiExtended.ts @@ -1,8 +1,8 @@ -import type { SynciousProgressModel } from './model'; +import type { ApiExntendedProgressModel } from './model'; import { getVideoProgress } from '.'; const videoIds: string[] = []; -const pendingResolves = new Map void>(); +const pendingResolves = new Map void>(); let timeout: ReturnType | null = null; const DEBOUNCE_MS = 1000; @@ -15,10 +15,10 @@ async function processBatches(): Promise { batches.push(videoIds.splice(0, BATCH_SIZE)); } - const results: SynciousProgressModel[] = []; + const results: ApiExntendedProgressModel[] = []; for (const batch of batches) { - const res: SynciousProgressModel[] = await getVideoProgress(batch.join(',')); + const res: ApiExntendedProgressModel[] = await getVideoProgress(batch.join(',')); results.push(...res); // Resolve pending promises for this batch @@ -33,10 +33,12 @@ async function processBatches(): Promise { } } -export function queueSyncious(videoId: string): Promise { +export function queueGetWatchProgress( + videoId: string +): Promise { videoIds.push(videoId); - const promise = new Promise((resolve) => { + const promise = new Promise((resolve) => { pendingResolves.set(videoId, resolve); }); diff --git a/materialious/src/lib/api/index.ts b/materialious/src/lib/api/index.ts index b6d067c1..96e3d8c6 100644 --- a/materialious/src/lib/api/index.ts +++ b/materialious/src/lib/api/index.ts @@ -27,7 +27,7 @@ import type { ReturnYTDislikes, SearchSuggestion, Subscription, - SynciousProgressModel, + ApiExntendedProgressModel, Video, VideoPlay } from './model'; @@ -447,7 +447,7 @@ function buildApiExtendedAuthHeaders(): Record> { export async function getVideoProgress( videoId: string, fetchOptions: RequestInit = {} -): Promise { +): Promise { const resp = await fetchErrorHandle( await fetch(`${get(synciousInstanceStore)}/video/${encodeURIComponent(videoId)}`, { ...buildApiExtendedAuthHeaders(), diff --git a/materialious/src/lib/api/model.ts b/materialious/src/lib/api/model.ts index 7fca2490..e248d161 100644 --- a/materialious/src/lib/api/model.ts +++ b/materialious/src/lib/api/model.ts @@ -285,7 +285,7 @@ export interface DeArrow { videoDuration: number; } -export interface SynciousProgressModel { +export interface ApiExntendedProgressModel { time: number; video_id: string; } diff --git a/materialious/src/lib/components/Thumbnail.svelte b/materialious/src/lib/components/Thumbnail.svelte index e59b076c..3db2b316 100644 --- a/materialious/src/lib/components/Thumbnail.svelte +++ b/materialious/src/lib/components/Thumbnail.svelte @@ -22,7 +22,7 @@ synciousInstanceStore, synciousStore } from '../store'; - import { queueSyncious } from '$lib/api/apiExtended'; + import { queueGetWatchProgress } from '$lib/api/apiExtended'; interface Props { video: VideoBase | Video | Notification | PlaylistPageVideo; @@ -109,7 +109,7 @@ if (get(synciousStore) && get(synciousInstanceStore) && get(authStore)) { try { - progress = (await queueSyncious(video.videoId))?.time?.toString() ?? undefined; + progress = (await queueGetWatchProgress(video.videoId))?.time?.toString() ?? undefined; } catch { // Continue regardless of error } diff --git a/update_versions.py b/update_versions.py index b667f52d..50b8462c 100644 --- a/update_versions.py +++ b/update_versions.py @@ -3,7 +3,7 @@ import os import re from datetime import datetime -LATEST_VERSION = "1.13.8" +LATEST_VERSION = "1.13.9" RELEASE_DATE = datetime.now().strftime("%Y-%-m-%d") # Format: YYYY-M-D WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious") From d00029941e69a99e69eb2c623ab4602839187b28 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Mon, 26 Jan 2026 02:46:46 +1300 Subject: [PATCH 2/2] PoToken generation fix --- .../.idea/deploymentTargetSelector.xml | 4 +- materialious/electron/package-lock.json | 35 +++- materialious/electron/package.json | 5 +- materialious/electron/src/index.ts | 154 +++++++++--------- materialious/electron/src/preload.ts | 4 +- materialious/src/app.d.ts | 9 +- .../src/lib/android/youtube/minter.ts | 58 +++---- materialious/src/lib/api/index.ts | 6 +- .../src/lib/{patches => api}/youtubejs.ts | 7 +- materialious/src/lib/components/Player.svelte | 4 +- .../static/localApi/ghContributors.json | 2 +- 11 files changed, 165 insertions(+), 123 deletions(-) rename materialious/src/lib/{patches => api}/youtubejs.ts (96%) diff --git a/materialious/android/.idea/deploymentTargetSelector.xml b/materialious/android/.idea/deploymentTargetSelector.xml index f9bbecc3..ef13f838 100644 --- a/materialious/android/.idea/deploymentTargetSelector.xml +++ b/materialious/android/.idea/deploymentTargetSelector.xml @@ -4,10 +4,10 @@