Merge pull request #1059 from Materialious/update/1.10.3

Update/1.10.3
This commit is contained in:
Ward
2025-08-11 20:11:21 +12:00
committed by GitHub
23 changed files with 318 additions and 103 deletions
@@ -0,0 +1,25 @@
A Materialious egy kliens az <a href='https://github.com/iv-org'>Invidious</a> számára, amely anyagszerű tervezést (material design) használ.
Lehetővé teszi a videók böngészését és megtekintését, a lejátszási listák kezelését és a csatornák használatát.
<b>Funkciók:</b>
<ul>
<li>Invidious társalkalmazás támogatása</li>
<li>Invidious API kiterjesztett integrációja</li>
<li>YouTube.js visszaállítás, ha az Invidious nem tudja betölteni a videókat számítógépen és Androidon</li>
<li>Támogatja a tanúsítvány-ellenőrzés letiltását homelab felhasználók számára</li>
<li>Szinkronizálhatja a megtekintési előrehaladást az Invidious munkamenetek között</li>
<li>Szinkronizált csoportok</li>
<li>Beépített Sponsorblock</li>
<li>Beépített YouTube dislike visszaállítás</li>
<li>Beépített DeArrow (helyi feldolgozási visszaállítással)</li>
<li>Nincsenek hirdetések</li>
<li>Nincs nyomkövetés</li>
<li>Világos/ Sötét témák</li>
<li>Egyedi színválasztási témák</li>
<li>Integrálódik az Invidious feliratkozásokkal, megtekintési előzményekkel és egyebekkel</li>
<li>Élő közvetítések támogatása</li>
<li>Dash támogatása</li>
<li>Fejezetek</li>
<li>Csak hang mód</li>
<li>Lejátszási listák</li>
</ul>
@@ -0,0 +1 @@
Modern és anyagszerű megjelenés az Invidious előtétprogramhoz
+2 -1
View File
@@ -14,4 +14,5 @@ vite.config.js.timestamp-*
vite.config.ts.timestamp-*
resources/android/**/*
android/release.jks*
.electron-cache
.electron-cache
**/.settings/**
+2 -2
View File
@@ -4,10 +4,10 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2025-08-06T02:18:44.007250537Z">
<DropdownSelection timestamp="2025-08-11T07:20:32.362551415Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="LocalEmulator" identifier="path=/home/ward/.android/avd/Television_4K.avd" />
<DeviceId pluginId="LocalEmulator" identifier="path=/home/ward/.android/avd/Pixel_7_Pro.avd" />
</handle>
</Target>
</DropdownSelection>
+2 -2
View File
@@ -7,8 +7,8 @@ android {
applicationId "us.materialio.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 143
versionName "1.10.2"
versionCode 144
versionName "1.10.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@@ -9,12 +9,11 @@ android {
apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-community-safe-area')
implementation project(':capacitor-app')
implementation project(':capacitor-browser')
implementation project(':capacitor-clipboard')
implementation project(':capacitor-screen-orientation')
implementation project(':capacitor-status-bar')
implementation project(':hugotomazi-capacitor-navigation-bar')
implementation project(':capacitor-nodejs')
}
@@ -2,6 +2,9 @@
include ':capacitor-android'
project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
include ':capacitor-community-safe-area'
project(':capacitor-community-safe-area').projectDir = new File('../node_modules/@capacitor-community/safe-area/android')
include ':capacitor-app'
project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android')
@@ -14,11 +17,5 @@ project(':capacitor-clipboard').projectDir = new File('../node_modules/@capacito
include ':capacitor-screen-orientation'
project(':capacitor-screen-orientation').projectDir = new File('../node_modules/@capacitor/screen-orientation/android')
include ':capacitor-status-bar'
project(':capacitor-status-bar').projectDir = new File('../node_modules/@capacitor/status-bar/android')
include ':hugotomazi-capacitor-navigation-bar'
project(':hugotomazi-capacitor-navigation-bar').projectDir = new File('../node_modules/@hugotomazi/capacitor-navigation-bar/android')
include ':capacitor-nodejs'
project(':capacitor-nodejs').projectDir = new File('../node_modules/capacitor-nodejs/android')
@@ -60,7 +60,11 @@
<release version="1.10.2" date="2025-8-06">
<release version="1.10.3" date="2025-8-11">
<url>https://github.com/Materialious/Materialious/releases/tag/1.10.3</url>
</release>
<release version="1.10.2" date="2025-8-06">
<url>https://github.com/Materialious/Materialious/releases/tag/1.10.2</url>
</release>
<release version="1.10.1" date="2025-8-06">
+13 -13
View File
@@ -1,12 +1,12 @@
{
"name": "Materialious",
"version": "1.10.2",
"version": "1.10.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "Materialious",
"version": "1.10.2",
"version": "1.10.3",
"license": "MIT",
"dependencies": {
"@capacitor-community/electron": "^5.0.0",
@@ -22,10 +22,10 @@
"jsonfile": "^6.1.0"
},
"devDependencies": {
"electron": "^37.2.3",
"electron": "^37.2.5",
"electron-builder": "^26.0.12",
"electron-rebuild": "^3.2.9",
"typescript": "^5.7.3"
"typescript": "^5.9.2"
}
},
"node_modules/@asamuzakjp/css-color": {
@@ -2492,9 +2492,9 @@
}
},
"node_modules/electron": {
"version": "37.2.3",
"resolved": "https://registry.npmjs.org/electron/-/electron-37.2.3.tgz",
"integrity": "sha512-JRKKn8cRDXDfkC+oWISbYs+c+L6RA776JM0NiB9bn2yV8H/LnBUlVPzKKfsXgrUIokN4YcbCw694vfAdEJwtGw==",
"version": "37.2.5",
"resolved": "https://registry.npmjs.org/electron/-/electron-37.2.5.tgz",
"integrity": "sha512-719ZqEp43rj6xDJMICm4CIXl8keFFgvVNO9Ix6OtjNjrh9HtYlP/1WiYeRohnXj06aLyGx5NCzrHbG7j3BxO9w==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -5605,9 +5605,9 @@
"license": "MIT"
},
"node_modules/tmp": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
"integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz",
"integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5686,9 +5686,9 @@
}
},
"node_modules/typescript": {
"version": "5.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
"version": "5.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
"integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
"dev": true,
"license": "Apache-2.0",
"bin": {
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "Materialious",
"version": "1.10.2",
"version": "1.10.3",
"description": "Modern material design for Invidious.",
"author": {
"name": "Ward Pearce",
@@ -35,10 +35,10 @@
"jsonfile": "^6.1.0"
},
"devDependencies": {
"electron": "^37.2.3",
"electron": "^37.2.5",
"electron-builder": "^26.0.12",
"electron-rebuild": "^3.2.9",
"typescript": "^5.7.3"
"typescript": "^5.9.2"
},
"keywords": [
"capacitor",
+12 -22
View File
@@ -1,23 +1,22 @@
{
"name": "materialious",
"version": "1.10.1",
"version": "1.10.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "materialious",
"version": "1.10.1",
"version": "1.10.3",
"hasInstallScript": true,
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
"@capacitor-community/safe-area": "^7.0.0-alpha.1",
"@capacitor/android": "^7.0.0",
"@capacitor/app": "^7.0.0",
"@capacitor/browser": "^7.0.0",
"@capacitor/clipboard": "^7.0.0",
"@capacitor/core": "^7.0.0",
"@capacitor/screen-orientation": "^7.0.0",
"@capacitor/status-bar": "^7.0.0",
"@hugotomazi/capacitor-navigation-bar": "https://github.com/NYPL/capacitor-navigation-bar/releases/download/v4.1.0-fix.1/hugotomazi-capacitor-navigation-bar-4.1.0-fix.1.tgz",
"beercss": "^3.8.0",
"bgutils-js": "^3.2.0",
"capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.9/capacitor-nodejs.tgz",
@@ -1777,6 +1776,15 @@
"ora": "^5.4.1"
}
},
"node_modules/@capacitor-community/safe-area": {
"version": "7.0.0-alpha.1",
"resolved": "https://registry.npmjs.org/@capacitor-community/safe-area/-/safe-area-7.0.0-alpha.1.tgz",
"integrity": "sha512-N6ktkRiofqrt+N/vQzh4jcWY8IzJ4TVw1tKAPssvbddWFTyZzXzSdBeX/l/nracJF0PZqmLdA7JYTBfnOxXQYw==",
"license": "MIT",
"peerDependencies": {
"@capacitor/core": ">=7.0.0"
}
},
"node_modules/@capacitor/android": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.4.2.tgz",
@@ -2146,15 +2154,6 @@
"@capacitor/core": ">=7.0.0"
}
},
"node_modules/@capacitor/status-bar": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-7.0.2.tgz",
"integrity": "sha512-fYYkkdzCbQV+MjZVnaQTFl5I4bddnFW8ZrPVxDjNoGVPTUG7H58Ij1+NcuNxHLXjJvZOoZeYJ3w3I16Wb2zssw==",
"license": "MIT",
"peerDependencies": {
"@capacitor/core": ">=7.0.0"
}
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
@@ -2300,15 +2299,6 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@hugotomazi/capacitor-navigation-bar": {
"version": "4.1.0-fix.1",
"resolved": "https://github.com/NYPL/capacitor-navigation-bar/releases/download/v4.1.0-fix.1/hugotomazi-capacitor-navigation-bar-4.1.0-fix.1.tgz",
"integrity": "sha512-m3J5yxI4PFFZSf3E4V3g/ohqOEPFqCvtKmhDAsWW0ielDLtdJ2gM8RmO7a5jpsJJJHIYs4ZCydm9AZe9d9IBQw==",
"license": "MIT",
"peerDependencies": {
"@capacitor/core": ">=7.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+3 -4
View File
@@ -1,6 +1,6 @@
{
"name": "materialious",
"version": "1.10.2",
"version": "1.10.3",
"private": true,
"scripts": {
"dev": "vite dev",
@@ -42,14 +42,13 @@
"type": "module",
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
"@capacitor-community/safe-area": "^7.0.0-alpha.1",
"@capacitor/android": "^7.0.0",
"@capacitor/app": "^7.0.0",
"@capacitor/browser": "^7.0.0",
"@capacitor/clipboard": "^7.0.0",
"@capacitor/core": "^7.0.0",
"@capacitor/screen-orientation": "^7.0.0",
"@capacitor/status-bar": "^7.0.0",
"@hugotomazi/capacitor-navigation-bar": "https://github.com/NYPL/capacitor-navigation-bar/releases/download/v4.1.0-fix.1/hugotomazi-capacitor-navigation-bar-4.1.0-fix.1.tgz",
"beercss": "^3.8.0",
"bgutils-js": "^3.2.0",
"capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.9/capacitor-nodejs.tgz",
@@ -70,4 +69,4 @@
"svelte-persisted-store": "^0.12.0",
"youtubei.js": "^15.0.0"
}
}
}
@@ -4,10 +4,9 @@
import { getBestThumbnail } from '$lib/images';
import { padTime, videoLength } from '$lib/numbers';
import { type PhasedDescription } from '$lib/timestamps';
import { SafeArea } from '@capacitor-community/safe-area';
import { Capacitor } from '@capacitor/core';
import { ScreenOrientation, type ScreenOrientationResult } from '@capacitor/screen-orientation';
import { StatusBar, Style } from '@capacitor/status-bar';
import { NavigationBar } from '@hugotomazi/capacitor-navigation-bar';
import { error, type Page } from '@sveltejs/kit';
import { HttpFetchPlugin } from '$lib/sabr/shakaHttpPlugin';
import ui from 'beercss';
@@ -223,11 +222,15 @@
if (isFullScreen) {
// Ensure bar color is black while in fullscreen
await StatusBar.setBackgroundColor({ color: '#000000' });
await NavigationBar.setColor({
color: '#000000'
await SafeArea.enable({
config: {
customColorsForSystemBars: true,
statusBarColor: '#00000000',
statusBarContent: 'light',
navigationBarColor: '#00000000',
navigationBarContent: 'light'
}
});
await StatusBar.setStyle({ style: Style.Dark });
} else {
await setStatusBarColor();
}
@@ -733,7 +736,6 @@
onDestroy(async () => {
if (Capacitor.getPlatform() === 'android' && !$isAndroidTvStore) {
if (originalOrigination) {
await StatusBar.show();
await ScreenOrientation.lock({
orientation: originalOrigination.type
});
@@ -148,7 +148,7 @@
<div class="max">
<div>{$_('layout.allowInsecureRequests')}</div>
</div>
<label class="switch">
<label class="switch" tabindex="0">
<input
type="checkbox"
bind:checked={$interfaceAllowInsecureRequests}
@@ -223,19 +223,19 @@
data-sveltekit-preload-data="off"
href={watchUrl.toString()}
>
<span class="bold">{letterCase(truncate(video.title.trimEnd(), sideways ? 40 : 80))}</span>
<span class="bold">{letterCase(video.title.trimEnd())}</span>
</a>
<div>
<a tabindex="-1" class:author={!sideways} href={`/channel/${video.authorId}`}
>{video.author}</a
>
{#if !('publishedText' in video) && 'viewCountText' in video}
<span style="margin-top: 1em;">
• {video.viewCountText}
{$_('views')}
</span>
{/if}
>{video.author}
{#if !('publishedText' in video) && 'viewCountText' in video}
<span>
&nbsp;• {video.viewCountText}
{$_('views')}
</span>
{/if}
</a>
{#if 'publishedText' in video}
<div class="max">
+19 -6
View File
@@ -10,13 +10,31 @@
margin: 1em 0;
}
nav.top {
padding-top: calc(var(--safe-area-inset-top) + 1rem) !important;
height: 100px;
padding-bottom: 1em;
}
nav.bottom {
padding-bottom: var(--safe-area-inset-bottom) !important;
}
main.root {
padding-top: 6em !important;
padding-top: 7em !important;
padding-bottom: 5em !important;
max-height: 100vh;
overflow-y: auto;
}
nav.left {
padding-top: 2em;
}
dialog {
padding-top: calc(var(--safe-area-inset-top) + 1rem) !important;
}
.root-not-tv {
padding-left: 7em !important;
}
@@ -63,10 +81,5 @@ button.row:hover {
dialog.right {
width: 100% !important;
border-radius: 0 !important;
padding-top: 2em;
}
nav.top {
height: 110px;
}
}
+4 -3
View File
@@ -20,7 +20,8 @@ const resources: Record<string, () => Promise<Record<string, any>>> = {
'pt-BR': () => import('./locales/pt-BR.json'),
lv: () => import('./locales/lv.json'),
ja: () => import('./locales/ja.json'),
mi: () => import('./locales/mi.json')
mi: () => import('./locales/mi.json'),
'hu-HU': () => import('./locales/hu.json')
};
function getUserLocale(): string {
@@ -30,9 +31,9 @@ function getUserLocale(): string {
return lang;
}
// In case of a regional code (e.g. 'de-CH'), fallback to the more general lang
const baseLang = lang.split('-')[0]
const baseLang = lang.split('-')[0];
if (resources[baseLang]) {
return baseLang
return baseLang;
}
}
}
+189
View File
@@ -0,0 +1,189 @@
{
"create": "Létrehozás",
"searchPlaceholder": "Keresés",
"deleteAllHistory": "Összes előzmény törlése",
"disabled": "Letiltva",
"isUpcoming": "A videó még nem tekinthető meg.",
"copyUrl": "Webcím másolása",
"loadMore": "Továbbiak betöltése",
"views": "megtekintések",
"login": "Bejelentkezés",
"recommendedVideos": "Ajánlott videók",
"playlistVideos": "Videók lejátszási listázása",
"invidiousLogin": "Jelentkezzen be az Invidious-fiókjával",
"comments": "hozzászólások",
"reply": "válasz",
"replies": "válaszok",
"region": "Régió",
"noResult": "Nincs találat",
"channels": "csatornák",
"noCaptionData": "A feliratok nem tartalmaznak adatokat.",
"selectLang": "Nyelv kiválasztása",
"hideVideo": "Videó elrejtése",
"syncParty": {
"userLeft": "A felhasználó elhagyta a nézőcsoportot.",
"userOnPrivatePage": "A felhasználó jelenleg egy privát oldalt néz, a szinkronizálás hamarosan folytatódik.",
"userJoined": "A felhasználó csatlakozott a nézőcsoporthoz."
},
"videoTabs": {
"shorts": "Rövidek",
"streams": "Közvetítések",
"all": "Összes",
"playlists": "Lejátszási listák",
"videos": "Videók",
"channels": "Csatornák"
},
"layout": {
"sponsors": {
"disableToast": "Toast letiltása",
"sponsor": "Szponzor",
"disableTimeline": "Szegmensek letiltása az idővonalon",
"Catagories": "Kategóriák",
"unpaidSelfPromotion": "Nem fizetett/önreklámozás",
"interactionReminder": "Interakciós emlékeztető (Feliratkozás)",
"intermissionIntroAnimation": "Szünet/bevezető animáció",
"credits": "Végképernyő/köszönet",
"preViewRecapHook": "Bevezető/összegzés/figyelemfelketés",
"tangentJokes": "Kitöltő mellékvágányok/poénok"
},
"syncPartyWarning": "Vegye figyelembe, hogy IP-címe látható lesz az Ön által meghívott felhasználók számára.",
"expandDescription": "Leírás kibontása alapértelmezetten",
"interface": "Kezelőfelület",
"star": "Csillagozás a Githubon!",
"syncParty": "Csoport szinkronizálása",
"startSyncParty": "Csoport szinkronizációjának indítása",
"endSyncParty": "Csoport szinkornizációjának megállítása",
"notifications": "Értesítések",
"noNewNotifications": "Nincs új értesítés itt",
"settings": "Beállítások",
"login": "Bejelentkezés",
"customize": "Személyre szabás",
"lowBandwidthMode": "Alacsony adatforgalmú mód",
"searchHistory": "Előzmények keresése",
"theme": {
"theme": "Téma",
"darkMode": "Sötét mód",
"lightMode": "Világos mód",
"AmoledTheme": "Amoled téma",
"color": "Szín"
},
"searchSuggestions": "Keresési javaslatok",
"previewVideoOnHover": "Videó előnézete az egérmutatóval",
"expandChapters": "Fejezetek kibontása alapértelmezetten",
"expandComments": "Hozzászólások kibontása alapértelmezetten",
"allowInsecureRequests": "Nem biztonságos kérések engedélyezése",
"disableAutoUpdate": "Automatikus frissítések letiltása",
"dataPreferences": {
"dataPreferences": "Adatbeállítások",
"content": "Szeretne feliratkozásokat importálni/exportálni, jelszót módosítani vagy fiókot törölni? Kattintson ide, és görgessen az oldal aljára."
},
"player": {
"title": "Lejátszó",
"autoPlay": "Videók automatikus lejátszása",
"alwaysLoopVideo": "Mindig ismételje a videót",
"listenByDefault": "Hallgatás alapértelmezetten",
"ccByDefault": "Feliratok bekapcsolása alapértelmezetten",
"autoPlayNextByDefault": "Következő lejátszása alapértelmezetten",
"miniPlayer": "Minilejátszó",
"proxyVideos": "Videók proxyzása",
"backgroundPlay": "Hang lejátszása a háttérben",
"dash": "Dash",
"silenceSkipper": "Csend kihagyása (Kísérleti)",
"youtubeJsAlways": "Mindig használja",
"lockOrientation": "Képarányhoz rögzített tájolás",
"defaultPlaybackSpeed": "Alapértelmezett lejátszási sebesség",
"playerStatistics": "Lejátszási statisztikák megjelenítése alapértelmezetten",
"savePlaybackPosition": "Lejátszási pozíció mentése",
"localVideoFallback": "Helyi videó visszatérés",
"theatreModeByDefault": "Szélesvásznú mód alapértelmezetten",
"youtubeJsFallback": "Helyi videó visszatérés feldolgozása"
},
"bookmarklet": "Bookmarklet",
"instanceUrl": "Példány webcíme",
"displayThumbnailAvatars": "Profilképek (Lassú)",
"deArrow": {
"title": "DeArrow",
"thumbnailInstanceUrl": "Példány borítóképének webcíme",
"titleOnly": "Csak cím"
},
"logout": "Kijelentkezés",
"companionUrl": "Kiegészítő webcím"
},
"enabled": "Engedélyezve",
"donate": "Adományozás",
"hideReplies": "Válaszok elrejtése",
"defaultPage": "Alapértelmezett oldal",
"player": {
"youtubeJsFallBack": "Helyi videó visszatérés van használatban",
"preferredQuality": "Előnyben részesített minőség",
"share": {
"includeTimestamp": "Időbélyeggel ellátott",
"title": "Megosztás",
"materialiousLink": "Materialious-hivatkozás megosztása",
"youtubeLink": "Youtube-hivatkozás másolása",
"invidiousRedirect": "Invidious átirányítási hivatkozás másolása"
},
"audioOnly": "Csak hang",
"theatreMode": "Szélesvásznú mód",
"pauseTimer": "Időzítő szünteltetése",
"pauseVideoIn": "Videó szünteltetése ekkor ",
"chapters": "Fejezetek",
"download": "Letöltés",
"downloadSteps": {
"merging": "Videó és hang összefűzése",
"video": "Videó letöltése",
"audio": "Hang letöltése",
"classWorker": "FFmpeg class worker letöltése",
"core": "FFmpeg core letöltése",
"wasm": "FFmpeg wasm letöltése",
"worker": "FFmpeg worker letöltése",
"ffmpeg": "Az FFmpeg könyvtár és komponensek letöltése"
},
"noPlaylists": "Nincsenek lejátszási listák",
"unableToLoadComments": "Nem lehet betölteni a hozzászólásokat",
"addToPlaylist": "Hozzáadás a lejátszási listához",
"defaultLanguage": "Alapértelmezett nyelv",
"enableYoutubejsTemp": "Helyi videó visszatérés használata egyszer",
"enableYoutubejsPerm": "Mindig engedélyezze a helyi videó visszatérést",
"retryText": "A videó betöltése siketelen, hogyan szeretné folytatni?",
"youtubeJsLoading": "A videó betöltése sikertelen, újraprobálkozás a helyi videó visszatéréssel."
},
"title": "Cím",
"subscriptions": {
"manageSubscriptions": "Feliratkozások kezelése"
},
"skipping": "Kihagyás",
"language": "Nyelv",
"videos": "videók",
"playlist": {
"createPlaylist": "Lejátszási lista létrehozása",
"public": "Nyilvános",
"unlisted": "Nem listázott",
"private": "Privát",
"playVideos": "Videók lejátszása",
"loopPlaylist": "Lejátszási lista folyamatos lejátszása",
"shuffleVideos": "Videók lejátszása keverten"
},
"thumbnail": {
"live": "ÉLŐ",
"failedToLoadImage": "Kép betöltése sikertelen"
},
"pages": {
"home": "Kezdőoldal",
"trending": "Felkapott",
"subscriptions": "Feliratkozások",
"history": "Előzmények",
"playlists": "Lejátszási listák"
},
"subscribers": "feliratkozók",
"loginRequired": "Bejelentkezés szükséges",
"premium": "A prémium YouTube-tartalmak nem tekinthetők meg a Materialiouson.",
"invalidInstance": "Ellenőrizze a webcímet. Ha helyes, akkor a példány leállhatott, vagy nem támogatja a harmadik féltől származó klienseket.",
"cancel": "Mégse",
"delete": "Törlés",
"transcript": "Leirat",
"letterCase": "Címek nagybetűs írásmódja",
"unsubscribe": "Leiratkozás",
"subscribe": "Feliratkozás",
"invidiousBlockWarning": "Az Invidious jelenleg le van tiltva a Google által. Ha ebben az esetben a videók nem töltődnek be, akkor használja ezt a példányt a Materialious-on {android} vagy {desktop} platformon, hogy helyi videó visszatéréssel megkerülje ezt a problémát."
}
@@ -121,6 +121,8 @@ export async function patchYoutubeJs(videoId: string): Promise<VideoPlay> {
return;
}
console.log(recommended);
recommendedVideos.push({
videoThumbnails: (recommended?.content_image?.image as Thumbnail[]) || [],
videoId: recommended?.content_id || '',
+11 -19
View File
@@ -1,9 +1,8 @@
import { Capacitor } from '@capacitor/core';
import { StatusBar, Style } from '@capacitor/status-bar';
import { NavigationBar } from '@hugotomazi/capacitor-navigation-bar';
import ui from 'beercss';
import { tick } from 'svelte';
import { get } from 'svelte/store';
import { SafeArea } from '@capacitor-community/safe-area';
import { darkModeStore, interfaceAmoledTheme } from './store';
export async function getDynamicTheme(mode?: string): Promise<Record<string, string>> {
@@ -27,24 +26,17 @@ export async function setStatusBarColor() {
? '#000000'
: (await getDynamicTheme())['--surface-container'];
await StatusBar.setBackgroundColor({
color: surfaceColor
const contentColor = !get(darkModeStore) ? 'dark' : 'light';
await SafeArea.enable({
config: {
customColorsForSystemBars: true,
statusBarColor: surfaceColor,
statusBarContent: contentColor,
navigationBarColor: surfaceColor,
navigationBarContent: contentColor
}
});
await NavigationBar.setColor({
color: surfaceColor,
darkButtons: !get(darkModeStore)
});
await NavigationBar.show();
if (get(darkModeStore)) {
await StatusBar.setStyle({ style: Style.Dark });
} else {
await StatusBar.setStyle({ style: Style.Light });
}
await StatusBar.setOverlaysWebView({ overlay: false });
}
}
@@ -1,5 +1,6 @@
<script lang="ts">
import { goto } from '$app/navigation';
import { navigating, page } from '$app/stores';
import '$lib/android/http/androidRequests';
import colorTheme, { convertToHexColorCode } from '$lib/android/plugins/colorTheme';
@@ -102,7 +102,6 @@
<article id="shown-info" transition:fade>
<h5>{letterCase(data.video.title)}</h5>
<Author bind:subscribed video={data.video} />
<div class="space"></div>
<LikesDislikes video={data.video} returnYTDislikes={data.streamed.returnYTDislikes} />
<article class="border">
<Description video={data.video} description={data.content.description} />
+1 -1
View File
@@ -3,7 +3,7 @@ import os
import re
from datetime import datetime
LATEST_VERSION = "1.10.2"
LATEST_VERSION = "1.10.3"
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")