mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
2.1 KiB
JavaScript
1 line
2.1 KiB
JavaScript
(()=>{return(e,t)=>{const n={less:-1,equal:0,greater:1,incomparable:NaN};class s{constructor(e){if(!/^[\d\.]+$/.test(e)){throw new Error("Invalid version string")}this.parts=e.split(".").map(e=>parseInt(e));this.versionString=e}compareTo(e){for(let t=0;t<this.parts.length;++t){if(e.parts.length===t){return n.greater}if(this.parts[t]===e.parts[t]){continue}if(this.parts[t]>e.parts[t]){return n.greater}return n.less}if(this.parts.length!==e.parts.length){return n.less}return n.equal}greaterThan(e){return this.compareTo(e)===n.greater}lessThan(e){return this.compareTo(e)===n.less}equals(e){return this.compareTo(e)===n.equal}}async function r(){if(typeof offlineData!=="undefined"||isIframe()){return false}try{const t=await Ajax.monkey({url:Resource.root+"version.txt"});const n=new s(t);const r=new s(e.currentVersion);const i=n.greaterThan(r);if(i){const t=`新版本<span>${n.versionString}</span>已发布. <a id="new-version-link" class="link" href="${e.latestVersionLink}">安装</a><a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/releases">查看</a>`;const s=Toast.info(t,"检查更新");SpinQuery.select("#new-version-link").then(e=>e.addEventListener("click",()=>{s&&s.dismiss()}))}return i}catch(e){return false}}return{widget:{content:`\n<button class="gui-settings-flat-button" id="new-version-update">\n<a href="${e.latestVersionLink}" style="display:none"></a>\n<i class="icon-update"></i>\n<span>安装更新</span>\n</button>\n<button class="gui-settings-flat-button" id="new-version-info">\n<a target="blank" style="display:none" href="https://github.com/the1812/Bilibili-Evolved/releases"></a>\n<i class="icon-info"></i>\n<span>查看更新</span>\n</button>\n`,condition:r,success:()=>{document.querySelector("#new-version-update").addEventListener("click",e=>{if(e.target.nodeName.toLowerCase()!=="a"){document.querySelector("#new-version-update a").click()}});document.querySelector("#new-version-info").addEventListener("click",e=>{if(e.target.nodeName.toLowerCase()!=="a"){document.querySelector("#new-version-info a").click()}})}}}}})(); |