Sv443 4 mesiacov pred
rodič
commit
46f9d8acbb
1 zmenil súbory, kde vykonal 53 pridanie a 38 odobranie
  1. 53 38
      dist/BetterYTM.user.js

+ 53 - 38
dist/BetterYTM.user.js

@@ -8,7 +8,7 @@
 // @license           AGPL-3.0-only
 // @license           AGPL-3.0-only
 // @author            Sv443
 // @author            Sv443
 // @copyright         Sv443 (https://github.com/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://music.youtube.com/*
 // @match             https://www.youtube.com/*
 // @match             https://www.youtube.com/*
 // @run-at            document-start
 // @run-at            document-start
@@ -62,18 +62,18 @@
 // @grant             GM.xmlHttpRequest
 // @grant             GM.xmlHttpRequest
 // @grant             GM.openInTab
 // @grant             GM.openInTab
 // @grant             unsafeWindow
 // @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/@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/marked.umd.js
 // @require           https://cdn.jsdelivr.net/npm/[email protected]/lib/umd/index.js
 // @require           https://cdn.jsdelivr.net/npm/[email protected]/lib/umd/index.js
@@ -125,24 +125,32 @@ var PluginIntent;
     PluginIntent[PluginIntent["ReadAutoLikeData"] = 64] = "ReadAutoLikeData";
     PluginIntent[PluginIntent["ReadAutoLikeData"] = 64] = "ReadAutoLikeData";
     /** Plugin can write to auto-like data */
     /** Plugin can write to auto-like data */
     PluginIntent[PluginIntent["WriteAutoLikeData"] = 128] = "WriteAutoLikeData";
     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 modeRaw = "development";
 const branchRaw = "develop";
 const branchRaw = "develop";
 const hostRaw = "github";
 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 */
 /** Path to the GitHub repo */
 const repo = "Sv443/BetterYTM";
 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 */
 /** Which host the userscript was installed from */
-const host = (hostRaw.match(/^#{{.+}}$/) ? "github" : hostRaw);
+const host = getRawVal(hostRaw, "github");
 /** The build number of the userscript */
 /** 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 */
 /** 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} */
 /** Names of platforms by key of {@linkcode host} */
 const platformNames = {
 const platformNames = {
     github: "GitHub",
     github: "GitHub",
@@ -155,7 +163,7 @@ const compressionFormat = "deflate-raw";
 const sessionStorageAvailable = typeof (sessionStorage === null || sessionStorage === void 0 ? void 0 : sessionStorage.setItem) === "function"
 const sessionStorageAvailable = typeof (sessionStorage === null || sessionStorage === void 0 ? void 0 : sessionStorage.setItem) === "function"
     && (() => {
     && (() => {
         try {
         try {
-            const key = `_bytm_test_${UserUtils.randomId(6, 36)}`;
+            const key = `_bytm_test_${UserUtils.randomId(6, 36, false, true)}`;
             sessionStorage.setItem(key, "test");
             sessionStorage.setItem(key, "test");
             sessionStorage.removeItem(key);
             sessionStorage.removeItem(key);
             return true;
             return true;
@@ -4110,14 +4118,10 @@ var resources = {
 	"css-hide_themesong_logo": "style/hideThemeSongLogo.css",
 	"css-hide_themesong_logo": "style/hideThemeSongLogo.css",
 	"css-show_votes": "style/showVotes.css",
 	"css-show_votes": "style/showVotes.css",
 	"css-vol_slider_size": "style/volSliderSize.css",
 	"css-vol_slider_size": "style/volSliderSize.css",
-	"doc-changelog": {
-		path: "/changelog.md",
-		ref: "main",
-		integrity: false
-	},
 	"doc-license": {
 	"doc-license": {
 		path: "/LICENSE.txt",
 		path: "/LICENSE.txt",
-		ref: "$BRANCH"
+		ref: "$BRANCH",
+		integrity: false
 	},
 	},
 	"font-cousine_ttf": "fonts/Cousine/Cousine-Regular.ttf",
 	"font-cousine_ttf": "fonts/Cousine/Cousine-Regular.ttf",
 	"font-cousine_woff": "fonts/Cousine/Cousine-Regular.woff",
 	"font-cousine_woff": "fonts/Cousine/Cousine-Regular.woff",
@@ -4370,14 +4374,25 @@ async function getResourceUrl(name, uncached = false) {
     if (!url || url.length === 0) {
     if (!url || url.length === 0) {
         const resObjOrStr = (_a = resourcesJson.resources) === null || _a === void 0 ? void 0 : _a[name];
         const resObjOrStr = (_a = resourcesJson.resources) === null || _a === void 0 ? void 0 : _a[name];
         if (typeof resObjOrStr === "object" || typeof resObjOrStr === "string") {
         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`);
         warn(`Couldn't get blob URL nor external URL for @resource '${name}', attempting to use base64-encoded fallback`);
         // @ts-ignore
         // @ts-ignore