//バージョンチェッカー function verck(ver, jp) { console.log("%c Welcome😊", "color: red;font-size:200%;"); var date = new Date(); var show = false; if (localStorage.getItem("ver") != ver && localStorage.getItem("winstore")) { //ちょっと削除とリンク解析の都合上アレ(s) //対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)" if (!localStorage.getItem("usamin_18_6_5_flag")) { localStorage.setItem("usamin_18_6_5_flag", true); var multi = localStorage.getItem("column"); var obj = JSON.parse(multi); for (var i = 0; i < obj.length; i++) { localStorage.removeItem("card_" + i); } } //ちょっと削除とリンク解析の都合上アレ(e) show = true; console.log("%c Thank you for your update🎉", "color: red;font-size:200%;"); $(document).ready(function() { if (localStorage.getItem("winstore")) { $("#releasenote").modal("open"); } verp = ver.replace("(", ""); verp = verp.replace(".", "-"); verp = verp.replace(".", "-"); verp = verp.replace("[", "-"); verp = verp.replace("]", ""); verp = verp.replace(")", ""); verp = verp.replace(" ", "_"); console.log("%c " + verp, "color: red;font-size:200%;"); if (lang.language == "ja") { $("#release-" + verp).show(); } else { $("#release-en").show(); } }); } localStorage.setItem("ver", ver); if (!show) { console.log(show); if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) { if (date.getMonth() == 11) { var nextmonth = 1; } else { var nextmonth = date.getMonth() + 2; } if (lang.language != "ja") { $("#support-btm-ja").addClass("hide"); $("#support-btm-en").removeClass("hide"); } localStorage.setItem("showSupportMe", nextmonth); $("#support-btm").removeClass("hide"); $("#support-btm").animate( { bottom: "0" }, { duration: 300 } ); } } var platform = localStorage.getItem("platform"); console.log("Your platform:" + platform); if (!localStorage.getItem("winstore")) { $("#start").css("display", "flex"); } if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") { var winstore = true; } else { var winstore = false; } var l = 5; // 生成する文字列に含める文字セット var c = "abcdefghijklmnopqrstuvwxyz0123456789"; var cl = c.length; var r = ""; for (var i = 0; i < l; i++) { r += c[Math.floor(Math.random() * cl)]; } var start = "https://thedesk.top/ver.json"; fetch(start, { method: "GET" }) .then(function(response) { if (!response.ok) { response.text().then(function(text) { setLog(response.url, response.status, text); }); } return response.json(); }) .catch(function(error) { todo(error);setLog(start, "JSON", error); setLog(start, "JSON", error); console.error(error); }) .then(function(mess) { console.table(mess); if (mess) { //askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限 if (jp && mess.jp_ua && !localStorage.getItem("askjp_jp_ua")) { localStorage.setItem("askjp_jp_ua", true); $("#askjp_jp_ua").removeClass("hide"); } var platform = localStorage.getItem("platform"); if (platform == "darwin") { var newest = mess.desk_mac; } else { var newest = mess.desk; } if (newest == ver) { todo(lang.lang_version_usever.replace("{{ver}}", mess.desk)); //betaかWinstoreならアプデチェックしない } else if (ver.indexOf("beta") != -1 || winstore) { } else { localStorage.removeItem("instance"); if (localStorage.getItem("new-ver-skip")) { if (localStorage.getItem("next-ver") != newest) { postMessage(["sendSinmpleIpc", "update"], "*"); } else { console.warn(lang.lang_version_skipver); todo(lang.lang_version_skipver); } } else { postMessage(["sendSinmpleIpc", "update"], "*"); } } } }); if (!localStorage.getItem("last-notice-id")) { localStorage.setItem("last-notice-id", 0); } var start = "https://thedesk.top/notice?since_id=" + localStorage.getItem("last-notice-id"); fetch(start, { method: "GET" }) .then(function(response) { if (!response.ok) { response.text().then(function(text) { setLog(response.url, response.status, text); }); } return response.json(); }) .catch(function(error) { todo(error);setLog(start, "JSON", error); console.error(error); }) .then(function(mess) { if (mess.length < 1) { return false; } else { var last = localStorage.getItem("last-notice-id"); localStorage.setItem("last-notice-id", mess[0].ID); for (i = 0; i < mess.length; i++) { var obj = mess[i]; if (obj.ID * 1 <= last) { break; } else { if (obj.type == "textv2") { if (~obj.languages.indexOf(lang.language)) { var show = true; if (obj.toot != "") { var toot = '"; } else { var toot = ""; } if (obj.ver != "") { if (obj.ver == ver) { show = true; } else { show = false; } } if (obj.domain != "") { var multi = localStorage.getItem("multi"); if (multi) { show = false; var accts = JSON.parse(multi); Object.keys(accts).forEach(function(key) { var acct = accts[key]; if (acct.domain == obj.domain) { show = true; } }); } } if (show) { M.toast({ html: escapeHTML(obj.text) + toot + '(スライドして消去)', displayLength: 86400 }); } } } } } } }); } var infostreaming = false; function infowebsocket() { infows = new WebSocket("wss://thedesk.top/ws/"); infows.onopen = function(mess) { console.log([tlid, ":Connect Streaming Info:", mess]); infostreaming = true; }; infows.onmessage = function(mess) { console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]); var obj = JSON.parse(mess.data); if (obj.type != "counter") { if (obj.type == "textv2") { if (~obj.languages.indexOf(lang.language)) { localStorage.setItem("last-notice-id", obj.id); var show = true; if (obj.toot != "") { var toot = '"; } else { var toot = ""; } if (obj.ver != "") { if (obj.ver == ver) { show = true; } else { show = false; } } if (obj.domain != "") { var multi = localStorage.getItem("multi"); if (multi) { show = false; var accts = JSON.parse(multi); Object.keys(accts).forEach(function(key) { var acct = accts[key]; if (acct.domain == obj.domain) { show = true; } }); } } if (show) { console.log(obj.text); console.log(escapeHTML(obj.text)); M.toast({ html: escapeHTML(obj.text) + toot + '(スライドして消去)', displayLength: 86400 }); } } } } else { $("#persons").text(obj.text); } }; infows.onerror = function(error) { infostreaming = false; console.error("Error closing:info"); console.error(error); return false; }; infows.onclose = function() { infostreaming = false; console.error("Closing:info"); }; } setInterval(function() { if (!infostreaming) { console.log("try to connect to base-streaming"); infowebsocket(); } }, 10000); function openRN() { $("#releasenote").modal("open"); if (lang.language == "ja") { verp = ver.replace("(", ""); verp = verp.replace(".", "-"); verp = verp.replace(".", "-"); verp = verp.replace("[", "-"); verp = verp.replace("]", ""); verp = verp.replace(")", ""); verp = verp.replace(" ", "_"); $("#release-" + verp).show(); } else { $("#release-en").show(); } } function closeSupport() { $("#support-btm").animate( { bottom: "-300px" }, { duration: 300, complete: function() { $("#support-btm").addClass("hide"); } } ); } function storeDialog(platform, ver) { if (platform == "win32") { var mes = lang.lang_version_platform; } else if (platform == "linux") { var mes = lang.lang_version_platform_linux; } else if (platform == "darwin") { var mes = lang.lang_version_platform_mac; } Swal.fire({ title: "Select your platform", text: mes, type: "info", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#3085d6", confirmButtonText: lang.lang_no, cancelButtonText: lang.lang_yesno }).then(result => { //逆にしてる if (!result.value) { localStorage.setItem("winstore", "winstore"); } else { localStorage.setItem("winstore", "localinstall"); } localStorage.setItem("ver", ver); show = true; console.log("%c Thank you for your update🎉", "color: red;font-size:200%;"); $(document).ready(function() { $("#releasenote").modal("open"); verp = ver.replace("(", ""); verp = verp.replace(".", "-"); verp = verp.replace(".", "-"); verp = verp.replace("[", "-"); verp = verp.replace("]", ""); verp = verp.replace(")", ""); verp = verp.replace(" ", "_"); console.log("%c " + verp, "color: red;font-size:200%;"); if (lang.language == "ja") { $("#release-" + verp).show(); } else { $("#release-en").show(); } }); }); } function closeStart() { $("#start").css("display", "none"); var platform = localStorage.getItem("platform"); var ver = localStorage.getItem("ver"); storeDialog(platform, ver); }