From d5e76161953e1240d80f29f6e31017e881b57601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nolovenodie=E4=B8=B6?= Date: Wed, 3 May 2023 00:37:37 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20=E8=BF=94=E5=9B=9E=E4=B8=BB=E9=A1=B5?= =?UTF-8?q?=E9=97=AE=E9=A2=98,=20Update=20=E9=A1=B5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 --- content/main.js | 60 ++++++++++++++++++++-------- manifest.json | 4 +- static/css/style.css | 1 + static/js/md5.js | 95 -------------------------------------------- static/js/md5.min.js | 1 + 6 files changed, 48 insertions(+), 118 deletions(-) delete mode 100644 static/js/md5.js create mode 100644 static/js/md5.min.js diff --git a/README.md b/README.md index f7751f0..c1b6c94 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,6 @@ https://user-images.githubusercontent.com/18238152/235517763-5ee7fe21-87e7-414f- Chrome 扩展设置 > 开发者模式 > 加载已解压的扩展程序 > 直接选择源码即可 -## 等待修复 - -- 点击返回后重置元素 -- 点击主页后重置元素 - ## TODO - 封装为单 JS/CSS, 供客户端使用 diff --git a/content/main.js b/content/main.js index 12feb21..f76e8ab 100644 --- a/content/main.js +++ b/content/main.js @@ -1,26 +1,48 @@ class Home { static start() { + this.cache = { + items: undefined, + item: new Map(), + }; this.itemQuery = { ImageTypes: "Backdrop", EnableImageTypes: "Logo,Backdrop", IncludeItemTypes: "Movie,Series", SortBy: "ProductionYear, PremiereDate, SortName", Recursive: true, ImageTypeLimit: 1, Limit: 10, Fields: "ProductionYear", SortOrder: "Descending", EnableUserData: false, EnableTotalRecordCount: false }; this.coverOptions = { type: "Backdrop", maxWidth: 3000 }; this.logoOptions = { type: "Logo", maxWidth: 3000 }; - if (window.location.href.indexOf("home") != -1) { - const load = ` -
-

MISTY MEDIA

-
-
- `; - $("body").append(load); - } + setInterval(() => { + if (window.location.href.indexOf("/home") != -1) { + if ($(".view:not(.hide) .misty-banner").length == 0 && $(".misty-loading").length == 0) { + this.initLoading(); + } + if ($(".hide .misty-banner").length != 0) { + $(".hide .misty-banner").remove(); + clearInterval(this.bannerInterval); + this.init(); + } + } + }, 100); + this.init(); + } + + static init() { CommonUtils.selectWait(".section0 .card", async () => { await this.initBanner(); this.initEvent(); }); } + /* 插入Loading */ + static initLoading() { + const load = ` +
+

MISTY MEDIA

+
+
+ `; + $("body").append(load); + } + static injectCode(code) { - let hash = md5(code); + let hash = md5(code + Math.random().toString()); return new Promise((resolve, reject) => { const channel = new BroadcastChannel(hash); channel.addEventListener("message", (event) => resolve(event.data)); @@ -52,11 +74,17 @@ class Home { } static getItems(query) { - return this.injectCall("getItems", "client.getCurrentUserId(), " + JSON.stringify(query)); + if (this.cache.items == undefined) { + this.cache.items = this.injectCall("getItems", "client.getCurrentUserId(), " + JSON.stringify(query)); + } + return this.cache.items; } static getItem(itemId) { - return this.injectCall("getItem", `client.getCurrentUserId(), "${itemId}"`); + if (!this.cache.item.has(itemId)) { + this.cache.item.set(itemId, this.injectCall("getItem", `client.getCurrentUserId(), "${itemId}"`)); + } + return this.cache.item.get(itemId); } static getImageUrl(itemId, options) { @@ -74,8 +102,8 @@ class Home { `; - $(".homeSectionsContainer").prepend(banner); - $(".section0").detach().appendTo(".misty-banner-library"); + $(".view:not(.hide) .homeSectionsContainer").prepend(banner); + $(".view:not(.hide) .section0").detach().appendTo(".view:not(.hide) .misty-banner-library"); // 插入数据 const data = await this.getItems(this.itemQuery); @@ -113,7 +141,7 @@ class Home { }); if (complete == $(".misty-banner-item").length && $(".misty-banner-item").length != 0) { clearInterval(loading); - $(".misty-loading").fadeOut(500); + $(".misty-loading").fadeOut(500, () => $(".misty-loading").remove()); await CommonUtils.sleep(150); // 置入场动画 let delay = 80; // 动媒体库画间隔 @@ -128,7 +156,7 @@ class Home { // 滚屏逻辑 var index = 0; - setInterval(async () => { + this.bannerInterval = setInterval(async () => { // 背景切换 index += index + 1 == $(".misty-banner-item").length ? -index : 1; $(".misty-banner-body").css("left", -(index * 100).toString() + "%"); diff --git a/manifest.json b/manifest.json index 91c9d5e..2040b17 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Emby Tools.", - "version": "1.0.1", + "version": "1.0.2", "description": "Misty Emby Tools.", "author": "Nolovenodie", "homepage_url": "https://ssky.me", @@ -21,7 +21,7 @@ "matches": [""], "include_globs": ["*://*:8096/*", "*://*:12308/*"], "css": ["static/css/style.css"], - "js": ["static/js/jquery-3.6.0.min.js", "static/js/common-utils.js", "static/js/md5.js", "content/main.js"], + "js": ["static/js/jquery-3.6.0.min.js", "static/js/common-utils.js", "static/js/md5.min.js", "content/main.js"], "run_at": "document_end" } ], diff --git a/static/css/style.css b/static/css/style.css index 006b37b..bf9593c 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -98,6 +98,7 @@ } .misty-loading { + z-index: 999; position: fixed; top: 0; left: 0; diff --git a/static/js/md5.js b/static/js/md5.js deleted file mode 100644 index 04fd3b6..0000000 --- a/static/js/md5.js +++ /dev/null @@ -1,95 +0,0 @@ -function md5(a) { - function b(a, b) { - return (a << b) | (a >>> (32 - b)); - } - - function c(a, b) { - var c, d, e, f, g; - return (e = 2147483648 & a), (f = 2147483648 & b), (c = 1073741824 & a), (d = 1073741824 & b), (g = (1073741823 & a) + (1073741823 & b)), c & d ? 2147483648 ^ g ^ e ^ f : c | d ? (1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f) : g ^ e ^ f; - } - - function d(a, b, c) { - return (a & b) | (~a & c); - } - - function e(a, b, c) { - return (a & c) | (b & ~c); - } - - function f(a, b, c) { - return a ^ b ^ c; - } - - function g(a, b, c) { - return b ^ (a | ~c); - } - - function h(a, e, f, g, h, i, j) { - return (a = c(a, c(c(d(e, f, g), h), j))), c(b(a, i), e); - } - - function i(a, d, f, g, h, i, j) { - return (a = c(a, c(c(e(d, f, g), h), j))), c(b(a, i), d); - } - - function j(a, d, e, g, h, i, j) { - return (a = c(a, c(c(f(d, e, g), h), j))), c(b(a, i), d); - } - - function k(a, d, e, f, h, i, j) { - return (a = c(a, c(c(g(d, e, f), h), j))), c(b(a, i), d); - } - - function l(a) { - for (var b, c = a.length, d = c + 8, e = (d - (d % 64)) / 64, f = 16 * (e + 1), g = new Array(f - 1), h = 0, i = 0; c > i; ) (b = (i - (i % 4)) / 4), (h = (i % 4) * 8), (g[b] = g[b] | (a.charCodeAt(i) << h)), i++; - return (b = (i - (i % 4)) / 4), (h = (i % 4) * 8), (g[b] = g[b] | (128 << h)), (g[f - 2] = c << 3), (g[f - 1] = c >>> 29), g; - } - - function m(a) { - var b, - c, - d = "", - e = ""; - for (c = 0; 3 >= c; c++) (b = (a >>> (8 * c)) & 255), (e = "0" + b.toString(16)), (d += e.substr(e.length - 2, 2)); - return d; - } - - function n(a) { - a = a.replace(/\r\n/g, "\n"); - for (var b = "", c = 0; c < a.length; c++) { - var d = a.charCodeAt(c); - 128 > d ? (b += String.fromCharCode(d)) : d > 127 && 2048 > d ? ((b += String.fromCharCode((d >> 6) | 192)), (b += String.fromCharCode((63 & d) | 128))) : ((b += String.fromCharCode((d >> 12) | 224)), (b += String.fromCharCode(((d >> 6) & 63) | 128)), (b += String.fromCharCode((63 & d) | 128))); - } - return b; - } - - var o, - p, - q, - r, - s, - t, - u, - v, - w, - x = [], - y = 7, - z = 12, - A = 17, - B = 22, - C = 5, - D = 9, - E = 14, - F = 20, - G = 4, - H = 11, - I = 16, - J = 23, - K = 6, - L = 10, - M = 15, - N = 21; - for (a = n(a), x = l(a), t = 1732584193, u = 4023233417, v = 2562383102, w = 271733878, o = 0; o < x.length; o += 16) (p = t), (q = u), (r = v), (s = w), (t = h(t, u, v, w, x[o + 0], y, 3614090360)), (w = h(w, t, u, v, x[o + 1], z, 3905402710)), (v = h(v, w, t, u, x[o + 2], A, 606105819)), (u = h(u, v, w, t, x[o + 3], B, 3250441966)), (t = h(t, u, v, w, x[o + 4], y, 4118548399)), (w = h(w, t, u, v, x[o + 5], z, 1200080426)), (v = h(v, w, t, u, x[o + 6], A, 2821735955)), (u = h(u, v, w, t, x[o + 7], B, 4249261313)), (t = h(t, u, v, w, x[o + 8], y, 1770035416)), (w = h(w, t, u, v, x[o + 9], z, 2336552879)), (v = h(v, w, t, u, x[o + 10], A, 4294925233)), (u = h(u, v, w, t, x[o + 11], B, 2304563134)), (t = h(t, u, v, w, x[o + 12], y, 1804603682)), (w = h(w, t, u, v, x[o + 13], z, 4254626195)), (v = h(v, w, t, u, x[o + 14], A, 2792965006)), (u = h(u, v, w, t, x[o + 15], B, 1236535329)), (t = i(t, u, v, w, x[o + 1], C, 4129170786)), (w = i(w, t, u, v, x[o + 6], D, 3225465664)), (v = i(v, w, t, u, x[o + 11], E, 643717713)), (u = i(u, v, w, t, x[o + 0], F, 3921069994)), (t = i(t, u, v, w, x[o + 5], C, 3593408605)), (w = i(w, t, u, v, x[o + 10], D, 38016083)), (v = i(v, w, t, u, x[o + 15], E, 3634488961)), (u = i(u, v, w, t, x[o + 4], F, 3889429448)), (t = i(t, u, v, w, x[o + 9], C, 568446438)), (w = i(w, t, u, v, x[o + 14], D, 3275163606)), (v = i(v, w, t, u, x[o + 3], E, 4107603335)), (u = i(u, v, w, t, x[o + 8], F, 1163531501)), (t = i(t, u, v, w, x[o + 13], C, 2850285829)), (w = i(w, t, u, v, x[o + 2], D, 4243563512)), (v = i(v, w, t, u, x[o + 7], E, 1735328473)), (u = i(u, v, w, t, x[o + 12], F, 2368359562)), (t = j(t, u, v, w, x[o + 5], G, 4294588738)), (w = j(w, t, u, v, x[o + 8], H, 2272392833)), (v = j(v, w, t, u, x[o + 11], I, 1839030562)), (u = j(u, v, w, t, x[o + 14], J, 4259657740)), (t = j(t, u, v, w, x[o + 1], G, 2763975236)), (w = j(w, t, u, v, x[o + 4], H, 1272893353)), (v = j(v, w, t, u, x[o + 7], I, 4139469664)), (u = j(u, v, w, t, x[o + 10], J, 3200236656)), (t = j(t, u, v, w, x[o + 13], G, 681279174)), (w = j(w, t, u, v, x[o + 0], H, 3936430074)), (v = j(v, w, t, u, x[o + 3], I, 3572445317)), (u = j(u, v, w, t, x[o + 6], J, 76029189)), (t = j(t, u, v, w, x[o + 9], G, 3654602809)), (w = j(w, t, u, v, x[o + 12], H, 3873151461)), (v = j(v, w, t, u, x[o + 15], I, 530742520)), (u = j(u, v, w, t, x[o + 2], J, 3299628645)), (t = k(t, u, v, w, x[o + 0], K, 4096336452)), (w = k(w, t, u, v, x[o + 7], L, 1126891415)), (v = k(v, w, t, u, x[o + 14], M, 2878612391)), (u = k(u, v, w, t, x[o + 5], N, 4237533241)), (t = k(t, u, v, w, x[o + 12], K, 1700485571)), (w = k(w, t, u, v, x[o + 3], L, 2399980690)), (v = k(v, w, t, u, x[o + 10], M, 4293915773)), (u = k(u, v, w, t, x[o + 1], N, 2240044497)), (t = k(t, u, v, w, x[o + 8], K, 1873313359)), (w = k(w, t, u, v, x[o + 15], L, 4264355552)), (v = k(v, w, t, u, x[o + 6], M, 2734768916)), (u = k(u, v, w, t, x[o + 13], N, 1309151649)), (t = k(t, u, v, w, x[o + 4], K, 4149444226)), (w = k(w, t, u, v, x[o + 11], L, 3174756917)), (v = k(v, w, t, u, x[o + 2], M, 718787259)), (u = k(u, v, w, t, x[o + 9], N, 3951481745)), (t = c(t, p)), (u = c(u, q)), (v = c(v, r)), (w = c(w, s)); - var O = m(t) + m(u) + m(v) + m(w); - return O.toLowerCase(); -} diff --git a/static/js/md5.min.js b/static/js/md5.min.js new file mode 100644 index 0000000..2b298f3 --- /dev/null +++ b/static/js/md5.min.js @@ -0,0 +1 @@ +function md5(a){function b(a,b){return(a<>>(32-b))}function c(a,b){var c,d,e,f,g;return(e=2147483648&a),(f=2147483648&b),(c=1073741824&a),(d=1073741824&b),(g=(1073741823&a)+(1073741823&b)),c&d?2147483648^g^e^f:c|d?(1073741824&g?3221225472^g^e^f:1073741824^g^e^f):g^e^f}function d(a,b,c){return(a&b)|(~a&c)}function e(a,b,c){return(a&c)|(b&~c)}function f(a,b,c){return a^b^c}function g(a,b,c){return b^(a|~c)}function h(a,e,f,g,h,i,j){return(a=c(a,c(c(d(e,f,g),h),j))),c(b(a,i),e)}function i(a,d,f,g,h,i,j){return(a=c(a,c(c(e(d,f,g),h),j))),c(b(a,i),d)}function j(a,d,e,g,h,i,j){return(a=c(a,c(c(f(d,e,g),h),j))),c(b(a,i),d)}function k(a,d,e,f,h,i,j){return(a=c(a,c(c(g(d,e,f),h),j))),c(b(a,i),d)}function l(a){for(var b,c=a.length,d=c+8,e=(d-(d%64))/64,f=16*(e+1),g=new Array(f-1),h=0,i=0;c>i;)(b=(i-(i%4))/4),(h=(i%4)*8),(g[b]=g[b]|(a.charCodeAt(i)<>>29),g}function m(a){var b,c,d="",e="";for(c=0;3>=c;c++)(b=(a>>>(8*c))&255),(e="0"+b.toString(16)),(d+=e.substr(e.length-2,2));return d}function n(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?(b+=String.fromCharCode(d)):d>127&&2048>d?((b+=String.fromCharCode((d>>6)|192)),(b+=String.fromCharCode((63&d)|128))):((b+=String.fromCharCode((d>>12)|224)),(b+=String.fromCharCode(((d>>6)&63)|128)),(b+=String.fromCharCode((63&d)|128)))}return b}var o,p,q,r,s,t,u,v,w,x=[],y=7,z=12,A=17,B=22,C=5,D=9,E=14,F=20,G=4,H=11,I=16,J=23,K=6,L=10,M=15,N=21;for(a=n(a),x=l(a),t=1732584193,u=4023233417,v=2562383102,w=271733878,o=0;o