From 2a3771e45ac32a3fe5ac3a984769cf6c2125050b Mon Sep 17 00:00:00 2001 From: Shiba <44804845+DeepDoge@users.noreply.github.com> Date: Fri, 15 Apr 2022 09:50:25 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8D=99=20signature=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/settings.ts | 10 +++++++--- src/common/useSettings.ts | 15 +++++++++------ src/common/yt/urlResolve.ts | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/common/settings.ts b/src/common/settings.ts index 56cb35e..f1ba6e5 100644 --- a/src/common/settings.ts +++ b/src/common/settings.ts @@ -110,6 +110,7 @@ export const sourcePlatfromSettings = { const ytUrlResolver = (o: { name: string href: string + signRequest: boolean }) => o export type YTUrlResolver = ReturnType export type YTUrlResolverName = Extract @@ -117,14 +118,17 @@ export const getYtUrlResolversSettingsEntiries = () => Object.entries(ytUrlResol export const ytUrlResolversSettings = { odyseeApi: ytUrlResolver({ name: "Odysee", - href: "https://api.odysee.com/yt/resolve" + href: "https://api.odysee.com/yt/resolve", + signRequest: false }), madiatorFinder: ytUrlResolver({ name: "Madiator Finder", - href: "https://finder.madiator.com/api/v1/resolve" + href: "https://finder.madiator.com/api/v1/resolve", + signRequest: true }), local: ytUrlResolver({ name: "Local", - href: "http://localhost:3000/api/v1/resolve" + href: "http://localhost:3000/api/v1/resolve", + signRequest: true }) } \ No newline at end of file diff --git a/src/common/useSettings.ts b/src/common/useSettings.ts index 8578a08..2fc4ee3 100644 --- a/src/common/useSettings.ts +++ b/src/common/useSettings.ts @@ -22,11 +22,6 @@ export function useSettings(initial: ExtensionSettings) { chrome.storage.onChanged.addListener(changeListener) chrome.storage.local.get(Object.keys(initial), o => dispatch(o as Partial)) - generateKeys().then((keys) => { - setSetting('publicKey', keys.publicKey) - setSetting('privateKey', keys.privateKey) - }) - return () => chrome.storage.onChanged.removeListener(changeListener) }, []) @@ -38,4 +33,12 @@ export const setSetting = (setting: K, value: /** A hook to read watch on lbry settings from local storage */ -export const useLbrySettings = () => useSettings(DEFAULT_SETTINGS) \ No newline at end of file +export const useLbrySettings = () => useSettings(DEFAULT_SETTINGS) + +{ + const settings = useLbrySettings() + if (!settings.publicKey || !settings.privateKey) generateKeys().then((keys) => { + setSetting('publicKey', keys.publicKey) + setSetting('privateKey', keys.privateKey) + }) +} \ No newline at end of file diff --git a/src/common/yt/urlResolve.ts b/src/common/yt/urlResolve.ts index b7f7b68..8c87784 100644 --- a/src/common/yt/urlResolve.ts +++ b/src/common/yt/urlResolve.ts @@ -42,7 +42,7 @@ export async function resolveById(params: Paramaters, progressCallback?: (progre const url = new URL(`${urlResolverSetting.href}`) url.searchParams.set('video_ids', params.filter((item) => item.type === 'video').map((item) => item.id).join(',')) url.searchParams.set('channel_ids', params.filter((item) => item.type === 'channel').map((item) => item.id).join(',')) - if (publicKey && privateKey) + if (urlResolverSetting.signRequest && publicKey && privateKey) url.searchParams.set('keys', JSON.stringify({ signature: await sign(url.searchParams.toString(), privateKey), publicKey