Bilibili-Evolved/min/notify-new-version.min.js
2018-10-12 22:34:28 +08:00

1 line
2.7 KiB
JavaScript

(()=>{return(t,s)=>{const e={less:-1,equal:0,greater:1,incomparable:NaN};class n{constructor(t){this.parts=t.split(".");this.versionString=t}isPositiveInteger(t){return/^\d+$/.test(t)}validateParts(){for(var t=0;t<this.parts.length;++t){if(!this.isPositiveInteger(this.parts[t])){return false}}return true}compareTo(t){if(!this.validateParts()||!t.validateParts()){return e.incomparable}for(let s=0;s<this.parts.length;++s){if(t.parts.length===s){return e.greater}if(this.parts[s]===t.parts[s]){continue}if(this.parts[s]>t.parts[s]){return e.greater}return e.less}if(this.parts.length!==t.parts.length){return e.less}return e.equal}greaterThan(t){return this.compareTo(t)===e.greater}lessThan(t){return this.compareTo(t)===e.less}equals(t){return this.compareTo(t)===e.equal}}const r=new n(s.data.latestVersion.text);const a=new n(t.currentVersion);if(r.greaterThan(a)){if(a.lessThan(new n("1.4.2"))){SpinQuery.any(()=>$(".gui-settings"),s=>{s.addClass("gui-settings-notification");const e=$(".gui-settings-footer");e.after(`\n <div class="gui-settings-footer">\n <span class="gui-settings-label">新版本${r.versionString}已发布.</span>\n <a>\n <button\n class="gui-settings-button"\n id="new-version-update">\n 更新\n </button>\n </a>\n </div>`);$("#new-version-update").parent().attr("href",t.latestVersionLink)});const s=`新版本${r.versionString}已发布. <a class="link" href="${t.latestVersionLink}">更新</a>`;Toast.show(s,"检查更新",1e4)}else{return{ajaxReload:false,settingsWidget:{after:()=>$(".gui-settings-content"),content:`<div class="gui-settings-footer${t.blurSettingsPanel?" blur":""}">\n <span class="gui-settings-label">新版本${r.versionString}已发布.</span>\n <a href="${t.latestVersionLink}">\n <button\n class="gui-settings-button"\n id="new-version-update">\n 更新\n </button>\n </a>\n </div>`,success:()=>{SpinQuery.any(()=>$(".gui-settings"),t=>{t.addClass("gui-settings-notification")});const s=`新版本${r.versionString}已发布. <a class="link" href="${t.latestVersionLink}">更新</a>`;Toast.show(s,"检查更新")}}}}}return{ajaxReload:false}}})();