-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
53 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,7 @@ | |
// @license AGPL-3.0-only | ||
// @author Sv443 | ||
// @copyright Sv443 (https://github.com/Sv443) | ||
// @icon https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/images/logo/logo_dev_48.png | ||
// @icon https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/images/logo/logo_dev_48.png | ||
// @match https://music.youtube.com/* | ||
// @match https://www.youtube.com/* | ||
// @run-at document-start | ||
|
@@ -62,18 +62,18 @@ | |
// @grant GM.xmlHttpRequest | ||
// @grant GM.openInTab | ||
// @grant unsafeWindow | ||
// @resource css-above_queue_btns https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/aboveQueueBtns.css#sha256=S+Pkz9xm785iQ5mmX+Z0RZgaCgPvCHqVIKOTX9r/Nt8= | ||
// @resource css-above_queue_btns_sticky https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/aboveQueueBtnsSticky.css#sha256=BJX5ju+5L+4asy16iF3XOuiJUlPg5KNXkcGennJWGB0= | ||
// @resource css-anchor_improvements https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/anchorImprovements.css#sha256=9WSAxeL1Tiv7ZCKrocNrvrQNWSbVY8/bv6wzf0lJ9pg= | ||
// @resource css-auto_like https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/autoLike.css#sha256=A4O2rPsBXjugn0EnF5e1L68Kn3KR7Qm9nlwqe8XWMTM= | ||
// @resource css-bundle https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/dist/BetterYTM.css#sha256=JU4cnENLB/G8BZo0eN0BbOw1+1xbetqjqiyjUAf7/xw= | ||
// @resource css-fix_hdr https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/fixHDR.css#sha256=4GeuAroKiRD1asFe6cQ1UiSg+p82Jyl/8JeWXLNTgL8= | ||
// @resource css-fix_playerpage_theming https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/fixPlayerPageTheming.css#sha256=7xS+bvp7TJFdzyKztER8xYtsLhinTU1dAdmzuO057p0= | ||
// @resource css-fix_spacing https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/fixSpacing.css#sha256=T57yRp87wz/ye3i4MTRh/o7cFaQsUom4yjG/Kp4eevM= | ||
// @resource css-fix_sponsorblock https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/fixSponsorBlock.css#sha256=KY3RepJ8BaLPTM2n1+irvZUJCLlC0i2EiLzKRgz6z38= | ||
// @resource css-hide_themesong_logo https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/hideThemeSongLogo.css#sha256=Nvr0CaLm23d5dNlJ2bOaxLw2cHfH8KBnpPCbmbXgnOE= | ||
// @resource css-show_votes https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/showVotes.css#sha256=Zxm4eBmg6GtFMCnzWRZXW08nr4pwk6aUCMb8x8xIsJU= | ||
// @resource css-vol_slider_size https://raw.githubusercontent.com/Sv443/BetterYTM/ab5327bc/assets/style/volSliderSize.css#sha256=WKE/i2XjuE2HYfOkZ9N4QtEgKsWdrhMXZyb2cc+iAAk= | ||
// @resource css-above_queue_btns https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/aboveQueueBtns.css#sha256=S+Pkz9xm785iQ5mmX+Z0RZgaCgPvCHqVIKOTX9r/Nt8= | ||
// @resource css-above_queue_btns_sticky https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/aboveQueueBtnsSticky.css#sha256=BJX5ju+5L+4asy16iF3XOuiJUlPg5KNXkcGennJWGB0= | ||
// @resource css-anchor_improvements https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/anchorImprovements.css#sha256=9WSAxeL1Tiv7ZCKrocNrvrQNWSbVY8/bv6wzf0lJ9pg= | ||
// @resource css-auto_like https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/autoLike.css#sha256=A4O2rPsBXjugn0EnF5e1L68Kn3KR7Qm9nlwqe8XWMTM= | ||
// @resource css-bundle https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/dist/BetterYTM.css#sha256=JU4cnENLB/G8BZo0eN0BbOw1+1xbetqjqiyjUAf7/xw= | ||
// @resource css-fix_hdr https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/fixHDR.css#sha256=4GeuAroKiRD1asFe6cQ1UiSg+p82Jyl/8JeWXLNTgL8= | ||
// @resource css-fix_playerpage_theming https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/fixPlayerPageTheming.css#sha256=7xS+bvp7TJFdzyKztER8xYtsLhinTU1dAdmzuO057p0= | ||
// @resource css-fix_spacing https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/fixSpacing.css#sha256=T57yRp87wz/ye3i4MTRh/o7cFaQsUom4yjG/Kp4eevM= | ||
// @resource css-fix_sponsorblock https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/fixSponsorBlock.css#sha256=KY3RepJ8BaLPTM2n1+irvZUJCLlC0i2EiLzKRgz6z38= | ||
// @resource css-hide_themesong_logo https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/hideThemeSongLogo.css#sha256=Nvr0CaLm23d5dNlJ2bOaxLw2cHfH8KBnpPCbmbXgnOE= | ||
// @resource css-show_votes https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/showVotes.css#sha256=Zxm4eBmg6GtFMCnzWRZXW08nr4pwk6aUCMb8x8xIsJU= | ||
// @resource css-vol_slider_size https://cdn.jsdelivr.net/gh/Sv443/BetterYTM@53868f7a/assets/style/volSliderSize.css#sha256=WKE/i2XjuE2HYfOkZ9N4QtEgKsWdrhMXZyb2cc+iAAk= | ||
// @require https://cdn.jsdelivr.net/npm/@sv443-network/[email protected]/dist/index.global.js | ||
// @require https://cdn.jsdelivr.net/npm/[email protected]/lib/marked.umd.js | ||
// @require https://cdn.jsdelivr.net/npm/[email protected]/lib/umd/index.js | ||
|
@@ -125,24 +125,32 @@ var PluginIntent; | |
PluginIntent[PluginIntent["ReadAutoLikeData"] = 64] = "ReadAutoLikeData"; | ||
/** Plugin can write to auto-like data */ | ||
PluginIntent[PluginIntent["WriteAutoLikeData"] = 128] = "WriteAutoLikeData"; | ||
})(PluginIntent || (PluginIntent = {}));// these variables will have their values replaced by the build script: | ||
})(PluginIntent || (PluginIntent = {}));// these strings will have their values replaced by the post-build script: | ||
const modeRaw = "development"; | ||
const branchRaw = "develop"; | ||
const hostRaw = "github"; | ||
const buildNumberRaw = "ab5327bc"; | ||
/** The mode in which the script was built (production or development) */ | ||
const mode = (modeRaw.match(/^#{{.+}}$/) ? "production" : modeRaw); | ||
/** The branch to use in various URLs that point to the GitHub repo */ | ||
const branch = (branchRaw.match(/^#{{.+}}$/) ? "main" : branchRaw); | ||
const buildNumberRaw = "53868f7a"; | ||
const assetSourceRaw = "jsdelivr"; | ||
const devServerPortRaw = "8710"; | ||
const getRawVal = (rawVal, defaultVal) => (rawVal.match(/^#{{.+}}$/) ? defaultVal : rawVal); | ||
/** Path to the GitHub repo */ | ||
const repo = "Sv443/BetterYTM"; | ||
/** The mode in which the script was built (production or development) */ | ||
const mode = getRawVal(modeRaw, "production"); | ||
/** The branch to use in various URLs that point to the GitHub repo */ | ||
const branch = getRawVal(branchRaw, "main"); | ||
/** Which host the userscript was installed from */ | ||
const host = (hostRaw.match(/^#{{.+}}$/) ? "github" : hostRaw); | ||
const host = getRawVal(hostRaw, "github"); | ||
/** The build number of the userscript */ | ||
const buildNumber = (buildNumberRaw.match(/^#{{.+}}$/) ? "BUILD_ERROR!" : buildNumberRaw); // asserted as generic string instead of literal | ||
const changelogUrl = `https://raw.githubusercontent.com/${repo}/${branch}/changelog.md`; | ||
const buildNumber = getRawVal(buildNumberRaw, "BUILD_ERROR!"); | ||
/** The source of the assets - github, jsdelivr or local */ | ||
const assetSource = getRawVal(assetSourceRaw, "jsdelivr"); | ||
/** The port of the dev server */ | ||
const devServerPort = Number(getRawVal(devServerPortRaw, 8710)); | ||
/** URL to the changelog file */ | ||
const changelogUrl = `https://raw.githubusercontent.com/${repo}/${buildNumber !== null && buildNumber !== void 0 ? buildNumber : branch}/changelog.md`; | ||
/** The URL search parameters at the earliest possible time */ | ||
const initialParams = new URL(location.href).searchParams; | ||
const initialParams = Object.assign({}, new URL(location.href).searchParams); | ||
/** Names of platforms by key of {@linkcode host} */ | ||
const platformNames = { | ||
github: "GitHub", | ||
|
@@ -155,7 +163,7 @@ const compressionFormat = "deflate-raw"; | |
const sessionStorageAvailable = typeof (sessionStorage === null || sessionStorage === void 0 ? void 0 : sessionStorage.setItem) === "function" | ||
&& (() => { | ||
try { | ||
const key = `_bytm_test_${UserUtils.randomId(6, 36)}`; | ||
const key = `_bytm_test_${UserUtils.randomId(6, 36, false, true)}`; | ||
sessionStorage.setItem(key, "test"); | ||
sessionStorage.removeItem(key); | ||
return true; | ||
|
@@ -4110,14 +4118,10 @@ var resources = { | |
"css-hide_themesong_logo": "style/hideThemeSongLogo.css", | ||
"css-show_votes": "style/showVotes.css", | ||
"css-vol_slider_size": "style/volSliderSize.css", | ||
"doc-changelog": { | ||
path: "/changelog.md", | ||
ref: "main", | ||
integrity: false | ||
}, | ||
"doc-license": { | ||
path: "/LICENSE.txt", | ||
ref: "$BRANCH" | ||
ref: "$BRANCH", | ||
integrity: false | ||
}, | ||
"font-cousine_ttf": "fonts/Cousine/Cousine-Regular.ttf", | ||
"font-cousine_woff": "fonts/Cousine/Cousine-Regular.woff", | ||
|
@@ -4370,14 +4374,25 @@ async function getResourceUrl(name, uncached = false) { | |
if (!url || url.length === 0) { | ||
const resObjOrStr = (_a = resourcesJson.resources) === null || _a === void 0 ? void 0 : _a[name]; | ||
if (typeof resObjOrStr === "object" || typeof resObjOrStr === "string") { | ||
const pathName = typeof resObjOrStr === "object" && "path" in resObjOrStr ? resObjOrStr.path : resObjOrStr; | ||
const ghRef = typeof resObjOrStr === "object" && "ref" in resObjOrStr ? resObjOrStr.ref : buildNumber; | ||
if (((pathName === null || pathName === void 0 ? void 0 : pathName.startsWith("/")) && pathName.length > 1)) | ||
return `https://raw.githubusercontent.com/${repo}/${ghRef}${pathName}`; | ||
else if (pathName && pathName.startsWith("http")) | ||
return pathName; | ||
else if (pathName && pathName.length > 0) | ||
return `https://raw.githubusercontent.com/${repo}/${ghRef}/assets/${pathName}`; | ||
const pathName = typeof resObjOrStr === "object" && "path" in resObjOrStr ? resObjOrStr === null || resObjOrStr === void 0 ? void 0 : resObjOrStr.path : resObjOrStr; | ||
const ghRef = typeof resObjOrStr === "object" && "ref" in resObjOrStr ? resObjOrStr === null || resObjOrStr === void 0 ? void 0 : resObjOrStr.ref : buildNumber; | ||
if (pathName) { | ||
return pathName.startsWith("http") | ||
? pathName | ||
: (() => { | ||
let path = pathName; | ||
if (path.startsWith("/")) | ||
path = path.slice(1); | ||
switch (assetSource) { | ||
case "jsdelivr": | ||
return `https://cdn.jsdelivr.net/gh/${repo}@${ghRef}/assets/${path}`; | ||
case "github": | ||
return `https://raw.githubusercontent.com/${repo}/${ghRef}/assets/${path}`; | ||
case "local": | ||
return `http://localhost:${devServerPort}/assets/${path}`; | ||
} | ||
})(); | ||
} | ||
} | ||
warn(`Couldn't get blob URL nor external URL for @resource '${name}', attempting to use base64-encoded fallback`); | ||
// @ts-ignore | ||
|