From f74706fa9ac6ea8837a1269cf74f8040392bdc18 Mon Sep 17 00:00:00 2001 From: Timothy Lee Date: Mon, 29 Dec 2025 15:59:31 +0000 Subject: [PATCH 01/18] Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 2.7% (5 of 182 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/zh_Hant/ --- materialious/src/lib/i18n/locales/zh_Hant.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/materialious/src/lib/i18n/locales/zh_Hant.json b/materialious/src/lib/i18n/locales/zh_Hant.json index 37027b6a..efb1774d 100644 --- a/materialious/src/lib/i18n/locales/zh_Hant.json +++ b/materialious/src/lib/i18n/locales/zh_Hant.json @@ -1,4 +1,13 @@ { "enabled": "啟用", - "disabled": "停用" + "disabled": "停用", + "player": { + "controls": { + "language": "語言" + } + }, + "layout": { + "interface": "介面", + "syncPartyWarning": "被邀請的使用者將會看到您的IP位址。" + } } From 6467a097cd6aa1f186e54a3d66490afb41e54d3d Mon Sep 17 00:00:00 2001 From: Ghost of Sparta Date: Mon, 5 Jan 2026 14:48:50 +0000 Subject: [PATCH 02/18] Translated using Weblate (Hungarian) Currently translated at 100.0% (183 of 183 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/hu/ --- materialious/src/lib/i18n/locales/hu.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/materialious/src/lib/i18n/locales/hu.json b/materialious/src/lib/i18n/locales/hu.json index c81f3752..61e4e44c 100644 --- a/materialious/src/lib/i18n/locales/hu.json +++ b/materialious/src/lib/i18n/locales/hu.json @@ -96,7 +96,8 @@ "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" + "youtubeJsFallback": "Helyi videó visszatérés feldolgozása", + "networkChangePause": "Szünet a hálózati változáskor" }, "bookmarklet": "Bookmarklet", "instanceUrl": "Példány webcíme", From e9128b714ac0074a5c33c8d88d7fcd29a1f771f4 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Mon, 12 Jan 2026 15:37:08 +0000 Subject: [PATCH 03/18] Translated using Weblate (German) Currently translated at 100.0% (188 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/de/ --- materialious/src/lib/i18n/locales/de.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/materialious/src/lib/i18n/locales/de.json b/materialious/src/lib/i18n/locales/de.json index 4a147b6c..4611cdc4 100644 --- a/materialious/src/lib/i18n/locales/de.json +++ b/materialious/src/lib/i18n/locales/de.json @@ -163,7 +163,8 @@ "defaultPlaybackSpeed": "Standardmäßige Wiedergabegeschwindigkeit", "ccByDefault": "Untertitel standardmäßig an", "localVideoFallback": "Lokaler Video-Fallback", - "playerStatistics": "Player-Statistiken standardmäßig anzeigen" + "playerStatistics": "Player-Statistiken standardmäßig anzeigen", + "networkChangePause": "Bei Netzwerkwechsel pausieren" }, "bookmarklet": "Lesezeichen", "instanceUrl": "URL der Instanz", @@ -177,7 +178,10 @@ "intermissionIntroAnimation": "Unterbrechung/Einstiegsanimation", "credits": "Abspann", "preViewRecapHook": "Vorschau/Rückblick/Hook", - "tangentJokes": "Füllende Abweichler/Witze" + "tangentJokes": "Füllende Abweichler/Witze", + "automatic": "Automatisch überspringen", + "manual": "Manuell überspringen", + "timeline": "Nur Zeitleiste" }, "deArrow": { "title": "DeArrow", @@ -217,5 +221,7 @@ "oldest": "Älteste", "popular": "Populär", "favouriteChannel": "Kanal favorisieren", - "unfavouriteChannel": "Kanal entfavorisieren" + "unfavouriteChannel": "Kanal entfavorisieren", + "skip": "Überspringen", + "upcomingSegment": "Kommend " } From d0a3964dc8d96d5cf9781b1d508bbc4f23befe7b Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Mon, 12 Jan 2026 15:38:19 +0000 Subject: [PATCH 04/18] Translated using Weblate (Alemannic) Currently translated at 100.0% (188 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/gsw/ --- materialious/src/lib/i18n/locales/gsw.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/materialious/src/lib/i18n/locales/gsw.json b/materialious/src/lib/i18n/locales/gsw.json index 60867133..3bfbed29 100644 --- a/materialious/src/lib/i18n/locales/gsw.json +++ b/materialious/src/lib/i18n/locales/gsw.json @@ -33,7 +33,8 @@ "youtubeJsAlways": "Immer nutze", "lockOrientation": "Uusrichtig as Siiteverhältnis bunde", "defaultPlaybackSpeed": "Standardmässigi Widergabegschwindigkeit", - "playerStatistics": "Player-Statistike standardmässig aazeige" + "playerStatistics": "Player-Statistike standardmässig aazeige", + "networkChangePause": "Bi Netzwerchwechsel pausiere" }, "sponsors": { "intermissionIntroAnimation": "Unterbrechig/Iistigsanimation", @@ -45,7 +46,10 @@ "interactionReminder": "Interaktionsufforderig (Abonniere)", "credits": "Abspann", "preViewRecapHook": "Vorschau/Rückblick/Hook", - "tangentJokes": "Füllendi Abwiichler/Witz" + "tangentJokes": "Füllendi Abwiichler/Witz", + "automatic": "Automatisch überspringe", + "manual": "Manuell überspringe", + "timeline": "Nur Ziitleischte" }, "interface": "Benutzeroberflächi", "star": "Sternli uf GitHub vergeh!", @@ -217,5 +221,7 @@ "oldest": "Ältisti", "popular": "Populär", "favouriteChannel": "Kanal favorisiere", - "unfavouriteChannel": "Kanal entfavorisiere" + "unfavouriteChannel": "Kanal entfavorisiere", + "skip": "Überspringe", + "upcomingSegment": "Kommend " } From 6cf7d7edf23b4235ae65ae25cdb0f28dcc517334 Mon Sep 17 00:00:00 2001 From: Ghost of Sparta Date: Mon, 12 Jan 2026 10:03:53 +0000 Subject: [PATCH 05/18] Translated using Weblate (Hungarian) Currently translated at 100.0% (188 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/hu/ --- materialious/src/lib/i18n/locales/hu.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/materialious/src/lib/i18n/locales/hu.json b/materialious/src/lib/i18n/locales/hu.json index 61e4e44c..c633ae70 100644 --- a/materialious/src/lib/i18n/locales/hu.json +++ b/materialious/src/lib/i18n/locales/hu.json @@ -44,7 +44,10 @@ "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" + "tangentJokes": "Kitöltő mellékvágányok/poénok", + "automatic": "Automatikus átugrás", + "manual": "Kézi ugrás", + "timeline": "Csak idővonal" }, "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", @@ -218,5 +221,7 @@ "oldest": "Legrégebbi", "popular": "Népszerű", "favouriteChannel": "Csatorna kedvelése", - "unfavouriteChannel": "Csatorna eltávolítása a kedvencekből" + "unfavouriteChannel": "Csatorna eltávolítása a kedvencekből", + "skip": "Kihagyás", + "upcomingSegment": "Közelgő " } From 58966462dd1e1a7d4e9ad60f83e770ecf52d6536 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Tue, 13 Jan 2026 22:22:10 +0000 Subject: [PATCH 06/18] Translated using Weblate (German) Currently translated at 100.0% (188 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/de/ --- materialious/src/lib/i18n/locales/de.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/materialious/src/lib/i18n/locales/de.json b/materialious/src/lib/i18n/locales/de.json index 4611cdc4..0318a803 100644 --- a/materialious/src/lib/i18n/locales/de.json +++ b/materialious/src/lib/i18n/locales/de.json @@ -27,9 +27,9 @@ "hideReplies": "Antworten verstecken", "hideVideo": "Video verstecken", "syncParty": { - "userJoined": "Ein Benutzer ist deiner Wiedergabegruppe beigetreten.", - "userLeft": "Ein Benutzer hat deine Wiedergabegruppe verlassen.", - "userOnPrivatePage": "Der Benutzer sieht sich gerade eine private Seite an, die Synchronisierung wird in Kürze fortgesetzt." + "userJoined": "Eine Person ist deiner Wiedergabegruppe beigetreten.", + "userLeft": "Eine Person hat deine Wiedergabegruppe verlassen.", + "userOnPrivatePage": "Die Person sieht sich gerade eine private Seite an, die Synchronisierung wird in Kürze fortgesetzt." }, "videoTabs": { "all": "Alle", @@ -115,10 +115,10 @@ } }, "layout": { - "interface": "Benutzeroberfläche", + "interface": "Bedienoberfläche", "star": "Sternchen auf GitHub vergeben!", "syncParty": "Synchronisationsgruppe", - "syncPartyWarning": "Bitte beachte, dass deine IP für die von dir eingeladenen Benutzer sichtbar ist.", + "syncPartyWarning": "Bitte beachte, dass deine IP für die von dir eingeladenen Personen sichtbar ist.", "startSyncParty": "Synchronisationsgruppe starten", "endSyncParty": "Synchronisationsgruppe stoppen", "notifications": "Benachrichtigungen", From c272ae4ddaa1f72bb8456ba7ea57bdd420a97937 Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Tue, 13 Jan 2026 22:21:38 +0000 Subject: [PATCH 07/18] Translated using Weblate (German) Currently translated at 100.0% (2 of 2 strings) Translation: Materialious/metadata Translate-URL: https://toolate.othing.xyz/projects/materialious/metadata/de/ --- fastlane/metadata/android/de-DE/full_description.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt index c14aebc1..46ff392e 100644 --- a/fastlane/metadata/android/de-DE/full_description.txt +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -6,7 +6,7 @@ Es lässt dich Videos durchstöbern und anschauen, Wiedergabelisten verwalten un
  • Unterstützung für Invidious Companion
  • Invidious API Extended Integration
  • YouTube.js-Fallback für Desktop & Android, falls Invidious beim Laden von Videos fehlschlägt
  • -
  • Unterstützung zur Deaktivierung der Zertifikatsüberprüfung für Homelab-Nutzer
  • +
  • Unterstützung zur Deaktivierung der Zertifikatsüberprüfung für Homelab-Setups
  • Synchronisiere deinen Wiedergabefortschritt zwischen Invidious-Sitzungen
  • Schaue gemeinsam in Synchronisationsgruppen
  • Sponsorblock miteingebaut
  • @@ -15,7 +15,7 @@ Es lässt dich Videos durchstöbern und anschauen, Wiedergabelisten verwalten un
  • Keine Werbung
  • Kein Tracking
  • Hell- und Dunkel-Themes
  • -
  • Benutzerdefinierte Farb-Themes
  • +
  • Individuelle Farb-Themes
  • Integriert mit Invidious Abonnements, Wiedergabeverlauf & mehr
  • Livestream-Unterstützung
  • Dash-Unterstützung
  • From ecb1d32f6bbca8b2ba257b44e5e8be2649a7e9ac Mon Sep 17 00:00:00 2001 From: Lenny Angst Date: Tue, 13 Jan 2026 22:23:14 +0000 Subject: [PATCH 08/18] Translated using Weblate (Alemannic) Currently translated at 100.0% (188 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/gsw/ --- materialious/src/lib/i18n/locales/gsw.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/materialious/src/lib/i18n/locales/gsw.json b/materialious/src/lib/i18n/locales/gsw.json index 3bfbed29..84d8af64 100644 --- a/materialious/src/lib/i18n/locales/gsw.json +++ b/materialious/src/lib/i18n/locales/gsw.json @@ -51,7 +51,7 @@ "manual": "Manuell überspringe", "timeline": "Nur Ziitleischte" }, - "interface": "Benutzeroberflächi", + "interface": "Bedienoberflächi", "star": "Sternli uf GitHub vergeh!", "syncParty": "Synchronisationsgruppe", "startSyncParty": "Synchronisationsgruppe starte", @@ -87,7 +87,7 @@ "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.", + "syncPartyWarning": "Bitte denk dra, dass dini IP für die vo dir iigladne Persone sichtbar isch.", "displayThumbnailAvatars": "Vorschaubild-Avatar (Langsam)", "expandDescription": "Beschriibig standardmässig erwiitere", "disableAutoUpdate": "Automatischi Updates deaktiviere", @@ -118,9 +118,9 @@ "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." + "userJoined": "E Person isch dinere Widergabegruppe biiträte.", + "userLeft": "E Person het dini Widergabegruppe verlah.", + "userOnPrivatePage": "D Person luegt sich grad e privati Siite a, d Synchronisierig wird grad wieder fortgsetzt." }, "videoTabs": { "all": "Alli", From 55d030a4d18ec97ce228bf25e0591c535f425952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=84=82=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=9D?= =?UTF-8?q?=20=28=F0=9D=95=98=F0=9D=95=9A=F0=9D=95=A5=F0=9D=95=99?= =?UTF-8?q?=F0=9D=95=A6=F0=9D=95=93=2E=F0=9D=95=94=F0=9D=95=A0=F0=9D=95=9E?= =?UTF-8?q?/=E2=84=82=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=9D=29?= Date: Wed, 14 Jan 2026 05:00:45 +0000 Subject: [PATCH 09/18] Translated using Weblate (Latvian) Currently translated at 73.9% (139 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/lv/ --- materialious/src/lib/i18n/locales/lv.json | 25 ++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/materialious/src/lib/i18n/locales/lv.json b/materialious/src/lib/i18n/locales/lv.json index 2dbf7b00..e32a01d9 100644 --- a/materialious/src/lib/i18n/locales/lv.json +++ b/materialious/src/lib/i18n/locales/lv.json @@ -7,7 +7,8 @@ "invidiousRedirect": "Kopēt Invidious servera (instances) saiti", "title": "Dalīties", "youtubeLink": "Kopēt YouTube saiti", - "includeTimestamp": "Iekļaut atskaņošanas laiku" + "includeTimestamp": "Iekļaut atskaņošanas laiku", + "copiedSuccess": "Kopēta starpliktuvē" }, "download": "Lejupielādēt", "downloadSteps": { @@ -31,7 +32,15 @@ "retryText": "Neizdevās ielādēt video. Kā vēlaties turpināt?", "youtubeJsLoading": "Neizdevās ielādēt video, mēģina atkārtoti ielādēt ar vietējo video ieguves rezerves variantu.", "enableYoutubejsPerm": "Vienmēr izmantot vietējo video ieguves rezerves variantu", - "preferredQuality": "Vēlamā kvalitāte" + "preferredQuality": "Vēlamā kvalitāte", + "premiere": "Video būs pieejams", + "controls": { + "quality": "Kvalitāte", + "playbackSpeed": "Atskaņošanas ātrums", + "on": "Ieslēgt", + "off": "Izslēgt", + "language": "Valoda" + } }, "videos": "video", "layout": { @@ -58,7 +67,8 @@ "alwaysLoopVideo": "Vienmēr atskaņot (malt) uz riņķi video", "miniPlayer": "Mini atskaņotājs", "playerStatistics": "Rādīt atskaņotāja statistiku pēc noklusējuma", - "autoPlayNextByDefault": "Automātiski atskaņot nākamo video pēc noklusējuma" + "autoPlayNextByDefault": "Automātiski atskaņot nākamo video pēc noklusējuma", + "ccByDefault": "Iespējot subtitrus pēc noklusējuma" }, "deArrow": { "titleOnly": "Tikai virsrakstu", @@ -161,9 +171,14 @@ "filters": "Filtrēt pēc", "type": "Tips", "uploadDate": "Augšupielādes datums", - "duration": "Ilgums" + "duration": "Ilgums", + "sortBy": "Kārtot pēc" }, "comments": "komentāri", "login": "Autorizēties", - "transcript": "Transkripcija" + "transcript": "Transkripcija", + "popularPageDisabled": "Administratori atspējojuši \"Populārs\" lapu", + "skip": "Izlaist", + "reply": "atbilde", + "contributors": "Dalībnieki, līdzautori, kas devuši savu artavu" } From 6b4cc42927c7ac5224fdc77ea3a53bf37aa8f064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=84=82=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=9D?= =?UTF-8?q?=20=28=F0=9D=95=98=F0=9D=95=9A=F0=9D=95=A5=F0=9D=95=99?= =?UTF-8?q?=F0=9D=95=A6=F0=9D=95=93=2E=F0=9D=95=94=F0=9D=95=A0=F0=9D=95=9E?= =?UTF-8?q?/=E2=84=82=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=9D=29?= Date: Wed, 14 Jan 2026 05:28:00 +0000 Subject: [PATCH 10/18] Translated using Weblate (Latvian) Currently translated at 76.5% (144 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/lv/ --- materialious/src/lib/i18n/locales/lv.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/materialious/src/lib/i18n/locales/lv.json b/materialious/src/lib/i18n/locales/lv.json index e32a01d9..37fec5c2 100644 --- a/materialious/src/lib/i18n/locales/lv.json +++ b/materialious/src/lib/i18n/locales/lv.json @@ -68,7 +68,11 @@ "miniPlayer": "Mini atskaņotājs", "playerStatistics": "Rādīt atskaņotāja statistiku pēc noklusējuma", "autoPlayNextByDefault": "Automātiski atskaņot nākamo video pēc noklusējuma", - "ccByDefault": "Iespējot subtitrus pēc noklusējuma" + "ccByDefault": "Iespējot subtitrus pēc noklusējuma", + "backgroundPlay": "Atskaņot audio fonā", + "dash": "Izmantot DASH", + "silenceSkipper": "Izlaist klusuma brīžus (eksperimentāla)", + "defaultPlaybackSpeed": "Noklusējuma atskaņošanas ātrums" }, "deArrow": { "titleOnly": "Tikai virsrakstu", @@ -78,7 +82,8 @@ "Catagories": "Kategorijas", "unpaidSelfPromotion": "Neapmaksāts/pašreklāma", "sponsor": "Sponsors", - "disableToast": "Atspējot uznirstošos logus" + "disableToast": "Atspējot uznirstošos logus", + "automatic": "Automātiski izlaist" }, "bookmarklet": "Grāmatzīmes sīklietotne", "dataPreferences": { From 8c98e77a820f0228b8a854647da943fc448ab2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=84=82=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=9D?= =?UTF-8?q?=20=28=F0=9D=95=98=F0=9D=95=9A=F0=9D=95=A5=F0=9D=95=99?= =?UTF-8?q?=F0=9D=95=A6=F0=9D=95=93=2E=F0=9D=95=94=F0=9D=95=A0=F0=9D=95=9E?= =?UTF-8?q?/=E2=84=82=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=A0=F0=9D=95=9D=29?= Date: Wed, 14 Jan 2026 07:55:34 +0000 Subject: [PATCH 11/18] Translated using Weblate (Latvian) Currently translated at 76.5% (144 of 188 strings) Translation: Materialious/Materialious Translate-URL: https://toolate.othing.xyz/projects/materialious/materialious/lv/ --- materialious/src/lib/i18n/locales/lv.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/materialious/src/lib/i18n/locales/lv.json b/materialious/src/lib/i18n/locales/lv.json index 37fec5c2..2fd55f21 100644 --- a/materialious/src/lib/i18n/locales/lv.json +++ b/materialious/src/lib/i18n/locales/lv.json @@ -185,5 +185,6 @@ "popularPageDisabled": "Administratori atspējojuši \"Populārs\" lapu", "skip": "Izlaist", "reply": "atbilde", - "contributors": "Dalībnieki, līdzautori, kas devuši savu artavu" + "contributors": "Dalībnieki, līdzautori, kas devuši savu artavu", + "loadMore": "Ielādēt vēl" } From 587a943f7ff4b5d26649166bca535e66f92bbbe0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 20:16:35 +0000 Subject: [PATCH 12/18] Bump svelte from 5.46.1 to 5.46.4 in /materialious Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 5.46.1 to 5.46.4. - [Release notes](https://github.com/sveltejs/svelte/releases) - [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md) - [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.46.4/packages/svelte) --- updated-dependencies: - dependency-name: svelte dependency-version: 5.46.4 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- materialious/package-lock.json | 35 ++++++++++------------------------ materialious/package.json | 2 +- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/materialious/package-lock.json b/materialious/package-lock.json index 68dd8163..c7c3f55c 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -1,12 +1,12 @@ { "name": "materialious", - "version": "1.13.0", + "version": "1.13.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "materialious", - "version": "1.13.0", + "version": "1.13.1", "hasInstallScript": true, "dependencies": { "@capacitor-community/electron": "^5.0.1", @@ -62,7 +62,7 @@ "patch-package": "^8.0.1", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", - "svelte": "^5.45.6", + "svelte": "^5.46.4", "svelte-check": "^4.3.3", "tslib": "^2.7.0", "typescript": "^5.9.3", @@ -6133,9 +6133,9 @@ } }, "node_modules/devalue": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz", - "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", + "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", "license": "MIT" }, "node_modules/dexie": { @@ -12135,9 +12135,9 @@ } }, "node_modules/svelte": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.1.tgz", - "integrity": "sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA==", + "version": "5.46.4", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.4.tgz", + "integrity": "sha512-VJwdXrmv9L8L7ZasJeWcCjoIuMRVbhuxbss0fpVnR8yorMmjNDwcjIH08vS6wmSzzzgAG5CADQ1JuXPS2nwt9w==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", @@ -12148,7 +12148,7 @@ "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", - "devalue": "^5.5.0", + "devalue": "^5.6.2", "esm-env": "^1.2.1", "esrap": "^2.2.1", "is-reference": "^3.0.3", @@ -12202,21 +12202,6 @@ } } }, - "node_modules/svelte-check/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/svelte-eslint-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.4.1.tgz", diff --git a/materialious/package.json b/materialious/package.json index 252b0917..1f0741fe 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -33,7 +33,7 @@ "patch-package": "^8.0.1", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", - "svelte": "^5.45.6", + "svelte": "^5.46.4", "svelte-check": "^4.3.3", "tslib": "^2.7.0", "typescript": "^5.9.3", From b7521d524f6dc54909ed31086aeb1391a555ae0f Mon Sep 17 00:00:00 2001 From: WardPearce Date: Fri, 16 Jan 2026 23:20:53 +1300 Subject: [PATCH 13/18] Fix native share check --- materialious/android/app/build.gradle | 4 ++-- materialious/electron/materialious.metainfo.xml | 6 +++++- materialious/electron/package.json | 2 +- materialious/package.json | 2 +- materialious/src/lib/components/ShareVideo.svelte | 6 +----- update_versions.py | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index dcd96517..04526522 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 185 - versionName "1.13.1" + versionCode 186 + versionName "1.13.2" 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 03025275..86d5d661 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -82,7 +82,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.13.2 + + https://github.com/Materialious/Materialious/releases/tag/1.13.1 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 0a9136a8..c0d2b51d 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.13.1", + "version": "1.13.2", "description": "Modern material design for Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index 252b0917..ac476f97 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.13.1", + "version": "1.13.2", "private": true, "scripts": { "dev": "npm run patch:github && vite dev", diff --git a/materialious/src/lib/components/ShareVideo.svelte b/materialious/src/lib/components/ShareVideo.svelte index 02ac0bae..a5c2e5cb 100644 --- a/materialious/src/lib/components/ShareVideo.svelte +++ b/materialious/src/lib/components/ShareVideo.svelte @@ -20,11 +20,7 @@ async function shareUrl(url: string, param: string = 't') { if (includeTimestamp) url += `?${param}=${Math.floor(currentTime ?? 0)}`; - if ( - (await Share.canShare()) && - Capacitor.getPlatform() !== 'electron' && - $interfaceAndroidUseNativeShare - ) { + if ((await Share.canShare()).value && $interfaceAndroidUseNativeShare) { await Share.share({ url: url, dialogTitle: video.title }); } else { await Clipboard.write({ string: url }); diff --git a/update_versions.py b/update_versions.py index d6b4a82b..ec679877 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.1" +LATEST_VERSION = "1.13.2" 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 a8977734d89dca64cfe7a827e35ec66901a61643 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Fri, 16 Jan 2026 23:28:23 +1300 Subject: [PATCH 14/18] Minor fix to android player controls --- materialious/electron/package-lock.json | 4 ++-- materialious/src/lib/components/Player.svelte | 3 ++- materialious/static/localApi/ghContributors.json | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 6e96ae80..0fa150ed 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.13.1", + "version": "1.13.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.13.1", + "version": "1.13.2", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/src/lib/components/Player.svelte b/materialious/src/lib/components/Player.svelte index e8c5d90c..4d506997 100644 --- a/materialious/src/lib/components/Player.svelte +++ b/materialious/src/lib/components/Player.svelte @@ -1000,9 +1000,10 @@ if (playerAndroidUITimeout) { clearTimeout(playerAndroidUITimeout); - showControls = true; } + showControls = true; + playerAndroidUITimeout = setTimeout(() => { showControls = false; }, 3000); diff --git a/materialious/static/localApi/ghContributors.json b/materialious/static/localApi/ghContributors.json index 44e9998a..23f4bf41 100644 --- a/materialious/static/localApi/ghContributors.json +++ b/materialious/static/localApi/ghContributors.json @@ -1 +1 @@ -[{"login":"WardPearce","id":27844174,"node_id":"MDQ6VXNlcjI3ODQ0MTc0","avatar_url":"https://avatars.githubusercontent.com/u/27844174?v=4","gravatar_id":"","url":"https://api.github.com/users/WardPearce","html_url":"https://github.com/WardPearce","followers_url":"https://api.github.com/users/WardPearce/followers","following_url":"https://api.github.com/users/WardPearce/following{/other_user}","gists_url":"https://api.github.com/users/WardPearce/gists{/gist_id}","starred_url":"https://api.github.com/users/WardPearce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WardPearce/subscriptions","organizations_url":"https://api.github.com/users/WardPearce/orgs","repos_url":"https://api.github.com/users/WardPearce/repos","events_url":"https://api.github.com/users/WardPearce/events{/privacy}","received_events_url":"https://api.github.com/users/WardPearce/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1788},{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false,"contributions":217},{"login":"Lezurex","id":48829956,"node_id":"MDQ6VXNlcjQ4ODI5OTU2","avatar_url":"https://avatars.githubusercontent.com/u/48829956?v=4","gravatar_id":"","url":"https://api.github.com/users/Lezurex","html_url":"https://github.com/Lezurex","followers_url":"https://api.github.com/users/Lezurex/followers","following_url":"https://api.github.com/users/Lezurex/following{/other_user}","gists_url":"https://api.github.com/users/Lezurex/gists{/gist_id}","starred_url":"https://api.github.com/users/Lezurex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lezurex/subscriptions","organizations_url":"https://api.github.com/users/Lezurex/orgs","repos_url":"https://api.github.com/users/Lezurex/repos","events_url":"https://api.github.com/users/Lezurex/events{/privacy}","received_events_url":"https://api.github.com/users/Lezurex/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":32},{"login":"araujosemacento","id":60983392,"node_id":"MDQ6VXNlcjYwOTgzMzky","avatar_url":"https://avatars.githubusercontent.com/u/60983392?v=4","gravatar_id":"","url":"https://api.github.com/users/araujosemacento","html_url":"https://github.com/araujosemacento","followers_url":"https://api.github.com/users/araujosemacento/followers","following_url":"https://api.github.com/users/araujosemacento/following{/other_user}","gists_url":"https://api.github.com/users/araujosemacento/gists{/gist_id}","starred_url":"https://api.github.com/users/araujosemacento/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/araujosemacento/subscriptions","organizations_url":"https://api.github.com/users/araujosemacento/orgs","repos_url":"https://api.github.com/users/araujosemacento/repos","events_url":"https://api.github.com/users/araujosemacento/events{/privacy}","received_events_url":"https://api.github.com/users/araujosemacento/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":14},{"login":"Coool","id":8421903,"node_id":"MDQ6VXNlcjg0MjE5MDM=","avatar_url":"https://avatars.githubusercontent.com/u/8421903?v=4","gravatar_id":"","url":"https://api.github.com/users/Coool","html_url":"https://github.com/Coool","followers_url":"https://api.github.com/users/Coool/followers","following_url":"https://api.github.com/users/Coool/following{/other_user}","gists_url":"https://api.github.com/users/Coool/gists{/gist_id}","starred_url":"https://api.github.com/users/Coool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Coool/subscriptions","organizations_url":"https://api.github.com/users/Coool/orgs","repos_url":"https://api.github.com/users/Coool/repos","events_url":"https://api.github.com/users/Coool/events{/privacy}","received_events_url":"https://api.github.com/users/Coool/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":12},{"login":"toolatebot","id":169580663,"node_id":"U_kgDOChuYdw","avatar_url":"https://avatars.githubusercontent.com/u/169580663?v=4","gravatar_id":"","url":"https://api.github.com/users/toolatebot","html_url":"https://github.com/toolatebot","followers_url":"https://api.github.com/users/toolatebot/followers","following_url":"https://api.github.com/users/toolatebot/following{/other_user}","gists_url":"https://api.github.com/users/toolatebot/gists{/gist_id}","starred_url":"https://api.github.com/users/toolatebot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toolatebot/subscriptions","organizations_url":"https://api.github.com/users/toolatebot/orgs","repos_url":"https://api.github.com/users/toolatebot/repos","events_url":"https://api.github.com/users/toolatebot/events{/privacy}","received_events_url":"https://api.github.com/users/toolatebot/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":9},{"login":"Precific","id":30053082,"node_id":"MDQ6VXNlcjMwMDUzMDgy","avatar_url":"https://avatars.githubusercontent.com/u/30053082?v=4","gravatar_id":"","url":"https://api.github.com/users/Precific","html_url":"https://github.com/Precific","followers_url":"https://api.github.com/users/Precific/followers","following_url":"https://api.github.com/users/Precific/following{/other_user}","gists_url":"https://api.github.com/users/Precific/gists{/gist_id}","starred_url":"https://api.github.com/users/Precific/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Precific/subscriptions","organizations_url":"https://api.github.com/users/Precific/orgs","repos_url":"https://api.github.com/users/Precific/repos","events_url":"https://api.github.com/users/Precific/events{/privacy}","received_events_url":"https://api.github.com/users/Precific/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":9},{"login":"ghostofsparta222","id":251893418,"node_id":"U_kgDODwOWqg","avatar_url":"https://avatars.githubusercontent.com/u/251893418?v=4","gravatar_id":"","url":"https://api.github.com/users/ghostofsparta222","html_url":"https://github.com/ghostofsparta222","followers_url":"https://api.github.com/users/ghostofsparta222/followers","following_url":"https://api.github.com/users/ghostofsparta222/following{/other_user}","gists_url":"https://api.github.com/users/ghostofsparta222/gists{/gist_id}","starred_url":"https://api.github.com/users/ghostofsparta222/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ghostofsparta222/subscriptions","organizations_url":"https://api.github.com/users/ghostofsparta222/orgs","repos_url":"https://api.github.com/users/ghostofsparta222/repos","events_url":"https://api.github.com/users/ghostofsparta222/events{/privacy}","received_events_url":"https://api.github.com/users/ghostofsparta222/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":7},{"login":"SecularSteve","id":33793273,"node_id":"MDQ6VXNlcjMzNzkzMjcz","avatar_url":"https://avatars.githubusercontent.com/u/33793273?v=4","gravatar_id":"","url":"https://api.github.com/users/SecularSteve","html_url":"https://github.com/SecularSteve","followers_url":"https://api.github.com/users/SecularSteve/followers","following_url":"https://api.github.com/users/SecularSteve/following{/other_user}","gists_url":"https://api.github.com/users/SecularSteve/gists{/gist_id}","starred_url":"https://api.github.com/users/SecularSteve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SecularSteve/subscriptions","organizations_url":"https://api.github.com/users/SecularSteve/orgs","repos_url":"https://api.github.com/users/SecularSteve/repos","events_url":"https://api.github.com/users/SecularSteve/events{/privacy}","received_events_url":"https://api.github.com/users/SecularSteve/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"cookiennn","id":114363954,"node_id":"U_kgDOBtEOMg","avatar_url":"https://avatars.githubusercontent.com/u/114363954?v=4","gravatar_id":"","url":"https://api.github.com/users/cookiennn","html_url":"https://github.com/cookiennn","followers_url":"https://api.github.com/users/cookiennn/followers","following_url":"https://api.github.com/users/cookiennn/following{/other_user}","gists_url":"https://api.github.com/users/cookiennn/gists{/gist_id}","starred_url":"https://api.github.com/users/cookiennn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cookiennn/subscriptions","organizations_url":"https://api.github.com/users/cookiennn/orgs","repos_url":"https://api.github.com/users/cookiennn/repos","events_url":"https://api.github.com/users/cookiennn/events{/privacy}","received_events_url":"https://api.github.com/users/cookiennn/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"thejenja","id":65224669,"node_id":"MDQ6VXNlcjY1MjI0NjY5","avatar_url":"https://avatars.githubusercontent.com/u/65224669?v=4","gravatar_id":"","url":"https://api.github.com/users/thejenja","html_url":"https://github.com/thejenja","followers_url":"https://api.github.com/users/thejenja/followers","following_url":"https://api.github.com/users/thejenja/following{/other_user}","gists_url":"https://api.github.com/users/thejenja/gists{/gist_id}","starred_url":"https://api.github.com/users/thejenja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thejenja/subscriptions","organizations_url":"https://api.github.com/users/thejenja/orgs","repos_url":"https://api.github.com/users/thejenja/repos","events_url":"https://api.github.com/users/thejenja/events{/privacy}","received_events_url":"https://api.github.com/users/thejenja/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"yzqzss","id":30341059,"node_id":"MDQ6VXNlcjMwMzQxMDU5","avatar_url":"https://avatars.githubusercontent.com/u/30341059?v=4","gravatar_id":"","url":"https://api.github.com/users/yzqzss","html_url":"https://github.com/yzqzss","followers_url":"https://api.github.com/users/yzqzss/followers","following_url":"https://api.github.com/users/yzqzss/following{/other_user}","gists_url":"https://api.github.com/users/yzqzss/gists{/gist_id}","starred_url":"https://api.github.com/users/yzqzss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yzqzss/subscriptions","organizations_url":"https://api.github.com/users/yzqzss/orgs","repos_url":"https://api.github.com/users/yzqzss/repos","events_url":"https://api.github.com/users/yzqzss/events{/privacy}","received_events_url":"https://api.github.com/users/yzqzss/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"R0GGER","id":8298741,"node_id":"MDQ6VXNlcjgyOTg3NDE=","avatar_url":"https://avatars.githubusercontent.com/u/8298741?v=4","gravatar_id":"","url":"https://api.github.com/users/R0GGER","html_url":"https://github.com/R0GGER","followers_url":"https://api.github.com/users/R0GGER/followers","following_url":"https://api.github.com/users/R0GGER/following{/other_user}","gists_url":"https://api.github.com/users/R0GGER/gists{/gist_id}","starred_url":"https://api.github.com/users/R0GGER/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/R0GGER/subscriptions","organizations_url":"https://api.github.com/users/R0GGER/orgs","repos_url":"https://api.github.com/users/R0GGER/repos","events_url":"https://api.github.com/users/R0GGER/events{/privacy}","received_events_url":"https://api.github.com/users/R0GGER/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":3},{"login":"arcoast","id":81871508,"node_id":"MDQ6VXNlcjgxODcxNTA4","avatar_url":"https://avatars.githubusercontent.com/u/81871508?v=4","gravatar_id":"","url":"https://api.github.com/users/arcoast","html_url":"https://github.com/arcoast","followers_url":"https://api.github.com/users/arcoast/followers","following_url":"https://api.github.com/users/arcoast/following{/other_user}","gists_url":"https://api.github.com/users/arcoast/gists{/gist_id}","starred_url":"https://api.github.com/users/arcoast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcoast/subscriptions","organizations_url":"https://api.github.com/users/arcoast/orgs","repos_url":"https://api.github.com/users/arcoast/repos","events_url":"https://api.github.com/users/arcoast/events{/privacy}","received_events_url":"https://api.github.com/users/arcoast/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":3},{"login":"maboroshin","id":41102508,"node_id":"MDQ6VXNlcjQxMTAyNTA4","avatar_url":"https://avatars.githubusercontent.com/u/41102508?v=4","gravatar_id":"","url":"https://api.github.com/users/maboroshin","html_url":"https://github.com/maboroshin","followers_url":"https://api.github.com/users/maboroshin/followers","following_url":"https://api.github.com/users/maboroshin/following{/other_user}","gists_url":"https://api.github.com/users/maboroshin/gists{/gist_id}","starred_url":"https://api.github.com/users/maboroshin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maboroshin/subscriptions","organizations_url":"https://api.github.com/users/maboroshin/orgs","repos_url":"https://api.github.com/users/maboroshin/repos","events_url":"https://api.github.com/users/maboroshin/events{/privacy}","received_events_url":"https://api.github.com/users/maboroshin/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":3},{"login":"Midou36O","id":45198486,"node_id":"MDQ6VXNlcjQ1MTk4NDg2","avatar_url":"https://avatars.githubusercontent.com/u/45198486?v=4","gravatar_id":"","url":"https://api.github.com/users/Midou36O","html_url":"https://github.com/Midou36O","followers_url":"https://api.github.com/users/Midou36O/followers","following_url":"https://api.github.com/users/Midou36O/following{/other_user}","gists_url":"https://api.github.com/users/Midou36O/gists{/gist_id}","starred_url":"https://api.github.com/users/Midou36O/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Midou36O/subscriptions","organizations_url":"https://api.github.com/users/Midou36O/orgs","repos_url":"https://api.github.com/users/Midou36O/repos","events_url":"https://api.github.com/users/Midou36O/events{/privacy}","received_events_url":"https://api.github.com/users/Midou36O/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"Vladik01-11","id":70571714,"node_id":"MDQ6VXNlcjcwNTcxNzE0","avatar_url":"https://avatars.githubusercontent.com/u/70571714?v=4","gravatar_id":"","url":"https://api.github.com/users/Vladik01-11","html_url":"https://github.com/Vladik01-11","followers_url":"https://api.github.com/users/Vladik01-11/followers","following_url":"https://api.github.com/users/Vladik01-11/following{/other_user}","gists_url":"https://api.github.com/users/Vladik01-11/gists{/gist_id}","starred_url":"https://api.github.com/users/Vladik01-11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vladik01-11/subscriptions","organizations_url":"https://api.github.com/users/Vladik01-11/orgs","repos_url":"https://api.github.com/users/Vladik01-11/repos","events_url":"https://api.github.com/users/Vladik01-11/events{/privacy}","received_events_url":"https://api.github.com/users/Vladik01-11/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"yurtpage","id":155876573,"node_id":"U_kgDOCUp83Q","avatar_url":"https://avatars.githubusercontent.com/u/155876573?v=4","gravatar_id":"","url":"https://api.github.com/users/yurtpage","html_url":"https://github.com/yurtpage","followers_url":"https://api.github.com/users/yurtpage/followers","following_url":"https://api.github.com/users/yurtpage/following{/other_user}","gists_url":"https://api.github.com/users/yurtpage/gists{/gist_id}","starred_url":"https://api.github.com/users/yurtpage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yurtpage/subscriptions","organizations_url":"https://api.github.com/users/yurtpage/orgs","repos_url":"https://api.github.com/users/yurtpage/repos","events_url":"https://api.github.com/users/yurtpage/events{/privacy}","received_events_url":"https://api.github.com/users/yurtpage/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"bonswouar","id":615053,"node_id":"MDQ6VXNlcjYxNTA1Mw==","avatar_url":"https://avatars.githubusercontent.com/u/615053?v=4","gravatar_id":"","url":"https://api.github.com/users/bonswouar","html_url":"https://github.com/bonswouar","followers_url":"https://api.github.com/users/bonswouar/followers","following_url":"https://api.github.com/users/bonswouar/following{/other_user}","gists_url":"https://api.github.com/users/bonswouar/gists{/gist_id}","starred_url":"https://api.github.com/users/bonswouar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bonswouar/subscriptions","organizations_url":"https://api.github.com/users/bonswouar/orgs","repos_url":"https://api.github.com/users/bonswouar/repos","events_url":"https://api.github.com/users/bonswouar/events{/privacy}","received_events_url":"https://api.github.com/users/bonswouar/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"lamarios","id":1192563,"node_id":"MDQ6VXNlcjExOTI1NjM=","avatar_url":"https://avatars.githubusercontent.com/u/1192563?v=4","gravatar_id":"","url":"https://api.github.com/users/lamarios","html_url":"https://github.com/lamarios","followers_url":"https://api.github.com/users/lamarios/followers","following_url":"https://api.github.com/users/lamarios/following{/other_user}","gists_url":"https://api.github.com/users/lamarios/gists{/gist_id}","starred_url":"https://api.github.com/users/lamarios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lamarios/subscriptions","organizations_url":"https://api.github.com/users/lamarios/orgs","repos_url":"https://api.github.com/users/lamarios/repos","events_url":"https://api.github.com/users/lamarios/events{/privacy}","received_events_url":"https://api.github.com/users/lamarios/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"HappyHippo77","id":30226559,"node_id":"MDQ6VXNlcjMwMjI2NTU5","avatar_url":"https://avatars.githubusercontent.com/u/30226559?v=4","gravatar_id":"","url":"https://api.github.com/users/HappyHippo77","html_url":"https://github.com/HappyHippo77","followers_url":"https://api.github.com/users/HappyHippo77/followers","following_url":"https://api.github.com/users/HappyHippo77/following{/other_user}","gists_url":"https://api.github.com/users/HappyHippo77/gists{/gist_id}","starred_url":"https://api.github.com/users/HappyHippo77/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HappyHippo77/subscriptions","organizations_url":"https://api.github.com/users/HappyHippo77/orgs","repos_url":"https://api.github.com/users/HappyHippo77/repos","events_url":"https://api.github.com/users/HappyHippo77/events{/privacy}","received_events_url":"https://api.github.com/users/HappyHippo77/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"IzzySoft","id":6781438,"node_id":"MDQ6VXNlcjY3ODE0Mzg=","avatar_url":"https://avatars.githubusercontent.com/u/6781438?v=4","gravatar_id":"","url":"https://api.github.com/users/IzzySoft","html_url":"https://github.com/IzzySoft","followers_url":"https://api.github.com/users/IzzySoft/followers","following_url":"https://api.github.com/users/IzzySoft/following{/other_user}","gists_url":"https://api.github.com/users/IzzySoft/gists{/gist_id}","starred_url":"https://api.github.com/users/IzzySoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IzzySoft/subscriptions","organizations_url":"https://api.github.com/users/IzzySoft/orgs","repos_url":"https://api.github.com/users/IzzySoft/repos","events_url":"https://api.github.com/users/IzzySoft/events{/privacy}","received_events_url":"https://api.github.com/users/IzzySoft/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"JamsRepos","id":1347620,"node_id":"MDQ6VXNlcjEzNDc2MjA=","avatar_url":"https://avatars.githubusercontent.com/u/1347620?v=4","gravatar_id":"","url":"https://api.github.com/users/JamsRepos","html_url":"https://github.com/JamsRepos","followers_url":"https://api.github.com/users/JamsRepos/followers","following_url":"https://api.github.com/users/JamsRepos/following{/other_user}","gists_url":"https://api.github.com/users/JamsRepos/gists{/gist_id}","starred_url":"https://api.github.com/users/JamsRepos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JamsRepos/subscriptions","organizations_url":"https://api.github.com/users/JamsRepos/orgs","repos_url":"https://api.github.com/users/JamsRepos/repos","events_url":"https://api.github.com/users/JamsRepos/events{/privacy}","received_events_url":"https://api.github.com/users/JamsRepos/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"koelle25","id":915514,"node_id":"MDQ6VXNlcjkxNTUxNA==","avatar_url":"https://avatars.githubusercontent.com/u/915514?v=4","gravatar_id":"","url":"https://api.github.com/users/koelle25","html_url":"https://github.com/koelle25","followers_url":"https://api.github.com/users/koelle25/followers","following_url":"https://api.github.com/users/koelle25/following{/other_user}","gists_url":"https://api.github.com/users/koelle25/gists{/gist_id}","starred_url":"https://api.github.com/users/koelle25/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koelle25/subscriptions","organizations_url":"https://api.github.com/users/koelle25/orgs","repos_url":"https://api.github.com/users/koelle25/repos","events_url":"https://api.github.com/users/koelle25/events{/privacy}","received_events_url":"https://api.github.com/users/koelle25/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"patrickkempff","id":310766,"node_id":"MDQ6VXNlcjMxMDc2Ng==","avatar_url":"https://avatars.githubusercontent.com/u/310766?v=4","gravatar_id":"","url":"https://api.github.com/users/patrickkempff","html_url":"https://github.com/patrickkempff","followers_url":"https://api.github.com/users/patrickkempff/followers","following_url":"https://api.github.com/users/patrickkempff/following{/other_user}","gists_url":"https://api.github.com/users/patrickkempff/gists{/gist_id}","starred_url":"https://api.github.com/users/patrickkempff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patrickkempff/subscriptions","organizations_url":"https://api.github.com/users/patrickkempff/orgs","repos_url":"https://api.github.com/users/patrickkempff/repos","events_url":"https://api.github.com/users/patrickkempff/events{/privacy}","received_events_url":"https://api.github.com/users/patrickkempff/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"Spaenny","id":5008508,"node_id":"MDQ6VXNlcjUwMDg1MDg=","avatar_url":"https://avatars.githubusercontent.com/u/5008508?v=4","gravatar_id":"","url":"https://api.github.com/users/Spaenny","html_url":"https://github.com/Spaenny","followers_url":"https://api.github.com/users/Spaenny/followers","following_url":"https://api.github.com/users/Spaenny/following{/other_user}","gists_url":"https://api.github.com/users/Spaenny/gists{/gist_id}","starred_url":"https://api.github.com/users/Spaenny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Spaenny/subscriptions","organizations_url":"https://api.github.com/users/Spaenny/orgs","repos_url":"https://api.github.com/users/Spaenny/repos","events_url":"https://api.github.com/users/Spaenny/events{/privacy}","received_events_url":"https://api.github.com/users/Spaenny/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"Poussinou","id":19646549,"node_id":"MDQ6VXNlcjE5NjQ2NTQ5","avatar_url":"https://avatars.githubusercontent.com/u/19646549?v=4","gravatar_id":"","url":"https://api.github.com/users/Poussinou","html_url":"https://github.com/Poussinou","followers_url":"https://api.github.com/users/Poussinou/followers","following_url":"https://api.github.com/users/Poussinou/following{/other_user}","gists_url":"https://api.github.com/users/Poussinou/gists{/gist_id}","starred_url":"https://api.github.com/users/Poussinou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Poussinou/subscriptions","organizations_url":"https://api.github.com/users/Poussinou/orgs","repos_url":"https://api.github.com/users/Poussinou/repos","events_url":"https://api.github.com/users/Poussinou/events{/privacy}","received_events_url":"https://api.github.com/users/Poussinou/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"beboprocky","id":110792083,"node_id":"U_kgDOBpqNkw","avatar_url":"https://avatars.githubusercontent.com/u/110792083?v=4","gravatar_id":"","url":"https://api.github.com/users/beboprocky","html_url":"https://github.com/beboprocky","followers_url":"https://api.github.com/users/beboprocky/followers","following_url":"https://api.github.com/users/beboprocky/following{/other_user}","gists_url":"https://api.github.com/users/beboprocky/gists{/gist_id}","starred_url":"https://api.github.com/users/beboprocky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/beboprocky/subscriptions","organizations_url":"https://api.github.com/users/beboprocky/orgs","repos_url":"https://api.github.com/users/beboprocky/repos","events_url":"https://api.github.com/users/beboprocky/events{/privacy}","received_events_url":"https://api.github.com/users/beboprocky/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"polarwood","id":199823813,"node_id":"U_kgDOC-kRxQ","avatar_url":"https://avatars.githubusercontent.com/u/199823813?v=4","gravatar_id":"","url":"https://api.github.com/users/polarwood","html_url":"https://github.com/polarwood","followers_url":"https://api.github.com/users/polarwood/followers","following_url":"https://api.github.com/users/polarwood/following{/other_user}","gists_url":"https://api.github.com/users/polarwood/gists{/gist_id}","starred_url":"https://api.github.com/users/polarwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/polarwood/subscriptions","organizations_url":"https://api.github.com/users/polarwood/orgs","repos_url":"https://api.github.com/users/polarwood/repos","events_url":"https://api.github.com/users/polarwood/events{/privacy}","received_events_url":"https://api.github.com/users/polarwood/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"ptah-alexs","id":705210,"node_id":"MDQ6VXNlcjcwNTIxMA==","avatar_url":"https://avatars.githubusercontent.com/u/705210?v=4","gravatar_id":"","url":"https://api.github.com/users/ptah-alexs","html_url":"https://github.com/ptah-alexs","followers_url":"https://api.github.com/users/ptah-alexs/followers","following_url":"https://api.github.com/users/ptah-alexs/following{/other_user}","gists_url":"https://api.github.com/users/ptah-alexs/gists{/gist_id}","starred_url":"https://api.github.com/users/ptah-alexs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ptah-alexs/subscriptions","organizations_url":"https://api.github.com/users/ptah-alexs/orgs","repos_url":"https://api.github.com/users/ptah-alexs/repos","events_url":"https://api.github.com/users/ptah-alexs/events{/privacy}","received_events_url":"https://api.github.com/users/ptah-alexs/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1}] \ No newline at end of file +[{"login":"WardPearce","id":27844174,"node_id":"MDQ6VXNlcjI3ODQ0MTc0","avatar_url":"https://avatars.githubusercontent.com/u/27844174?v=4","gravatar_id":"","url":"https://api.github.com/users/WardPearce","html_url":"https://github.com/WardPearce","followers_url":"https://api.github.com/users/WardPearce/followers","following_url":"https://api.github.com/users/WardPearce/following{/other_user}","gists_url":"https://api.github.com/users/WardPearce/gists{/gist_id}","starred_url":"https://api.github.com/users/WardPearce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WardPearce/subscriptions","organizations_url":"https://api.github.com/users/WardPearce/orgs","repos_url":"https://api.github.com/users/WardPearce/repos","events_url":"https://api.github.com/users/WardPearce/events{/privacy}","received_events_url":"https://api.github.com/users/WardPearce/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1791},{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false,"contributions":217},{"login":"Lezurex","id":48829956,"node_id":"MDQ6VXNlcjQ4ODI5OTU2","avatar_url":"https://avatars.githubusercontent.com/u/48829956?v=4","gravatar_id":"","url":"https://api.github.com/users/Lezurex","html_url":"https://github.com/Lezurex","followers_url":"https://api.github.com/users/Lezurex/followers","following_url":"https://api.github.com/users/Lezurex/following{/other_user}","gists_url":"https://api.github.com/users/Lezurex/gists{/gist_id}","starred_url":"https://api.github.com/users/Lezurex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lezurex/subscriptions","organizations_url":"https://api.github.com/users/Lezurex/orgs","repos_url":"https://api.github.com/users/Lezurex/repos","events_url":"https://api.github.com/users/Lezurex/events{/privacy}","received_events_url":"https://api.github.com/users/Lezurex/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":32},{"login":"araujosemacento","id":60983392,"node_id":"MDQ6VXNlcjYwOTgzMzky","avatar_url":"https://avatars.githubusercontent.com/u/60983392?v=4","gravatar_id":"","url":"https://api.github.com/users/araujosemacento","html_url":"https://github.com/araujosemacento","followers_url":"https://api.github.com/users/araujosemacento/followers","following_url":"https://api.github.com/users/araujosemacento/following{/other_user}","gists_url":"https://api.github.com/users/araujosemacento/gists{/gist_id}","starred_url":"https://api.github.com/users/araujosemacento/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/araujosemacento/subscriptions","organizations_url":"https://api.github.com/users/araujosemacento/orgs","repos_url":"https://api.github.com/users/araujosemacento/repos","events_url":"https://api.github.com/users/araujosemacento/events{/privacy}","received_events_url":"https://api.github.com/users/araujosemacento/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":14},{"login":"Coool","id":8421903,"node_id":"MDQ6VXNlcjg0MjE5MDM=","avatar_url":"https://avatars.githubusercontent.com/u/8421903?v=4","gravatar_id":"","url":"https://api.github.com/users/Coool","html_url":"https://github.com/Coool","followers_url":"https://api.github.com/users/Coool/followers","following_url":"https://api.github.com/users/Coool/following{/other_user}","gists_url":"https://api.github.com/users/Coool/gists{/gist_id}","starred_url":"https://api.github.com/users/Coool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Coool/subscriptions","organizations_url":"https://api.github.com/users/Coool/orgs","repos_url":"https://api.github.com/users/Coool/repos","events_url":"https://api.github.com/users/Coool/events{/privacy}","received_events_url":"https://api.github.com/users/Coool/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":12},{"login":"toolatebot","id":169580663,"node_id":"U_kgDOChuYdw","avatar_url":"https://avatars.githubusercontent.com/u/169580663?v=4","gravatar_id":"","url":"https://api.github.com/users/toolatebot","html_url":"https://github.com/toolatebot","followers_url":"https://api.github.com/users/toolatebot/followers","following_url":"https://api.github.com/users/toolatebot/following{/other_user}","gists_url":"https://api.github.com/users/toolatebot/gists{/gist_id}","starred_url":"https://api.github.com/users/toolatebot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toolatebot/subscriptions","organizations_url":"https://api.github.com/users/toolatebot/orgs","repos_url":"https://api.github.com/users/toolatebot/repos","events_url":"https://api.github.com/users/toolatebot/events{/privacy}","received_events_url":"https://api.github.com/users/toolatebot/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":9},{"login":"Precific","id":30053082,"node_id":"MDQ6VXNlcjMwMDUzMDgy","avatar_url":"https://avatars.githubusercontent.com/u/30053082?v=4","gravatar_id":"","url":"https://api.github.com/users/Precific","html_url":"https://github.com/Precific","followers_url":"https://api.github.com/users/Precific/followers","following_url":"https://api.github.com/users/Precific/following{/other_user}","gists_url":"https://api.github.com/users/Precific/gists{/gist_id}","starred_url":"https://api.github.com/users/Precific/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Precific/subscriptions","organizations_url":"https://api.github.com/users/Precific/orgs","repos_url":"https://api.github.com/users/Precific/repos","events_url":"https://api.github.com/users/Precific/events{/privacy}","received_events_url":"https://api.github.com/users/Precific/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":9},{"login":"ghostofsparta222","id":251893418,"node_id":"U_kgDODwOWqg","avatar_url":"https://avatars.githubusercontent.com/u/251893418?v=4","gravatar_id":"","url":"https://api.github.com/users/ghostofsparta222","html_url":"https://github.com/ghostofsparta222","followers_url":"https://api.github.com/users/ghostofsparta222/followers","following_url":"https://api.github.com/users/ghostofsparta222/following{/other_user}","gists_url":"https://api.github.com/users/ghostofsparta222/gists{/gist_id}","starred_url":"https://api.github.com/users/ghostofsparta222/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ghostofsparta222/subscriptions","organizations_url":"https://api.github.com/users/ghostofsparta222/orgs","repos_url":"https://api.github.com/users/ghostofsparta222/repos","events_url":"https://api.github.com/users/ghostofsparta222/events{/privacy}","received_events_url":"https://api.github.com/users/ghostofsparta222/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":7},{"login":"SecularSteve","id":33793273,"node_id":"MDQ6VXNlcjMzNzkzMjcz","avatar_url":"https://avatars.githubusercontent.com/u/33793273?v=4","gravatar_id":"","url":"https://api.github.com/users/SecularSteve","html_url":"https://github.com/SecularSteve","followers_url":"https://api.github.com/users/SecularSteve/followers","following_url":"https://api.github.com/users/SecularSteve/following{/other_user}","gists_url":"https://api.github.com/users/SecularSteve/gists{/gist_id}","starred_url":"https://api.github.com/users/SecularSteve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SecularSteve/subscriptions","organizations_url":"https://api.github.com/users/SecularSteve/orgs","repos_url":"https://api.github.com/users/SecularSteve/repos","events_url":"https://api.github.com/users/SecularSteve/events{/privacy}","received_events_url":"https://api.github.com/users/SecularSteve/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"cookiennn","id":114363954,"node_id":"U_kgDOBtEOMg","avatar_url":"https://avatars.githubusercontent.com/u/114363954?v=4","gravatar_id":"","url":"https://api.github.com/users/cookiennn","html_url":"https://github.com/cookiennn","followers_url":"https://api.github.com/users/cookiennn/followers","following_url":"https://api.github.com/users/cookiennn/following{/other_user}","gists_url":"https://api.github.com/users/cookiennn/gists{/gist_id}","starred_url":"https://api.github.com/users/cookiennn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cookiennn/subscriptions","organizations_url":"https://api.github.com/users/cookiennn/orgs","repos_url":"https://api.github.com/users/cookiennn/repos","events_url":"https://api.github.com/users/cookiennn/events{/privacy}","received_events_url":"https://api.github.com/users/cookiennn/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"thejenja","id":65224669,"node_id":"MDQ6VXNlcjY1MjI0NjY5","avatar_url":"https://avatars.githubusercontent.com/u/65224669?v=4","gravatar_id":"","url":"https://api.github.com/users/thejenja","html_url":"https://github.com/thejenja","followers_url":"https://api.github.com/users/thejenja/followers","following_url":"https://api.github.com/users/thejenja/following{/other_user}","gists_url":"https://api.github.com/users/thejenja/gists{/gist_id}","starred_url":"https://api.github.com/users/thejenja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thejenja/subscriptions","organizations_url":"https://api.github.com/users/thejenja/orgs","repos_url":"https://api.github.com/users/thejenja/repos","events_url":"https://api.github.com/users/thejenja/events{/privacy}","received_events_url":"https://api.github.com/users/thejenja/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"yzqzss","id":30341059,"node_id":"MDQ6VXNlcjMwMzQxMDU5","avatar_url":"https://avatars.githubusercontent.com/u/30341059?v=4","gravatar_id":"","url":"https://api.github.com/users/yzqzss","html_url":"https://github.com/yzqzss","followers_url":"https://api.github.com/users/yzqzss/followers","following_url":"https://api.github.com/users/yzqzss/following{/other_user}","gists_url":"https://api.github.com/users/yzqzss/gists{/gist_id}","starred_url":"https://api.github.com/users/yzqzss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yzqzss/subscriptions","organizations_url":"https://api.github.com/users/yzqzss/orgs","repos_url":"https://api.github.com/users/yzqzss/repos","events_url":"https://api.github.com/users/yzqzss/events{/privacy}","received_events_url":"https://api.github.com/users/yzqzss/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":4},{"login":"R0GGER","id":8298741,"node_id":"MDQ6VXNlcjgyOTg3NDE=","avatar_url":"https://avatars.githubusercontent.com/u/8298741?v=4","gravatar_id":"","url":"https://api.github.com/users/R0GGER","html_url":"https://github.com/R0GGER","followers_url":"https://api.github.com/users/R0GGER/followers","following_url":"https://api.github.com/users/R0GGER/following{/other_user}","gists_url":"https://api.github.com/users/R0GGER/gists{/gist_id}","starred_url":"https://api.github.com/users/R0GGER/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/R0GGER/subscriptions","organizations_url":"https://api.github.com/users/R0GGER/orgs","repos_url":"https://api.github.com/users/R0GGER/repos","events_url":"https://api.github.com/users/R0GGER/events{/privacy}","received_events_url":"https://api.github.com/users/R0GGER/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":3},{"login":"arcoast","id":81871508,"node_id":"MDQ6VXNlcjgxODcxNTA4","avatar_url":"https://avatars.githubusercontent.com/u/81871508?v=4","gravatar_id":"","url":"https://api.github.com/users/arcoast","html_url":"https://github.com/arcoast","followers_url":"https://api.github.com/users/arcoast/followers","following_url":"https://api.github.com/users/arcoast/following{/other_user}","gists_url":"https://api.github.com/users/arcoast/gists{/gist_id}","starred_url":"https://api.github.com/users/arcoast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcoast/subscriptions","organizations_url":"https://api.github.com/users/arcoast/orgs","repos_url":"https://api.github.com/users/arcoast/repos","events_url":"https://api.github.com/users/arcoast/events{/privacy}","received_events_url":"https://api.github.com/users/arcoast/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":3},{"login":"maboroshin","id":41102508,"node_id":"MDQ6VXNlcjQxMTAyNTA4","avatar_url":"https://avatars.githubusercontent.com/u/41102508?v=4","gravatar_id":"","url":"https://api.github.com/users/maboroshin","html_url":"https://github.com/maboroshin","followers_url":"https://api.github.com/users/maboroshin/followers","following_url":"https://api.github.com/users/maboroshin/following{/other_user}","gists_url":"https://api.github.com/users/maboroshin/gists{/gist_id}","starred_url":"https://api.github.com/users/maboroshin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maboroshin/subscriptions","organizations_url":"https://api.github.com/users/maboroshin/orgs","repos_url":"https://api.github.com/users/maboroshin/repos","events_url":"https://api.github.com/users/maboroshin/events{/privacy}","received_events_url":"https://api.github.com/users/maboroshin/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":3},{"login":"Midou36O","id":45198486,"node_id":"MDQ6VXNlcjQ1MTk4NDg2","avatar_url":"https://avatars.githubusercontent.com/u/45198486?v=4","gravatar_id":"","url":"https://api.github.com/users/Midou36O","html_url":"https://github.com/Midou36O","followers_url":"https://api.github.com/users/Midou36O/followers","following_url":"https://api.github.com/users/Midou36O/following{/other_user}","gists_url":"https://api.github.com/users/Midou36O/gists{/gist_id}","starred_url":"https://api.github.com/users/Midou36O/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Midou36O/subscriptions","organizations_url":"https://api.github.com/users/Midou36O/orgs","repos_url":"https://api.github.com/users/Midou36O/repos","events_url":"https://api.github.com/users/Midou36O/events{/privacy}","received_events_url":"https://api.github.com/users/Midou36O/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"Vladik01-11","id":70571714,"node_id":"MDQ6VXNlcjcwNTcxNzE0","avatar_url":"https://avatars.githubusercontent.com/u/70571714?v=4","gravatar_id":"","url":"https://api.github.com/users/Vladik01-11","html_url":"https://github.com/Vladik01-11","followers_url":"https://api.github.com/users/Vladik01-11/followers","following_url":"https://api.github.com/users/Vladik01-11/following{/other_user}","gists_url":"https://api.github.com/users/Vladik01-11/gists{/gist_id}","starred_url":"https://api.github.com/users/Vladik01-11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vladik01-11/subscriptions","organizations_url":"https://api.github.com/users/Vladik01-11/orgs","repos_url":"https://api.github.com/users/Vladik01-11/repos","events_url":"https://api.github.com/users/Vladik01-11/events{/privacy}","received_events_url":"https://api.github.com/users/Vladik01-11/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"yurtpage","id":155876573,"node_id":"U_kgDOCUp83Q","avatar_url":"https://avatars.githubusercontent.com/u/155876573?v=4","gravatar_id":"","url":"https://api.github.com/users/yurtpage","html_url":"https://github.com/yurtpage","followers_url":"https://api.github.com/users/yurtpage/followers","following_url":"https://api.github.com/users/yurtpage/following{/other_user}","gists_url":"https://api.github.com/users/yurtpage/gists{/gist_id}","starred_url":"https://api.github.com/users/yurtpage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yurtpage/subscriptions","organizations_url":"https://api.github.com/users/yurtpage/orgs","repos_url":"https://api.github.com/users/yurtpage/repos","events_url":"https://api.github.com/users/yurtpage/events{/privacy}","received_events_url":"https://api.github.com/users/yurtpage/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"bonswouar","id":615053,"node_id":"MDQ6VXNlcjYxNTA1Mw==","avatar_url":"https://avatars.githubusercontent.com/u/615053?v=4","gravatar_id":"","url":"https://api.github.com/users/bonswouar","html_url":"https://github.com/bonswouar","followers_url":"https://api.github.com/users/bonswouar/followers","following_url":"https://api.github.com/users/bonswouar/following{/other_user}","gists_url":"https://api.github.com/users/bonswouar/gists{/gist_id}","starred_url":"https://api.github.com/users/bonswouar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bonswouar/subscriptions","organizations_url":"https://api.github.com/users/bonswouar/orgs","repos_url":"https://api.github.com/users/bonswouar/repos","events_url":"https://api.github.com/users/bonswouar/events{/privacy}","received_events_url":"https://api.github.com/users/bonswouar/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"lamarios","id":1192563,"node_id":"MDQ6VXNlcjExOTI1NjM=","avatar_url":"https://avatars.githubusercontent.com/u/1192563?v=4","gravatar_id":"","url":"https://api.github.com/users/lamarios","html_url":"https://github.com/lamarios","followers_url":"https://api.github.com/users/lamarios/followers","following_url":"https://api.github.com/users/lamarios/following{/other_user}","gists_url":"https://api.github.com/users/lamarios/gists{/gist_id}","starred_url":"https://api.github.com/users/lamarios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lamarios/subscriptions","organizations_url":"https://api.github.com/users/lamarios/orgs","repos_url":"https://api.github.com/users/lamarios/repos","events_url":"https://api.github.com/users/lamarios/events{/privacy}","received_events_url":"https://api.github.com/users/lamarios/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":2},{"login":"HappyHippo77","id":30226559,"node_id":"MDQ6VXNlcjMwMjI2NTU5","avatar_url":"https://avatars.githubusercontent.com/u/30226559?v=4","gravatar_id":"","url":"https://api.github.com/users/HappyHippo77","html_url":"https://github.com/HappyHippo77","followers_url":"https://api.github.com/users/HappyHippo77/followers","following_url":"https://api.github.com/users/HappyHippo77/following{/other_user}","gists_url":"https://api.github.com/users/HappyHippo77/gists{/gist_id}","starred_url":"https://api.github.com/users/HappyHippo77/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HappyHippo77/subscriptions","organizations_url":"https://api.github.com/users/HappyHippo77/orgs","repos_url":"https://api.github.com/users/HappyHippo77/repos","events_url":"https://api.github.com/users/HappyHippo77/events{/privacy}","received_events_url":"https://api.github.com/users/HappyHippo77/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"IzzySoft","id":6781438,"node_id":"MDQ6VXNlcjY3ODE0Mzg=","avatar_url":"https://avatars.githubusercontent.com/u/6781438?v=4","gravatar_id":"","url":"https://api.github.com/users/IzzySoft","html_url":"https://github.com/IzzySoft","followers_url":"https://api.github.com/users/IzzySoft/followers","following_url":"https://api.github.com/users/IzzySoft/following{/other_user}","gists_url":"https://api.github.com/users/IzzySoft/gists{/gist_id}","starred_url":"https://api.github.com/users/IzzySoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IzzySoft/subscriptions","organizations_url":"https://api.github.com/users/IzzySoft/orgs","repos_url":"https://api.github.com/users/IzzySoft/repos","events_url":"https://api.github.com/users/IzzySoft/events{/privacy}","received_events_url":"https://api.github.com/users/IzzySoft/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"JamsRepos","id":1347620,"node_id":"MDQ6VXNlcjEzNDc2MjA=","avatar_url":"https://avatars.githubusercontent.com/u/1347620?v=4","gravatar_id":"","url":"https://api.github.com/users/JamsRepos","html_url":"https://github.com/JamsRepos","followers_url":"https://api.github.com/users/JamsRepos/followers","following_url":"https://api.github.com/users/JamsRepos/following{/other_user}","gists_url":"https://api.github.com/users/JamsRepos/gists{/gist_id}","starred_url":"https://api.github.com/users/JamsRepos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JamsRepos/subscriptions","organizations_url":"https://api.github.com/users/JamsRepos/orgs","repos_url":"https://api.github.com/users/JamsRepos/repos","events_url":"https://api.github.com/users/JamsRepos/events{/privacy}","received_events_url":"https://api.github.com/users/JamsRepos/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"koelle25","id":915514,"node_id":"MDQ6VXNlcjkxNTUxNA==","avatar_url":"https://avatars.githubusercontent.com/u/915514?v=4","gravatar_id":"","url":"https://api.github.com/users/koelle25","html_url":"https://github.com/koelle25","followers_url":"https://api.github.com/users/koelle25/followers","following_url":"https://api.github.com/users/koelle25/following{/other_user}","gists_url":"https://api.github.com/users/koelle25/gists{/gist_id}","starred_url":"https://api.github.com/users/koelle25/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koelle25/subscriptions","organizations_url":"https://api.github.com/users/koelle25/orgs","repos_url":"https://api.github.com/users/koelle25/repos","events_url":"https://api.github.com/users/koelle25/events{/privacy}","received_events_url":"https://api.github.com/users/koelle25/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"patrickkempff","id":310766,"node_id":"MDQ6VXNlcjMxMDc2Ng==","avatar_url":"https://avatars.githubusercontent.com/u/310766?v=4","gravatar_id":"","url":"https://api.github.com/users/patrickkempff","html_url":"https://github.com/patrickkempff","followers_url":"https://api.github.com/users/patrickkempff/followers","following_url":"https://api.github.com/users/patrickkempff/following{/other_user}","gists_url":"https://api.github.com/users/patrickkempff/gists{/gist_id}","starred_url":"https://api.github.com/users/patrickkempff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patrickkempff/subscriptions","organizations_url":"https://api.github.com/users/patrickkempff/orgs","repos_url":"https://api.github.com/users/patrickkempff/repos","events_url":"https://api.github.com/users/patrickkempff/events{/privacy}","received_events_url":"https://api.github.com/users/patrickkempff/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"Spaenny","id":5008508,"node_id":"MDQ6VXNlcjUwMDg1MDg=","avatar_url":"https://avatars.githubusercontent.com/u/5008508?v=4","gravatar_id":"","url":"https://api.github.com/users/Spaenny","html_url":"https://github.com/Spaenny","followers_url":"https://api.github.com/users/Spaenny/followers","following_url":"https://api.github.com/users/Spaenny/following{/other_user}","gists_url":"https://api.github.com/users/Spaenny/gists{/gist_id}","starred_url":"https://api.github.com/users/Spaenny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Spaenny/subscriptions","organizations_url":"https://api.github.com/users/Spaenny/orgs","repos_url":"https://api.github.com/users/Spaenny/repos","events_url":"https://api.github.com/users/Spaenny/events{/privacy}","received_events_url":"https://api.github.com/users/Spaenny/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"Poussinou","id":19646549,"node_id":"MDQ6VXNlcjE5NjQ2NTQ5","avatar_url":"https://avatars.githubusercontent.com/u/19646549?v=4","gravatar_id":"","url":"https://api.github.com/users/Poussinou","html_url":"https://github.com/Poussinou","followers_url":"https://api.github.com/users/Poussinou/followers","following_url":"https://api.github.com/users/Poussinou/following{/other_user}","gists_url":"https://api.github.com/users/Poussinou/gists{/gist_id}","starred_url":"https://api.github.com/users/Poussinou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Poussinou/subscriptions","organizations_url":"https://api.github.com/users/Poussinou/orgs","repos_url":"https://api.github.com/users/Poussinou/repos","events_url":"https://api.github.com/users/Poussinou/events{/privacy}","received_events_url":"https://api.github.com/users/Poussinou/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"beboprocky","id":110792083,"node_id":"U_kgDOBpqNkw","avatar_url":"https://avatars.githubusercontent.com/u/110792083?v=4","gravatar_id":"","url":"https://api.github.com/users/beboprocky","html_url":"https://github.com/beboprocky","followers_url":"https://api.github.com/users/beboprocky/followers","following_url":"https://api.github.com/users/beboprocky/following{/other_user}","gists_url":"https://api.github.com/users/beboprocky/gists{/gist_id}","starred_url":"https://api.github.com/users/beboprocky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/beboprocky/subscriptions","organizations_url":"https://api.github.com/users/beboprocky/orgs","repos_url":"https://api.github.com/users/beboprocky/repos","events_url":"https://api.github.com/users/beboprocky/events{/privacy}","received_events_url":"https://api.github.com/users/beboprocky/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"polarwood","id":199823813,"node_id":"U_kgDOC-kRxQ","avatar_url":"https://avatars.githubusercontent.com/u/199823813?v=4","gravatar_id":"","url":"https://api.github.com/users/polarwood","html_url":"https://github.com/polarwood","followers_url":"https://api.github.com/users/polarwood/followers","following_url":"https://api.github.com/users/polarwood/following{/other_user}","gists_url":"https://api.github.com/users/polarwood/gists{/gist_id}","starred_url":"https://api.github.com/users/polarwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/polarwood/subscriptions","organizations_url":"https://api.github.com/users/polarwood/orgs","repos_url":"https://api.github.com/users/polarwood/repos","events_url":"https://api.github.com/users/polarwood/events{/privacy}","received_events_url":"https://api.github.com/users/polarwood/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1},{"login":"ptah-alexs","id":705210,"node_id":"MDQ6VXNlcjcwNTIxMA==","avatar_url":"https://avatars.githubusercontent.com/u/705210?v=4","gravatar_id":"","url":"https://api.github.com/users/ptah-alexs","html_url":"https://github.com/ptah-alexs","followers_url":"https://api.github.com/users/ptah-alexs/followers","following_url":"https://api.github.com/users/ptah-alexs/following{/other_user}","gists_url":"https://api.github.com/users/ptah-alexs/gists{/gist_id}","starred_url":"https://api.github.com/users/ptah-alexs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ptah-alexs/subscriptions","organizations_url":"https://api.github.com/users/ptah-alexs/orgs","repos_url":"https://api.github.com/users/ptah-alexs/repos","events_url":"https://api.github.com/users/ptah-alexs/events{/privacy}","received_events_url":"https://api.github.com/users/ptah-alexs/received_events","type":"User","user_view_type":"public","site_admin":false,"contributions":1}] \ No newline at end of file From 07fb54ea3927fddbc13a67d0523b95bd7f114b9c Mon Sep 17 00:00:00 2001 From: WardPearce Date: Fri, 16 Jan 2026 23:30:55 +1300 Subject: [PATCH 15/18] Remove TV search page from non tv clients --- materialious/src/lib/components/settings/About.svelte | 2 +- materialious/src/routes/(app)/+layout.svelte | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/materialious/src/lib/components/settings/About.svelte b/materialious/src/lib/components/settings/About.svelte index 5c15b6f0..9725cb6b 100644 --- a/materialious/src/lib/components/settings/About.svelte +++ b/materialious/src/lib/components/settings/About.svelte @@ -4,7 +4,7 @@ let ghContributors: { login: string; avatar_url: string; type: 'Bot' | 'User' }[] = $state([]); onMount(() => { - fetch(`${document.location.origin}/localApi/ghContributors.json`, { + fetch('/localApi/ghContributors.json', { priority: 'low' }).then(async (resp) => { if (!resp.ok) { diff --git a/materialious/src/routes/(app)/+layout.svelte b/materialious/src/routes/(app)/+layout.svelte index 0ec6b776..ad2c5d83 100644 --- a/materialious/src/routes/(app)/+layout.svelte +++ b/materialious/src/routes/(app)/+layout.svelte @@ -253,10 +253,12 @@ > - - search -
    {$_('searchPlaceholder')}
    -
    + {#if $isAndroidTvStore} + + search +
    {$_('searchPlaceholder')}
    +
    + {/if} {#each getPages() as navPage (navPage)} {#if !navPage.requiresAuth || isLoggedIn} Date: Sat, 17 Jan 2026 00:28:37 +1300 Subject: [PATCH 16/18] Improved sync party to support Android & Desktop --- materialious/electron/src/setup.ts | 2 + materialious/package-lock.json | 49 ++++++-- materialious/package.json | 6 +- .../src/lib/components/ShareVideo.svelte | 24 ++-- .../src/lib/components/SyncParty.svelte | 115 ++++++++++++++---- materialious/src/lib/i18n/locales/en.json | 2 + materialious/src/lib/misc.ts | 46 +++++-- materialious/src/routes/(app)/+layout.svelte | 10 +- 8 files changed, 192 insertions(+), 62 deletions(-) diff --git a/materialious/electron/src/setup.ts b/materialious/electron/src/setup.ts index e9089d23..9edbbe96 100644 --- a/materialious/electron/src/setup.ts +++ b/materialious/electron/src/setup.ts @@ -190,6 +190,8 @@ export class ElectronCapacitorApp { globalShortcut.register('Control+Shift+I', () => { this.MainWindow.webContents.toggleDevTools(); }); + this.MainWindow.webContents.toggleDevTools(); + // Security this.MainWindow.webContents.setWindowOpenHandler((details) => { shell.openExternal(details.url); diff --git a/materialious/package-lock.json b/materialious/package-lock.json index 68dd8163..91874a56 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -1,12 +1,12 @@ { "name": "materialious", - "version": "1.13.0", + "version": "1.13.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "materialious", - "version": "1.13.0", + "version": "1.13.2", "hasInstallScript": true, "dependencies": { "@capacitor-community/electron": "^5.0.1", @@ -24,6 +24,7 @@ "@macfja/svelte-persistent-store": "^2.4.2", "beercss": "^3.13.1", "bgutils-js": "^3.2.0", + "buffer": "^6.0.3", "capacitor-music-controls-plugin": "^6.1.0", "capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.9/capacitor-nodejs.tgz", "dayjs": "^1.11.19", @@ -42,7 +43,8 @@ "shaka-player": "^4.16.11", "sponsorblock-api": "^0.2.4", "svelte-infinite-loading": "^1.4.0", - "youtubei.js": "^16.0.1" + "youtubei.js": "^16.0.1", + "zod": "^4.3.5" }, "devDependencies": { "@capacitor/assets": "^3.0.5", @@ -4951,6 +4953,30 @@ "readable-stream": "^3.4.0" } }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -5045,9 +5071,9 @@ } }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -5065,7 +5091,7 @@ "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-crc32": { @@ -14035,6 +14061,15 @@ "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", "license": "MIT" + }, + "node_modules/zod": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", + "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/materialious/package.json b/materialious/package.json index ac476f97..9bda8ea2 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -57,6 +57,7 @@ "@macfja/svelte-persistent-store": "^2.4.2", "beercss": "^3.13.1", "bgutils-js": "^3.2.0", + "buffer": "^6.0.3", "capacitor-music-controls-plugin": "^6.1.0", "capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.9/capacitor-nodejs.tgz", "dayjs": "^1.11.19", @@ -75,6 +76,7 @@ "shaka-player": "^4.16.11", "sponsorblock-api": "^0.2.4", "svelte-infinite-loading": "^1.4.0", - "youtubei.js": "^16.0.1" + "youtubei.js": "^16.0.1", + "zod": "^4.3.5" } -} \ No newline at end of file +} diff --git a/materialious/src/lib/components/ShareVideo.svelte b/materialious/src/lib/components/ShareVideo.svelte index a5c2e5cb..9ec2c67e 100644 --- a/materialious/src/lib/components/ShareVideo.svelte +++ b/materialious/src/lib/components/ShareVideo.svelte @@ -1,13 +1,12 @@ @@ -46,9 +42,9 @@ role="presentation" onclick={async () => { if (Capacitor.isNativePlatform()) { - shareUrl(`${get(instanceStore)}/watch/${video.videoId}`); + shareVideo(`${get(instanceStore)}/watch/${video.videoId}`); } else { - shareUrl( + shareVideo( `${location.origin}${resolve('/watch/[videoId]', { videoId: video.videoId })}`, 'time' ); @@ -62,7 +58,7 @@ class="row" role="presentation" onclick={async () => { - shareUrl(`https://redirect.invidious.io/watch?v=${video.videoId}`); + shareVideo(`https://redirect.invidious.io/watch?v=${video.videoId}`); }} >
    {$_('player.share.invidiousRedirect')}
    @@ -72,7 +68,7 @@ class="row" role="presentation" onclick={async () => { - shareUrl(`https://www.youtube.com/watch?v=${video.videoId}`); + shareVideo(`https://www.youtube.com/watch?v=${video.videoId}`); }} >
    {$_('player.share.youtubeLink')}
    diff --git a/materialious/src/lib/components/SyncParty.svelte b/materialious/src/lib/components/SyncParty.svelte index b7e6848f..2945215f 100644 --- a/materialious/src/lib/components/SyncParty.svelte +++ b/materialious/src/lib/components/SyncParty.svelte @@ -2,15 +2,34 @@ import { goto } from '$app/navigation'; import { resolve } from '$app/paths'; import { page } from '$app/stores'; - import { peerJs, removeWindowQueryFlag, setWindowQueryFlag } from '$lib/misc'; + import { + determinePeerJsInstance, + peerJs, + removeWindowQueryFlag, + setWindowQueryFlag, + shareURL + } from '$lib/misc'; import type { PlayerEvents } from '$lib/player'; - import { Clipboard } from '@capacitor/clipboard'; import ui from 'beercss'; import type { DataConnection } from 'peerjs'; import { onDestroy, onMount } from 'svelte'; import { _ } from '$lib/i18n'; import { get } from 'svelte/store'; import { syncPartyConnectionsStore, syncPartyPeerStore } from '../store'; + import z from 'zod'; + import { Buffer } from 'buffer'; + import { Capacitor } from '@capacitor/core'; + + const SyncInfo = z.object({ + host: z.string(), + path: z.string(), + port: z.number(), + syncId: z.string() + }); + + let syncPartyManualInput: string = $state(''); + + const syncOrigin = Capacitor.isNativePlatform() ? 'https://sync.materialio.us' : location.origin; function changeVideoEvent(conn: DataConnection) { conn.on('data', (data) => { @@ -37,6 +56,16 @@ }); } + function createShareBase64(): string { + return Buffer.from( + JSON.stringify({ + ...determinePeerJsInstance(), + syncId: $syncPartyPeerStore?.id + }), + 'utf-8' + ).toString('base64'); + } + async function startWatchSync() { if ($syncPartyPeerStore) { $syncPartyPeerStore.destroy(); @@ -89,24 +118,36 @@ } }); + async function joinSyncParty(syncInfo: string) { + const parseInfo = SyncInfo.safeParse( + JSON.parse(Buffer.from(syncInfo, 'base64').toString('utf-8')) + ); + + if (parseInfo.error) { + return; + } + + $syncPartyPeerStore = await peerJs(crypto.randomUUID(), parseInfo.data); + $syncPartyPeerStore.on('open', () => { + if (!$syncPartyPeerStore) return; + + const conn = $syncPartyPeerStore.connect(parseInfo.data.syncId); + syncPartyConnectionsStore.set([...($syncPartyConnectionsStore || []), conn]); + + changeVideoEvent(conn); + }); + + $syncPartyPeerStore.on('disconnected', () => { + syncPartyPeerStore.set(null); + syncPartyConnectionsStore.set(null); + }); + } + onMount(async () => { const currentUrl = get(page).url; - const syncId = currentUrl.searchParams.get('sync'); - if (syncId) { - $syncPartyPeerStore = await peerJs(crypto.randomUUID()); - $syncPartyPeerStore.on('open', () => { - if (!$syncPartyPeerStore) return; - - const conn = $syncPartyPeerStore.connect(syncId); - syncPartyConnectionsStore.set([...($syncPartyConnectionsStore || []), conn]); - - changeVideoEvent(conn); - }); - - $syncPartyPeerStore.on('disconnected', () => { - syncPartyPeerStore.set(null); - syncPartyConnectionsStore.set(null); - }); + const syncInfo = currentUrl.searchParams.get('sync'); + if (syncInfo) { + await joinSyncParty(syncInfo); } }); @@ -118,25 +159,23 @@ }); - -
    {$_('layout.syncParty')}
    -

    {$_('layout.syncPartyWarning')}

    + +
    {$_('layout.syncParty')}
    +

    {$_('layout.syncPartyWarning')}

    {#if $syncPartyPeerStore} {/if}
    +
    diff --git a/materialious/src/lib/i18n/locales/en.json b/materialious/src/lib/i18n/locales/en.json index eba4e76a..90354b43 100644 --- a/materialious/src/lib/i18n/locales/en.json +++ b/materialious/src/lib/i18n/locales/en.json @@ -146,6 +146,8 @@ "syncPartyWarning": "Please note your IP will be visible to users you invite.", "startSyncParty": "Start sync party", "endSyncParty": "End sync party", + "joinSyncParty": "Enter sync party URL", + "shareURL": "Share URL", "notifications": "Notifications", "noNewNotifications": "No new notifications here", "settings": "Settings", diff --git a/materialious/src/lib/misc.ts b/materialious/src/lib/misc.ts index c2239271..49c559a2 100644 --- a/materialious/src/lib/misc.ts +++ b/materialious/src/lib/misc.ts @@ -3,7 +3,11 @@ import { resolve } from '$app/paths'; import he from 'he'; import type Peer from 'peerjs'; import { get } from 'svelte/store'; -import { interfaceAllowInsecureRequests, isAndroidTvStore } from './store'; +import { + interfaceAllowInsecureRequests, + interfaceAndroidUseNativeShare, + isAndroidTvStore +} from './store'; import type { Channel, HashTag, @@ -14,6 +18,9 @@ import type { VideoBase } from './api/model'; import { page } from '$app/state'; +import { Capacitor } from '@capacitor/core'; +import { Share } from '@capacitor/share'; +import { Clipboard } from '@capacitor/clipboard'; export function isVideoID(videoId: string): boolean { const regExp = /^[a-zA-Z0-9_-]{11}$/; @@ -46,16 +53,41 @@ export function removeWindowQueryFlag(key: string) { } let PeerInstance: typeof Peer; -export async function peerJs(peerId: string): Promise { +export interface PeerInstance { + host: string; + path: string; + port: number; +} + +export function determinePeerJsInstance(): PeerInstance { + return { + host: import.meta.env.VITE_DEFAULT_PEERJS_HOST || '0.peerjs.com', + path: import.meta.env.VITE_DEFAULT_PEERJS_PATH || '/', + port: import.meta.env.VITE_DEFAULT_PEERJS_PORT || 443 + }; +} + +export async function peerJs( + id: string, + instance: PeerInstance = determinePeerJsInstance() +): Promise { // https://github.com/peers/peerjs/issues/819 if (typeof PeerInstance === 'undefined') { PeerInstance = (await import('peerjs')).Peer; } - return new PeerInstance(peerId, { - host: import.meta.env.VITE_DEFAULT_PEERJS_HOST || '0.peerjs.com', - path: import.meta.env.VITE_DEFAULT_PEERJS_PATH || '/', - port: import.meta.env.VITE_DEFAULT_PEERJS_PORT || 443 - }); + return new PeerInstance(id, instance); +} + +export async function shareURL(url: string) { + if ( + Capacitor.getPlatform() === 'android' && + (await Share.canShare()).value && + get(interfaceAndroidUseNativeShare) + ) { + await Share.share({ url: url }); + } else { + await Clipboard.write({ string: url }); + } } export function ensureNoTrailingSlash(url: any): string { diff --git a/materialious/src/routes/(app)/+layout.svelte b/materialious/src/routes/(app)/+layout.svelte index ad2c5d83..2e8ee47c 100644 --- a/materialious/src/routes/(app)/+layout.svelte +++ b/materialious/src/routes/(app)/+layout.svelte @@ -323,12 +323,10 @@ (mobileSearchShow = false)} />
    {:else} - {#if !Capacitor.isNativePlatform()} - - {/if} + {#if isLoggedIn}