mirror of
https://github.com/younesaassila/ttv-lol-pro.git
synced 2025-05-17 14:47:09 +02:00
✨ Add #39
This commit is contained in:
parent
0ea6c64101
commit
6cebd58614
22
README.md
22
README.md
@ -65,7 +65,7 @@ This fork:
|
|||||||
|
|
||||||
### Firefox (Recommended)
|
### Firefox (Recommended)
|
||||||
|
|
||||||
> ✅ The add-on updates automatically.
|
#### ✅ With Automatic Updates
|
||||||
|
|
||||||
1. Download the latest version of this extension in the "Releases" section (XPI file)
|
1. Download the latest version of this extension in the "Releases" section (XPI file)
|
||||||
1. Go to `about:addons`
|
1. Go to `about:addons`
|
||||||
@ -74,7 +74,25 @@ This fork:
|
|||||||
|
|
||||||
### Chrome
|
### Chrome
|
||||||
|
|
||||||
> ❌ The extension does not update automatically.
|
#### ✅ With Automatic Updates (Requires registry editing on Windows)
|
||||||
|
|
||||||
|
1. Download the latest version of this extension in the "Releases" section (CRX file) using the "Save link as…" button
|
||||||
|
1. Go to `chrome://extensions`
|
||||||
|
1. Turn on `Developer mode` (top right corner)
|
||||||
|
1. Drag and drop the CRX file you just downloaded into the extensions page (if an error occurs, restart your browser and try again)
|
||||||
|
1. Add this extension to your browser's allowlist (if you don't do this, the extension will be disabled at the next browser restart)
|
||||||
|
- For Windows users:
|
||||||
|
1. Open the registry editor (`regedit.exe`)
|
||||||
|
1. Create the following key (if it doesn't exist):
|
||||||
|
- `HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallAllowlist` for Chrome
|
||||||
|
- `HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallAllowlist` for Edge
|
||||||
|
- `HKEY_LOCAL_MACHINE\SOFTWARE\Policies\BraveSoftware\Brave\ExtensionInstallAllowlist` for Brave
|
||||||
|
1. Create a new `REG_SZ` (string) value named `1` (or any number) and set its value to `gfolbeacfbanmnohmnppjgenmmajffop` (the extension ID)
|
||||||
|
1. Restart your browser
|
||||||
|
- For Mac users: Look up how to allow local installations of extensions on Mac, or use the "Without Automatic Updates" method
|
||||||
|
- For Linux users: Chromium-based browsers on Linux allow local installations of extensions
|
||||||
|
|
||||||
|
#### ❌ Without Automatic Updates
|
||||||
|
|
||||||
1. Download the latest version of this extension in the "Releases" section (ZIP file)
|
1. Download the latest version of this extension in the "Releases" section (ZIP file)
|
||||||
1. Unzip the ZIP file you just downloaded
|
1. Unzip the ZIP file you just downloaded
|
||||||
|
@ -1,12 +1,7 @@
|
|||||||
import browser from "webextension-polyfill";
|
import browser from "webextension-polyfill";
|
||||||
import isChrome from "../common/ts/isChrome";
|
|
||||||
import onApiHeadersReceived from "./handlers/onApiHeadersReceived";
|
import onApiHeadersReceived from "./handlers/onApiHeadersReceived";
|
||||||
import onBeforeManifestRequest from "./handlers/onBeforeManifestRequest";
|
import onBeforeManifestRequest from "./handlers/onBeforeManifestRequest";
|
||||||
import onBeforeSendApiHeaders from "./handlers/onBeforeSendApiHeaders";
|
import onBeforeSendApiHeaders from "./handlers/onBeforeSendApiHeaders";
|
||||||
import onStartupUpdateCheck from "./handlers/onStartupUpdateCheck";
|
|
||||||
|
|
||||||
// Check for updates on Chrome startup.
|
|
||||||
if (isChrome) browser.runtime.onStartup.addListener(onStartupUpdateCheck);
|
|
||||||
|
|
||||||
// Redirect the HLS master manifest request to TTV LOL's API.
|
// Redirect the HLS master manifest request to TTV LOL's API.
|
||||||
browser.webRequest.onBeforeRequest.addListener(
|
browser.webRequest.onBeforeRequest.addListener(
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
import semverCompare from "semver-compare";
|
|
||||||
import browser from "webextension-polyfill";
|
|
||||||
import store from "../../store";
|
|
||||||
|
|
||||||
//#region Types
|
|
||||||
type Update = {
|
|
||||||
version: string;
|
|
||||||
update_link: string;
|
|
||||||
};
|
|
||||||
//#endregion
|
|
||||||
|
|
||||||
export default async function onStartupUpdateCheck() {
|
|
||||||
if (store.readyState !== "complete") {
|
|
||||||
store.addEventListener("load", () => onStartupUpdateCheck());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the last update check was less than 24 hours ago, don't check again.
|
|
||||||
if (
|
|
||||||
!store.state.isUpdateAvailable &&
|
|
||||||
Date.now() - store.state.lastUpdateCheck < 1000 * 60 * 60 * 24
|
|
||||||
) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const manifest = browser.runtime.getManifest();
|
|
||||||
const currentVersion = manifest.version;
|
|
||||||
const updateUrl = manifest.browser_specific_settings?.gecko?.update_url;
|
|
||||||
if (!updateUrl) {
|
|
||||||
store.state.isUpdateAvailable = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch(updateUrl);
|
|
||||||
const json = await response.json();
|
|
||||||
const updates = json.addons["{76ef94a4-e3d0-4c6f-961a-d38a429a332b}"]
|
|
||||||
.updates as Update[];
|
|
||||||
updates.sort((a, b) => semverCompare(a.version, b.version));
|
|
||||||
const latestVersion = updates[updates.length - 1].version;
|
|
||||||
store.state.isUpdateAvailable =
|
|
||||||
semverCompare(currentVersion, latestVersion) < 0; // currentVersion < latestVersion
|
|
||||||
store.state.lastUpdateCheck = Date.now();
|
|
||||||
} catch {
|
|
||||||
store.state.isUpdateAvailable = false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -41,5 +41,6 @@
|
|||||||
"https://*.ttvnw.net/*",
|
"https://*.ttvnw.net/*",
|
||||||
"https://api.ttv.lol/*",
|
"https://api.ttv.lol/*",
|
||||||
"https://www.twitch.tv/*"
|
"https://www.twitch.tv/*"
|
||||||
]
|
],
|
||||||
|
"update_url": "https://younesaassila.github.io/ttv-lol-pro/updates.xml"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user