From bf25d3c399dd3177e81e6bc02513e5dda6f581c0 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Tue, 8 Jul 2025 11:35:55 +0000 Subject: [PATCH 01/18] Translated using Weblate (German) Currently translated at 100.0% (151 of 151 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/de/ --- materialious/src/lib/i18n/locales/de.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/materialious/src/lib/i18n/locales/de.json b/materialious/src/lib/i18n/locales/de.json index 2ab9c5cd..f57f41ee 100644 --- a/materialious/src/lib/i18n/locales/de.json +++ b/materialious/src/lib/i18n/locales/de.json @@ -2,7 +2,7 @@ "enabled": "Aktiviert", "copyUrl": "URL kopieren", "loadMore": "Mehr laden", - "views": "Ansichten", + "views": "Aufrufe", "invidiousBlockWarning": "Invidious wird derzeit von Google blockiert. Wenn Videos für diese Instanz nicht geladen werden, verwende diese Instanz bitte auf Materialious auf {android} oder {desktop}, um dies mit lokalem Video-Fallback zu umgehen.", "videos": "Videos", "cancel": "Abbrechen", @@ -34,7 +34,7 @@ "videoTabs": { "all": "Alle", "videos": "Videos", - "playlists": "Wiedergabeliste", + "playlists": "Wiedergabelisten", "channels": "Kanäle", "shorts": "Shorts", "streams": "Streams" @@ -63,7 +63,7 @@ "playlists": "Wiedergabelisten" }, "subscribers": "Abonnenten", - "unsubscribe": "Deabonnieren", + "unsubscribe": "Abo beenden", "loginRequired": "Anmeldung erforderlich", "player": { "audioOnly": "Nur Ton", From ed2c53764d93399f53174e65bc8c04d857bee3b9 Mon Sep 17 00:00:00 2001 From: maboroshin Date: Tue, 8 Jul 2025 16:47:25 +0000 Subject: [PATCH 02/18] Translated using Weblate (Japanese) Currently translated at 93.3% (141 of 151 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/ja/ --- materialious/src/lib/i18n/locales/ja.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/materialious/src/lib/i18n/locales/ja.json b/materialious/src/lib/i18n/locales/ja.json index 0cfaf403..9bfb3bcc 100644 --- a/materialious/src/lib/i18n/locales/ja.json +++ b/materialious/src/lib/i18n/locales/ja.json @@ -98,10 +98,10 @@ "addToPlaylist": "再生リストに追加", "defaultLanguage": "既定の言語", "retryText": "動画の読み込みに失敗。どう続けますか?", - "enableYoutubejsTemp": "一度だけ動画への代替接続で直接接続", - "enableYoutubejsPerm": "常に動画への代替接続で直接接続", - "youtubeJsFallBack": "動画への代替接続で直接接続を使用", - "youtubeJsLoading": "動画の読み込みに失敗。動画への代替接続で直接接続を試みます。" + "enableYoutubejsTemp": "一度だけ動画への直接接続に切り替え", + "enableYoutubejsPerm": "常に動画への接続エラーで直接接続を許可", + "youtubeJsFallBack": "動画接続エラー 直接接続に切替", + "youtubeJsLoading": "動画の読み込みに失敗。動画への直接接続に切り替えます。" }, "layout": { "interface": "外観", @@ -132,7 +132,7 @@ "expandComments": "最初からコメント展開", "allowInsecureRequests": "安全でないリクエストの許可", "dataPreferences": { - "content": "登録チャンネルのインポート/エクスポート、パスワード変更、アカウント削除ですか?ここをクリックし、ページの一番下までスクロール。", + "content": "登録チャンネルのインポートやエクスポート、パスワード変更、アカウント削除ですか?ここをクリックし、ページの一番下までスクロールしてください。", "dataPreferences": "データ設定" }, "player": { @@ -142,19 +142,19 @@ "savePlaybackPosition": "再生位置を記憶", "ccByDefault": "最初から字幕表示", "theatreModeByDefault": "最初からシアターモード", - "autoPlayNextByDefault": "最初から自動で次の動画", + "autoPlayNextByDefault": "最初から「次の動画を自動再生」を有効化", "miniPlayer": "ミニプレイヤー", "proxyVideos": "動画のプロキシ", "backgroundPlay": "バックグラウンドで音声を再生", "dash": "DASH", "listenByDefault": "最初から音声モード", "silenceSkipper": "無音部分を飛ばす (実験的)", - "localVideoFallback": "動画への代替接続で直接接続", + "localVideoFallback": "動画の接続エラーで直接接続に切替", "youtubeJsFallback": "失敗時に動画の代替処理を使用", "youtubeJsAlways": "常に使用", "lockOrientation": "アスペクト比と向きを固定", "defaultPlaybackSpeed": "既定の再生速度", - "playerStatistics": "最初かプレイヤー統計情報を表示" + "playerStatistics": "最初からプレイヤー統計情報を表示" }, "bookmarklet": "ブックマーク", "instanceUrl": "インスタンスのURL", @@ -175,7 +175,7 @@ "thumbnailInstanceUrl": "サムネイル用のインスタンスのURL", "titleOnly": "題名のみ" }, - "noNewNotifications": "新規の通知なし", + "noNewNotifications": "新着通知なし", "customize": "カスタマイズ" }, "subscribe": "登録", From fd0f6d4faa82ef1236d77d9da8b11f5d512f4929 Mon Sep 17 00:00:00 2001 From: maboroshin Date: Fri, 11 Jul 2025 16:30:39 +0000 Subject: [PATCH 03/18] Translated using Weblate (Japanese) Currently translated at 93.4% (143 of 153 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/ja/ --- materialious/src/lib/i18n/locales/ja.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/materialious/src/lib/i18n/locales/ja.json b/materialious/src/lib/i18n/locales/ja.json index 9bfb3bcc..b64f1b28 100644 --- a/materialious/src/lib/i18n/locales/ja.json +++ b/materialious/src/lib/i18n/locales/ja.json @@ -179,5 +179,7 @@ "customize": "カスタマイズ" }, "subscribe": "登録", - "invidiousBlockWarning": "Invidious は、現在Googleにブロックされています。このインスタンスで動画が読み込めない場合、{android} 版または {desktop} 版の Materialious でこのインスタンスを使用し、動画取得を直接行う代替接続を使ってください。" + "invidiousBlockWarning": "Invidious は、現在Googleにブロックされています。このインスタンスで動画が読み込めない場合、{android} 版または {desktop} 版の Materialious でこのインスタンスを使用し、動画取得を直接行う代替接続を使ってください。", + "reply": "返信", + "comments": "コメント" } From bab345a07bb0d7f68de8dbb75ed470b81c74115f Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Sat, 12 Jul 2025 16:29:47 +0000 Subject: [PATCH 04/18] Added translation using Weblate (Alemannic) --- materialious/src/lib/i18n/locales/gsw.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 materialious/src/lib/i18n/locales/gsw.json diff --git a/materialious/src/lib/i18n/locales/gsw.json b/materialious/src/lib/i18n/locales/gsw.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/materialious/src/lib/i18n/locales/gsw.json @@ -0,0 +1 @@ +{} From 66b013822fa013e1d72e0176897099f1c6e9de82 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Sat, 12 Jul 2025 16:42:49 +0000 Subject: [PATCH 05/18] Translated using Weblate (German) Currently translated at 100.0% (153 of 153 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/de/ --- materialious/src/lib/i18n/locales/de.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/materialious/src/lib/i18n/locales/de.json b/materialious/src/lib/i18n/locales/de.json index f57f41ee..c324edeb 100644 --- a/materialious/src/lib/i18n/locales/de.json +++ b/materialious/src/lib/i18n/locales/de.json @@ -80,7 +80,7 @@ "downloadSteps": { "merging": "Video und Audio zusammenführen", "video": "Herunterladen des Videos", - "audio": "Herunterladen der Audio", + "audio": "Herunterladen des Tons", "ffmpeg": "Herunterladen der ffmpeg-Bibliothek und -Komponenten", "classWorker": "Herunterladen des ffmpeg-Klassenarbeiters", "core": "Herunterladen der ffmpeg-Kern", @@ -91,10 +91,10 @@ "unableToLoadComments": "Laden der Kommentare fehlgeschlagen", "addToPlaylist": "Zur Wiedergabeliste hinzufügen", "youtubeJsFallBack": "Lokaler Video-Fallback wird verwendet", - "enableYoutubejsPerm": "Lokales Video-Fallback immer erlauben", + "enableYoutubejsPerm": "Lokalen Video-Fallback immer erlauben", "defaultLanguage": "Standardsprache", "preferredQuality": "Bevorzugte Qualität", - "enableYoutubejsTemp": "Nutze einmalig lokales Video-Fallback", + "enableYoutubejsTemp": "Nutze einmalig den lokalen Video-Fallback", "chapters": "Kapitel", "retryText": "Das Video konnte nicht geladen werden, wie möchtest du weiterfahren?", "youtubeJsLoading": "Das Video konnte nicht geladen werden, es wird mit lokalem Video-Fallback erneut versucht." @@ -114,7 +114,7 @@ "customize": "Anpassen", "lowBandwidthMode": "Modus für geringe Bandbreite", "theme": { - "theme": "Thema", + "theme": "Erscheinungsbild", "darkMode": "Dunkler Modus", "lightMode": "Heller Modus", "AmoledTheme": "Amoled-Thema", From 6364946f81f78f4603bc041a591f2576b6fcb258 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Sat, 12 Jul 2025 16:29:59 +0000 Subject: [PATCH 06/18] Translated using Weblate (Alemannic) Currently translated at 100.0% (153 of 153 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/gsw/ --- materialious/src/lib/i18n/locales/gsw.json | 186 ++++++++++++++++++++- 1 file changed, 185 insertions(+), 1 deletion(-) diff --git a/materialious/src/lib/i18n/locales/gsw.json b/materialious/src/lib/i18n/locales/gsw.json index 0967ef42..df5e4678 100644 --- a/materialious/src/lib/i18n/locales/gsw.json +++ b/materialious/src/lib/i18n/locales/gsw.json @@ -1 +1,185 @@ -{} +{ + "enabled": "Aktiviert", + "disabled": "Deaktiviert", + "copyUrl": "URL kopiere", + "loadMore": "Meh lade", + "views": "Uufrüef", + "login": "Aameldig", + "recommendedVideos": "Vorgschlagni Videos", + "invidiousBlockWarning": "Invidious wird grad vo Google blockiert. Wenn Videos für die Instanz nöd glade werded, nutz die Instanz bitte uf Materialious uf {android} oder {Desktop}, zum das mit em lokale Video-Fallback z umgah.", + "playlistVideos": "Widergabelischte Videos", + "thumbnail": { + "failedToLoadImage": "Lade vom Bild fehlgschlage", + "live": "LIVE" + }, + "layout": { + "companionUrl": "Companion URL", + "player": { + "silenceSkipper": "Schwiigeüberspringer (Experimentell)", + "title": "Player", + "autoPlay": "Video automatisch abspiele", + "alwaysLoopVideo": "Video immer inere Schleife abspiele", + "savePlaybackPosition": "Widergabeposition speichere", + "listenByDefault": "Standardmässig zuelose", + "ccByDefault": "Untertitel standardmässig aa", + "theatreModeByDefault": "Standardmässige Theatermodus", + "autoPlayNextByDefault": "Standardmässigi Widergab vom nächste Video", + "miniPlayer": "Mini-Player", + "proxyVideos": "Videos dur de Proxy leite", + "backgroundPlay": "Ton im Hintergrund abspiele", + "dash": "Dash", + "localVideoFallback": "Lokale Video-Fallback", + "youtubeJsFallback": "Fallback für lokali Videoverarbeitig", + "youtubeJsAlways": "Immer nutze", + "lockOrientation": "Uusrichtig as Siiteverhältnis bunde", + "defaultPlaybackSpeed": "Standardmässigi Widergabegschwindigkeit", + "playerStatistics": "Player-Statistike standardmässig aazeige" + }, + "sponsors": { + "intermissionIntroAnimation": "Unterbrechig/Iistigsanimation", + "sponsor": "Sponsor", + "disableToast": "Toast deaktiviere", + "disableTimeline": "Segment uf de Ziitleischte deaktiviere", + "Catagories": "Kategorie", + "unpaidSelfPromotion": "Unbezahlti Werbig/Eigewerbig", + "interactionReminder": "Interaktionsufforderig (Abonniere)", + "credits": "Abspann", + "preViewRecapHook": "Vorschau/Rückblick/Hook", + "tangentJokes": "Füllendi Abwiichler/Witz" + }, + "interface": "Benutzeroberflächi", + "star": "Sternli uf GitHub vergeh!", + "syncParty": "Synchronisationsgruppe", + "startSyncParty": "Synchronisationsgruppe starte", + "endSyncParty": "Synchronisationsgruppe stoppe", + "notifications": "Benachrichtigunge", + "noNewNotifications": "Kei neui Benachrichtigunge", + "settings": "Iistellige", + "login": "Aamelde", + "logout": "Abmelde", + "customize": "Aapasse", + "lowBandwidthMode": "Modus für gringi Bandbreiti", + "searchHistory": "Suechverlauf", + "theme": { + "theme": "Erschiinigsbild", + "darkMode": "Dunkle Modus", + "lightMode": "Helle Modus", + "AmoledTheme": "Amoled-Thema", + "color": "Farb" + }, + "searchSuggestions": "Suechvorschläg", + "previewVideoOnHover": "Video-Vorschau bim Hovere", + "expandChapters": "Kapitel standardmässig uusklappe", + "expandComments": "Kommentär standardmässig erwiitere", + "allowInsecureRequests": "Unsicheri Aafrage zuelaa", + "dataPreferences": { + "dataPreferences": "Dateiistellige", + "content": "Du möchtsch Abonnements importiere/exportiere, dis Password ändere oder dis Konto lösche? Klick da und scroll bis as Endi vo de Siite." + }, + "bookmarklet": "Lesezeiche", + "instanceUrl": "URL vo de Instanz", + "deArrow": { + "title": "DeArrow", + "thumbnailInstanceUrl": "URL vo de Vorschaubilder-Instanz", + "titleOnly": "Nur Titel" + }, + "syncPartyWarning": "Bitte denk dra, dass dini IP für die vo dir iigladne Benutzer sichtbar isch.", + "displayThumbnailAvatars": "Vorschaubild-Avatar (Langsam)", + "expandDescription": "Beschriibig standardmässig erwiitere" + }, + "videos": "Videos", + "cancel": "Abbreche", + "create": "Erstelle", + "title": "Titel", + "searchPlaceholder": "Sueche", + "delete": "Lösche", + "donate": "Spände", + "deleteAllHistory": "Gsamte Verlauf lösche", + "skipping": "Überspringe", + "comments": "Kommentär", + "reply": "Antwort", + "replies": "Antworte", + "region": "Region", + "noResult": "Kei Ergebnis", + "language": "Spraach", + "channels": "Kanäl", + "transcript": "Transkript", + "noCaptionData": "Untertitel enthalted kei Date.", + "selectLang": "Spraach uuswähle", + "letterCase": "Gross-/Chliischriibig für Titel", + "hideReplies": "Antworte verstecke", + "hideVideo": "Video verstecke", + "defaultPage": "Standardsiite", + "syncParty": { + "userJoined": "En Benutzer isch dinere Widergabegruppe biiträte.", + "userLeft": "En Benutzer het dini Widergabegruppe verlah.", + "userOnPrivatePage": "De Benutzer luegt sich grad e privati Siite a, d Synchronisierig wird grad wieder fortgsetzt." + }, + "videoTabs": { + "all": "Alli", + "videos": "Videos", + "playlists": "Widergabelischte", + "channels": "Kanäl", + "shorts": "Shorts", + "streams": "Streams" + }, + "subscriptions": { + "manageSubscriptions": "Abonnements verwalte" + }, + "playlist": { + "createPlaylist": "Widergabelischte erstelle", + "public": "Öffentlich", + "unlisted": "Unglischtet", + "private": "Privat", + "playVideos": "Videos abspiele", + "loopPlaylist": "Widergabelischte inere Schleife abspiele", + "shuffleVideos": "Videos in zuefälliger Reihefolg abspiele" + }, + "pages": { + "home": "Startsiite", + "trending": "Beliebt", + "subscriptions": "Abonnements", + "history": "Verlauf", + "playlists": "Widergabelischte" + }, + "subscribers": "Abonnente", + "unsubscribe": "Abo beende", + "player": { + "audioOnly": "Nur Ton", + "theatreMode": "Theatermodus", + "pauseTimer": "Timer pausiere", + "pauseVideoIn": "Video pausiere i ", + "preferredQuality": "Bevorzugti Qualität", + "chapters": "Kapitel", + "share": { + "title": "Teile", + "materialiousLink": "Materialious-Link kopiere", + "youtubeLink": "YouTube-Link kopiere", + "invidiousRedirect": "Invidious-Wiiterleitigslink kopiere" + }, + "download": "Abelade", + "downloadSteps": { + "merging": "Video und Audio zemmefüehre", + "video": "Abelade vom Video", + "audio": "Abelade vom Ton", + "ffmpeg": "Abelade vo de ffmpeg-Bibliothek und -Komponente", + "core": "Abelade vom ffmpeg-Chern", + "wasm": "Abelade vom ffmpeg wasm", + "worker": "Abelade vom ffmpeg worker", + "classWorker": "Abelade vom ffmpeg-Klassearbeiter" + }, + "noPlaylists": "Kei Widergabelischtene", + "unableToLoadComments": "Lade vo de Kommentär fehlgschlage", + "addToPlaylist": "Zu de Widergabelischte hinzuefüege", + "defaultLanguage": "Standardspraach", + "youtubeJsLoading": "S Video het nöd chönne glade werde, es wird mit lokalem Video-Fallback nomal versuecht.", + "retryText": "S Video het nöd chönne glade werde, wie willsch wiitermache?", + "enableYoutubejsPerm": "Lokale Video-Fallback immer erlaube", + "enableYoutubejsTemp": "Nutz eimalig de lokali Video-Fallback", + "youtubeJsFallBack": "Lokale Video-Fallback wird gnutzt" + }, + "subscribe": "Abonniere", + "invidiousLogin": "Bitte meld dich mit dim Invidious-Konto aa", + "invalidInstance": "Bitte prüef d URL. Wenn si korrekt isch, isch d Instanz möglicherwiis usser Betriib oder unterstützt kei Clients vo Drittaabüüter.", + "loginRequired": "Aameldig erforderlich" +} From 8e4ebf6e56b0c40e3ba04e4e9d1eb4967cd05ec5 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Mon, 14 Jul 2025 20:02:21 +0200 Subject: [PATCH 07/18] Add frame scrubbing keyboard shortcuts Added ',' and '.' keyboard shortcuts to the player for scrubbing frame by frame trough a video, just like on YouTube. Closes #666 --- materialious/package-lock.json | 4 ++-- materialious/src/lib/components/Player.svelte | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/materialious/package-lock.json b/materialious/package-lock.json index d27176be..feb32ca4 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -1,12 +1,12 @@ { "name": "materialious", - "version": "1.9.19", + "version": "1.9.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "materialious", - "version": "1.9.19", + "version": "1.9.20", "hasInstallScript": true, "dependencies": { "@capacitor-community/electron": "^5.0.1", diff --git a/materialious/src/lib/components/Player.svelte b/materialious/src/lib/components/Player.svelte index 9eac34e6..3144cab9 100644 --- a/materialious/src/lib/components/Player.svelte +++ b/materialious/src/lib/components/Player.svelte @@ -590,6 +590,22 @@ playerElement.playbackRate = playerElement.playbackRate + 0.25; return false; }); + + Mousetrap.bind(',', () => { + if (!playerElement) return + + const currentTrack = player.getVariantTracks().find(track => track.active) + const frameTime = 1/(currentTrack?.frameRate || 30) + playerElement.currentTime -= frameTime + }) + + Mousetrap.bind('.', () => { + if (!playerElement) return + + const currentTrack = player.getVariantTracks().find(track => track.active) + const frameTime = 1/(currentTrack?.frameRate || 30) + playerElement.currentTime += frameTime + }) playerElement.addEventListener('pause', async () => { savePlayerPos(); From 9b012e0674d371358061be957a0ca1ede912539f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 18:06:15 +0000 Subject: [PATCH 08/18] Bump electron from 37.2.0 to 37.2.1 in /materialious/electron Bumps [electron](https://github.com/electron/electron) from 37.2.0 to 37.2.1. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v37.2.0...v37.2.1) --- updated-dependencies: - dependency-name: electron dependency-version: 37.2.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- materialious/electron/package-lock.json | 12 ++++++------ materialious/electron/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 083ba73e..00bebe22 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.9.19", + "version": "1.9.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.9.19", + "version": "1.9.20", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", @@ -22,7 +22,7 @@ "jsonfile": "^6.1.0" }, "devDependencies": { - "electron": "^37.2.0", + "electron": "^37.2.1", "electron-builder": "^26.0.12", "electron-rebuild": "^3.2.9", "typescript": "^5.7.3" @@ -2495,9 +2495,9 @@ } }, "node_modules/electron": { - "version": "37.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-37.2.0.tgz", - "integrity": "sha512-dE6+qeg6SBUVd5d8CD2+GH82kh+gF1v40+hs+U+UOno681NMSGmBtgqwldQRpbvtnQDD7V2M9Cpfr3+Abw7aBg==", + "version": "37.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-37.2.1.tgz", + "integrity": "sha512-ae2EbzRNqIAHlftfCHtbbt6EgJUW8+zxWLONqNnn2iSrLF0O/pbxbff3xcpZYPpmFBs4uqjoi+s4QS7DQ+zZ/w==", "dev": true, "hasInstallScript": true, "license": "MIT", diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 84691dd3..1f5021da 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -35,7 +35,7 @@ "jsonfile": "^6.1.0" }, "devDependencies": { - "electron": "^37.2.0", + "electron": "^37.2.1", "electron-builder": "^26.0.12", "electron-rebuild": "^3.2.9", "typescript": "^5.7.3" From 617e40c1fbb95c4051063f502bd22aa093701a4e Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Sat, 19 Jul 2025 14:52:14 +0200 Subject: [PATCH 09/18] Add option to disable automatic update install Adds a new settings option in the interface section to disable to automatic installation of updates when installed as an Electron app. The setting defaults to false. Closes #832 --- materialious/electron/package-lock.json | 4 ++-- materialious/electron/src/index.ts | 8 ++++++-- materialious/electron/src/preload.ts | 3 ++- materialious/package-lock.json | 4 ++-- materialious/src/app.d.ts | 1 + .../lib/components/Settings/Interface.svelte | 19 +++++++++++++++++++ materialious/src/lib/i18n/locales/de.json | 1 + materialious/src/lib/i18n/locales/en.json | 1 + materialious/src/lib/store.ts | 1 + materialious/src/routes/(app)/+layout.svelte | 3 +++ 10 files changed, 38 insertions(+), 7 deletions(-) diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 083ba73e..a4ce25a9 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.9.19", + "version": "1.9.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.9.19", + "version": "1.9.20", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/electron/src/index.ts b/materialious/electron/src/index.ts index 476b8cd3..18732565 100644 --- a/materialious/electron/src/index.ts +++ b/materialious/electron/src/index.ts @@ -58,8 +58,6 @@ let allowInsecureSSL = false; setupContentSecurityPolicy(myCapacitorApp.getCustomURLScheme()); // Initialize our app, build windows, and load content. await myCapacitorApp.init(); - // Check for updates if we are in a packaged app. - autoUpdater.checkForUpdatesAndNotify(); })(); app.on('certificate-error', (event, webContents, url, error, certificate, callback) => { @@ -167,3 +165,9 @@ ipcMain.handle('setAllowInsecureSSL', async (_, allow) => { return allowInsecureSSL; }); + +ipcMain.handle('doUpdateCheck', (_, disableAutoUpdate) => { + // Check for updates if we are in a packaged app. + autoUpdater.autoInstallOnAppQuit = !disableAutoUpdate + autoUpdater.checkForUpdatesAndNotify(); +}) diff --git a/materialious/electron/src/preload.ts b/materialious/electron/src/preload.ts index 278f9285..83144c9b 100644 --- a/materialious/electron/src/preload.ts +++ b/materialious/electron/src/preload.ts @@ -8,5 +8,6 @@ contextBridge.exposeInMainWorld('electronAPI', { ipcRenderer.invoke('generatePoToken', bgChallenge, requestKey, visitorData), setAllowInsecureSSL: async (allow: boolean) => { return await ipcRenderer.invoke('setAllowInsecureSSL', allow); - } + }, + doUpdateCheck: (disableAutoUpdate) => ipcRenderer.invoke('doUpdateCheck', disableAutoUpdate) }); diff --git a/materialious/package-lock.json b/materialious/package-lock.json index d27176be..feb32ca4 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -1,12 +1,12 @@ { "name": "materialious", - "version": "1.9.19", + "version": "1.9.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "materialious", - "version": "1.9.19", + "version": "1.9.20", "hasInstallScript": true, "dependencies": { "@capacitor-community/electron": "^5.0.1", diff --git a/materialious/src/app.d.ts b/materialious/src/app.d.ts index 753ee6b1..6848f211 100644 --- a/materialious/src/app.d.ts +++ b/materialious/src/app.d.ts @@ -19,6 +19,7 @@ declare global { visitorData: string ) => Promise; setAllowInsecureSSL: (allowInsecureSSL: boolean) => Promoise; + doUpdateCheck: (disableAutoUpdate: boolean) => Promise; }; } } diff --git a/materialious/src/lib/components/Settings/Interface.svelte b/materialious/src/lib/components/Settings/Interface.svelte index 9f17b996..310ebe23 100644 --- a/materialious/src/lib/components/Settings/Interface.svelte +++ b/materialious/src/lib/components/Settings/Interface.svelte @@ -21,6 +21,7 @@ interfaceAutoExpandComments, interfaceAutoExpandDesc, interfaceDefaultPage, + interfaceDisableAutoUpdate, interfaceForceCase, interfaceLowBandwidthMode, interfaceRegionStore, @@ -288,6 +289,24 @@ +{#if Capacitor.getPlatform() == 'electron'} +
+ +
+{/if} +