Bilibili-Evolved/min/notify-new-version.min.js
2019-02-16 19:33:27 +08:00

1 line
1.8 KiB
JavaScript

(()=>{return(n,e)=>{const t={less:-1,equal:0,greater:1,incomparable:NaN};class s{constructor(n){this.parts=n.split(".").map(n=>parseInt(n));this.versionString=n}compareTo(n){for(let e=0;e<this.parts.length;++e){if(n.parts.length===e){return t.greater}if(this.parts[e]===n.parts[e]){continue}if(this.parts[e]>n.parts[e]){return t.greater}return t.less}if(this.parts.length!==n.parts.length){return t.less}return t.equal}greaterThan(n){return this.compareTo(n)===t.greater}lessThan(n){return this.compareTo(n)===t.less}equals(n){return this.compareTo(n)===t.equal}}const r=new s(e.data.latestVersion.text);const i=new s(n.currentVersion);const a=r.greaterThan(i);if(a){const e=`新版本${r.versionString}已发布. <a id="new-version-link" class="link" href="${n.latestVersionLink}">安装</a><a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/releases">查看</a>`;const t=Toast.info(e,"检查更新");$("#new-version-link").on("click",()=>t&&t.dismiss())}return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="new-version-update">\n <a href="${n.latestVersionLink}" style="display:none"></a>\n <i class="icon-update"></i>\n <span>安装更新</span>\n </button>\n <button\n class="gui-settings-flat-button"\n 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:()=>a,success:()=>{$("#new-version-update").on("click",()=>document.querySelector("#new-version-update a").click());$("#new-version-info").on("click",()=>document.querySelector("#new-version-info a").click())}}}}})();