mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Add utils.fullyLoaded
This commit is contained in:
parent
0c9f32f367
commit
28b58eb595
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -72,13 +72,7 @@ function fullyLoaded(callback)
|
||||
}
|
||||
else
|
||||
{
|
||||
document.addEventListener('readystatechange', () =>
|
||||
{
|
||||
if (document.readyState === "complete")
|
||||
{
|
||||
callback();
|
||||
}
|
||||
});
|
||||
unsafeWindow.addEventListener('load', () => callback());
|
||||
}
|
||||
}
|
||||
function fixed(number, precision = 1)
|
||||
|
||||
@ -72,13 +72,7 @@ function fullyLoaded(callback)
|
||||
}
|
||||
else
|
||||
{
|
||||
document.addEventListener('readystatechange', () =>
|
||||
{
|
||||
if (document.readyState === "complete")
|
||||
{
|
||||
callback();
|
||||
}
|
||||
});
|
||||
unsafeWindow.addEventListener('load', () => callback());
|
||||
}
|
||||
}
|
||||
function fixed(number, precision = 1)
|
||||
|
||||
@ -47,13 +47,7 @@ export function fullyLoaded(callback)
|
||||
}
|
||||
else
|
||||
{
|
||||
document.addEventListener('readystatechange', () =>
|
||||
{
|
||||
if (document.readyState === "complete")
|
||||
{
|
||||
callback();
|
||||
}
|
||||
});
|
||||
unsafeWindow.addEventListener('load', () => callback());
|
||||
}
|
||||
}
|
||||
export function fixed(number, precision = 1)
|
||||
|
||||
2
min/i18n.min.js
vendored
2
min/i18n.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{const a={"日本語":"ja-JP",English:"en-US",Deutsch:"de-DE"};class s{accepts(e){return e.nodeType===Node.ELEMENT_NODE}getValue(e){return e.nodeValue}setValue(e,t){e.nodeValue=t}getElement(e){return e}translate(e){let t=this.getValue(e);if(!t||typeof t!=="string"||t==="*"){return}t=t.trim();const a=s.map.get(t);if(a===undefined){const a=s.regex.find(([e])=>e.test(t));if(a){const[s,r]=a;this.setValue(e,t.replace(s,r))}}else if(typeof a==="string"){this.setValue(e,a)}else if(Array.isArray(a)){let t=null;for(const s of a){if(typeof s==="string"){t=s}else{const{text:a,selector:r,not:n}=s;if(this.getElement(e).matches(r)!==Boolean(n)){t=a}}}if(t!==null){this.setValue(e,t)}}else{const{text:t,selector:s,not:r}=a;if(this.getElement(e).matches(s)!==Boolean(r)){this.setValue(e,t)}}}static walk(e,t){const a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,null,false);let s=a.nextNode();while(s){t(s);s=a.nextNode()}}static translate(e){if(e.nodeType===Node.TEXT_NODE){s.textNode.translate(e);return}s.walk(e,e=>{for(const t of s.allTranslators){if(t.accepts(e)){t.translate(e)}}})}static translateCssMatches(){const e=s.map.get("*");if(!e){return}for(const{selector:t,text:a}of e){const e=document.querySelector(t);if(e){[...e.childNodes].filter(e=>e.nodeType===Node.TEXT_NODE).forEach(e=>e.nodeValue=a)}}}}class r extends s{accepts(e){return e.nodeType===Node.TEXT_NODE}getElement(e){return e.parentElement}}class n extends s{getValue(e){return e.getAttribute("title")}setValue(e,t){e.setAttribute("title",t)}}class l extends s{getValue(e){return e.getAttribute("placeholder")}setValue(e,t){e.setAttribute("placeholder",t)}}s.textNode=new r;s.title=new n;s.placeholder=new l;s.allTranslators=[s.textNode,s.title,s.placeholder];(async()=>{const r=a[e.i18nLanguage];const{map:n,regex:l}=await t.importAsync(`i18n.${r}`);document.documentElement.setAttribute("lang",r);s.map=n;s.regex=[...l.entries()];s.translate(document.body);s.translateCssMatches();Observer.observe("body",e=>{e.forEach(e=>{if(e.type==="childList"){if(e.addedNodes.length>0){s.translateCssMatches()}e.addedNodes.forEach(e=>{s.translate(e)})}else if(e.type==="characterData"){s.textNode.translate(e.target)}})},{characterData:true,childList:true,subtree:true})})();return{export:{Translator:s,TextNodeTranslator:r,TitleTranslator:n,PlaceholderTranslator:l},dropdown:{key:"i18nLanguage",items:[`日本語`]}}}})();
|
||||
(()=>{return(e,t)=>{const a={"日本語":"ja-JP",English:"en-US",Deutsch:"de-DE"};class s{accepts(e){return e.nodeType===Node.ELEMENT_NODE}getValue(e){return e.nodeValue}setValue(e,t){e.nodeValue=t}getElement(e){return e}translate(e){let t=this.getValue(e);if(!t||typeof t!=="string"||t==="*"){return}t=t.trim();const a=s.map.get(t);if(a===undefined){const a=s.regex.find(([e])=>e.test(t));if(a){const[s,r]=a;this.setValue(e,t.replace(s,r))}}else if(typeof a==="string"){this.setValue(e,a)}else if(Array.isArray(a)){let t=null;for(const s of a){if(typeof s==="string"){t=s}else{const{text:a,selector:r,not:n}=s;if(this.getElement(e).matches(r)!==Boolean(n)){t=a}}}if(t!==null){this.setValue(e,t)}}else{const{text:t,selector:s,not:r}=a;if(this.getElement(e).matches(s)!==Boolean(r)){this.setValue(e,t)}}}static walk(e,t){const a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,null,false);let s=a.nextNode();while(s){t(s);s=a.nextNode()}}static translate(e){if(e.nodeType===Node.TEXT_NODE){s.textNode.translate(e);return}s.walk(e,e=>{for(const t of s.allTranslators){if(t.accepts(e)){t.translate(e)}}})}static translateCssMatches(){const e=s.map.get("*");if(!e){return}for(const{selector:t,text:a}of e){const e=document.querySelector(t);if(e){[...e.childNodes].filter(e=>e.nodeType===Node.TEXT_NODE).forEach(e=>e.nodeValue=a)}}}}class r extends s{accepts(e){return e.nodeType===Node.TEXT_NODE}getElement(e){return e.parentElement}}class n extends s{getValue(e){return e.getAttribute("title")}setValue(e,t){e.setAttribute("title",t)}}class l extends s{getValue(e){return e.getAttribute("placeholder")}setValue(e,t){e.setAttribute("placeholder",t)}}s.textNode=new r;s.title=new n;s.placeholder=new l;s.allTranslators=[s.textNode,s.title,s.placeholder];const o=async()=>{const r=a[e.i18nLanguage];const{map:n,regex:l}=await t.importAsync(`i18n.${r}`);document.documentElement.setAttribute("lang",r);s.map=n;s.regex=[...l.entries()];s.translate(document.body);s.translateCssMatches();Observer.observe("body",e=>{e.forEach(e=>{if(e.type==="childList"){if(e.addedNodes.length>0){s.translateCssMatches()}e.addedNodes.forEach(e=>{s.translate(e)})}else if(e.type==="characterData"){s.textNode.translate(e.target)}})},{characterData:true,childList:true,subtree:true})};o();return{export:{Translator:s,TextNodeTranslator:r,TitleTranslator:n,PlaceholderTranslator:l},dropdown:{key:"i18nLanguage",items:[`日本語`]}}}})();
|
||||
2
min/image-resolution.min.js
vendored
2
min/image-resolution.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(t,e)=>{const r=/@(\d+)[Ww]_(\d+)[Hh]/;const n=t.imageResolutionScale==="auto"?window.devicePixelRatio:parseFloat(t.imageResolutionScale);const o=["#certify-img1","#certify-img2"];const i=(t,e)=>{const r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null,false);let n=r.nextNode();while(n){e(n);n=r.nextNode()}};async function s(t){const e=(e,i)=>{const s=e(t);if(s===null){return}if(o.some(e=>t.matches(e))){return}const a=s.match(r);if(!a){return}let[,u,c]=a;let l=parseInt(t.getAttribute("data-resolution-width")||"0");if(parseInt(u)>=l&&l!==0){return}if(t.getAttribute("width")===null&&t.getAttribute("height")===null){t.setAttribute("width",u)}u=Math.round(n*parseInt(u)).toString();c=Math.round(n*parseInt(c)).toString();t.setAttribute("data-resolution-width",u);i(t,s.replace(r,`@${u}w_${c}h`))};Observer.attributes(t,()=>{e(t=>t.getAttribute("src"),(t,e)=>t.setAttribute("src",e));e(t=>t.style.backgroundImage,(t,e)=>t.style.backgroundImage=e)})}(async()=>{i(document.body,t=>s(t));Observer.childListSubtree(document.body,t=>{for(const e of t){for(const t of e.addedNodes){if(t instanceof HTMLElement){s(t);if(t.nodeName.toUpperCase()!=="IMG"){i(t,t=>s(t))}}}}})})();return{export:{imageResolution:s}}}})();
|
||||
(()=>{return(t,e)=>{const r=/@(\d+)[Ww]_(\d+)[Hh]/;const n=t.imageResolutionScale==="auto"?window.devicePixelRatio:parseFloat(t.imageResolutionScale);const o=["#certify-img1","#certify-img2"];const i=(t,e)=>{const r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null,false);let n=r.nextNode();while(n){e(n);n=r.nextNode()}};async function s(t){const e=(e,i)=>{const s=e(t);if(s===null){return}if(o.some(e=>t.matches(e))){return}const a=s.match(r);if(!a){return}let[,u,c]=a;let l=parseInt(t.getAttribute("data-resolution-width")||"0");if(parseInt(u)>=l&&l!==0){return}if(t.getAttribute("width")===null&&t.getAttribute("height")===null){t.setAttribute("width",u)}u=Math.round(n*parseInt(u)).toString();c=Math.round(n*parseInt(c)).toString();t.setAttribute("data-resolution-width",u);i(t,s.replace(r,`@${u}w_${c}h`))};Observer.attributes(t,()=>{e(t=>t.getAttribute("src"),(t,e)=>t.setAttribute("src",e));e(t=>t.style.backgroundImage,(t,e)=>t.style.backgroundImage=e)})}const a=async()=>{i(document.body,t=>s(t));Observer.childListSubtree(document.body,t=>{for(const e of t){for(const t of e.addedNodes){if(t instanceof HTMLElement){s(t);if(t.nodeName.toUpperCase()!=="IMG"){i(t,t=>s(t))}}}}})};a();return{export:{imageResolution:s}}}})();
|
||||
@ -107,7 +107,7 @@ Translator.textNode = new TextNodeTranslator;
|
||||
Translator.title = new TitleTranslator;
|
||||
Translator.placeholder = new PlaceholderTranslator;
|
||||
Translator.allTranslators = [Translator.textNode, Translator.title, Translator.placeholder];
|
||||
(async () => {
|
||||
const startTranslate = async () => {
|
||||
const languageCode = languageCodeMap[settings.i18nLanguage];
|
||||
const { map, regex } = await import(`./i18n.${languageCode}`);
|
||||
document.documentElement.setAttribute("lang", languageCode);
|
||||
@ -130,7 +130,16 @@ Translator.allTranslators = [Translator.textNode, Translator.title, Translator.p
|
||||
}
|
||||
});
|
||||
}, { characterData: true, childList: true, subtree: true });
|
||||
})();
|
||||
};
|
||||
startTranslate();
|
||||
// if (document.readyState === "complete")
|
||||
// {
|
||||
// startTranslate();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// unsafeWindow.addEventListener('load', () => startTranslate());
|
||||
// }
|
||||
export default {
|
||||
export: {
|
||||
Translator,
|
||||
|
||||
@ -147,7 +147,7 @@ Translator.title = new TitleTranslator;
|
||||
Translator.placeholder = new PlaceholderTranslator;
|
||||
Translator.allTranslators = [Translator.textNode, Translator.title, Translator.placeholder];
|
||||
|
||||
(async () =>
|
||||
const startTranslate = async () =>
|
||||
{
|
||||
const languageCode = languageCodeMap[settings.i18nLanguage];
|
||||
const { map, regex } = await import(`./i18n.${languageCode}`);
|
||||
@ -178,7 +178,16 @@ Translator.allTranslators = [Translator.textNode, Translator.title, Translator.p
|
||||
}
|
||||
});
|
||||
}, { characterData: true, childList: true, subtree: true });
|
||||
})();
|
||||
};
|
||||
startTranslate();
|
||||
// if (document.readyState === "complete")
|
||||
// {
|
||||
// startTranslate();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// unsafeWindow.addEventListener('load', () => startTranslate());
|
||||
// }
|
||||
|
||||
export default {
|
||||
export: {
|
||||
|
||||
@ -53,7 +53,7 @@ export async function imageResolution(element) {
|
||||
replaceSource(e => e.style.backgroundImage, (e, v) => e.style.backgroundImage = v);
|
||||
});
|
||||
}
|
||||
(async () => {
|
||||
const startResolution = async () => {
|
||||
walk(document.body, it => imageResolution(it));
|
||||
Observer.childListSubtree(document.body, records => {
|
||||
for (const record of records) {
|
||||
@ -67,7 +67,16 @@ export async function imageResolution(element) {
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
};
|
||||
startResolution();
|
||||
// if (document.readyState === "complete")
|
||||
// {
|
||||
// startResolution();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// unsafeWindow.addEventListener('load', () => startResolution());
|
||||
// }
|
||||
export default {
|
||||
export: { imageResolution }
|
||||
};
|
||||
|
||||
@ -63,7 +63,7 @@ export async function imageResolution(element: HTMLElement)
|
||||
replaceSource(e => e.style.backgroundImage, (e, v) => e.style.backgroundImage = v);
|
||||
});
|
||||
}
|
||||
(async () =>
|
||||
const startResolution = async () =>
|
||||
{
|
||||
walk(document.body, it => imageResolution(it));
|
||||
Observer.childListSubtree(document.body, records =>
|
||||
@ -83,7 +83,16 @@ export async function imageResolution(element: HTMLElement)
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
};
|
||||
startResolution();
|
||||
// if (document.readyState === "complete")
|
||||
// {
|
||||
// startResolution();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// unsafeWindow.addEventListener('load', () => startResolution());
|
||||
// }
|
||||
export default {
|
||||
export: { imageResolution }
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user