From c771252e7807866e15f3262ccd4f3a773d5fe8e6 Mon Sep 17 00:00:00 2001 From: rift <117926989+Riftriot@users.noreply.github.com> Date: Tue, 26 Dec 2023 21:44:15 -0600 Subject: [PATCH] SiteSupport.json for automatic mode --- src/pages/ProxyFrame.tsx | 24 +++++++++++++++++++++--- src/util/SiteSupport.json | 6 ++++++ 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 src/util/SiteSupport.json diff --git a/src/pages/ProxyFrame.tsx b/src/pages/ProxyFrame.tsx index 19f402d..ddaf43a 100644 --- a/src/pages/ProxyFrame.tsx +++ b/src/pages/ProxyFrame.tsx @@ -4,6 +4,8 @@ import { useEffect, useState } from "preact/hooks"; //import our Iframe component import { Iframe } from "../components/iframe/Iframe"; +import SiteSupport from "../util/SiteSupport.json"; + declare global { interface Window { __uv$config: any; @@ -38,9 +40,25 @@ export function ProxyFrame(props: { url: string }) { result = window.__dynamic$config.prefix + encodeURIComponent(decodedUrl); } else { - result = - window.__uv$config.prefix + - window.__uv$config.encodeUrl(decodedUrl); + // automatic. use SiteSupport.json to determine proxy support + const matchingKey = Object.keys(SiteSupport).find((key) => + decodedUrl.includes(key) + ); + + if (SiteSupport[matchingKey] === "ultraviolet") { + result = + window.__uv$config.prefix + + window.__uv$config.encodeUrl(decodedUrl); + } else if (SiteSupport[matchingKey] === "dynamic") { + result = + window.__dynamic$config.prefix + encodeURIComponent(decodedUrl); + } else if (SiteSupport[matchingKey] === "rammerhead") { + result = await RammerheadEncode(decodedUrl); + } else { + result = + window.__uv$config.prefix + + window.__uv$config.encodeUrl(decodedUrl); // uv as backup + } } setProxiedUrl(result); } catch (error) { diff --git a/src/util/SiteSupport.json b/src/util/SiteSupport.json new file mode 100644 index 0000000..eec58e0 --- /dev/null +++ b/src/util/SiteSupport.json @@ -0,0 +1,6 @@ +{ + "youtube.com": "dynamic", + "youtu.be": "dynamic", + "example.org": "rammerhead", + "example.com": "ultraviolet" +} \ No newline at end of file