//左下のメッセージ var todcTrigger = null; function todo(mes) { clearInterval(todcTrigger); $("#message").text(mes); $("#message").fadeIn(); todcTrigger = setTimeout(todc, 4000); } function todc() { $("#message").fadeOut(); } //reverse function bottomReverse() { $("#bottom").toggleClass("reverse"); $(".leftside").toggleClass("reverse"); if ($("#bottom").hasClass("reverse")) { localStorage.removeItem("reverse"); } else { localStorage.setItem("reverse", "true"); } } function tips(mode) { postMessage(["sendSinmpleIpc", "endmem"], "*"); clearInterval(clockint); clearInterval(spotStart); if (mode == "ver") { tipsToggle(); $("#tips-text").html('TheDesk " + localStorage.getItem("ver") + " {" + gitHash.slice(0, 7) + '} [supervisor_account1+]'); localStorage.setItem("tips", "ver"); } else if (mode == "clock") { tipsToggle(); localStorage.setItem("tips", "clock"); clock(); } else if (mode == "memory") { tipsToggle(); localStorage.setItem("tips", "memory"); startmem(); } else if (mode == "trend") { tipsToggle(); localStorage.setItem("tips", "trend"); trendTagonTip(); } else if (mode == "spotify") { tipsToggle(); localStorage.setItem("tips", "spotify"); var json = nowplaying("spotifytips"); spotifytips(json); } } //メモリ function startmem() { postMessage(["sendSinmpleIpc", "startmem"], "*"); } function renderMem(use, cpu, total) { $("#tips-text").html(escapeHTML(cpu) + "
Memory:" + Math.floor(use / 1024 / 1024 / 102.4) / 10 + "/" + Math.floor(total / 1024 / 1024 / 102.4) / 10 + "GB(" + Math.floor((use / total) * 100) + "%)"); } //トレンドタグ function trendTagonTip() { $(".trendtag").remove(); var domain = "imastodon.net"; var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/v1/trend_tags"; fetch(start, { method: "GET", headers: { "content-type": "application/json", Authorization: "Bearer " + at } }) .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(json) { if (json) { var tags = ""; json = json.score; Object.keys(json).forEach(function(tag) { tags = tags + "#' + escapeHTML(tag) + ' TL Toot
'; }); $("#tips-text").html('
トレンドタグrefresh:
' + tags + "
"); trendTagonTipInterval(); } else { $("#tips-text").html(""); } }); } //Spotify function spotifytips() { var start = "https://thedesk.top/now-playing?at=" + localStorage.getItem("spotify") + "&rt=" + localStorage.getItem("spotify-refresh"); var at = localStorage.getItem("spotify"); if (at) { fetch(start, { method: "GET", headers: { "content-type": "application/json" } }) .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(json) { var ms = json.progress_ms; var last = 1000 - (ms % 1000); var item = json.item; var img = item.album.images[0].url; var artisttxt = ""; for (i = 0; i < item.artists.length; i++) { if (i > 0) { artisttxt = artisttxt + "," + item.artists[i].name; } else { artisttxt = item.artists[0].name; } } artisttxt = escapeHTML(artisttxt); sleep(last); var tms = item.duration_ms; var per = (ms / item.duration_ms) * 100; ms = ms / 1000; tms = tms / 1000; var s = Math.round(ms) % 60; if (s < 10) { s = "0" + s; } var m = (Math.round(ms) - (Math.round(ms) % 60)) / 60; var ts = Math.round(tms) % 60; if (ts < 10) { ts = "0" + ts; } var tm = (Math.round(tms) - (Math.round(tms) % 60)) / 60; $("#tips-text").html('
refresh' + escapeHTML(item.name) + '' + artisttxt + '' + m + ':' + s + "/" + tm + ":" + ts + '
'); spotint = setInterval(spotStart, 1000); }); } else { Swal.fire({ type: "info", title: lang.lang_spotify_acct }); } } function spotStart() { var total = $(".spotify-prog").attr("data-total"); var s = $(".spotify-prog").attr("data-s"); var news = s * 1 + 1; var per = (news * 100000) / total; var ns = news % 60; var nm = (news - ns) / 60; if (ns < 10) { ns = "0" + ns; } if (per >= 100) { clearInterval(spotStart); spotifytips(); } else { $("#spot-m").text(nm); $("#spot-s").text(ns); } $(".spotify-prog").attr("data-s", news); $(".spotify-prog").css("width", per + "%"); } function trendTagonTipInterval() { setTimeout(trendTagonTip, 6000000); } //時計 var clockint; function clock() { var now = new Date(); var last = 1000 - (now.getTime() % 1000); sleep(last); clockint = setInterval(clockStart, 1000); } function clockStart() { var nowTime = new Date(); // 現在日時を得る var nowHour = nowTime.getHours(); // 時を抜き出す if (nowHour < 10) { nowHour = "0" + nowHour; } var nowMin = nowTime.getMinutes(); // 分を抜き出す if (nowMin < 10) { nowMin = "0" + nowMin; } var nowSec = nowTime.getSeconds(); // 秒を抜き出す if (nowSec < 10) { nowSec = "0" + nowSec; } var msg = nowTime.getFullYear() + "/" + (nowTime.getMonth() + 1) + "/" + nowTime.getDate() + '' + nowHour + ":" + nowMin + ":" + nowSec + ""; $("#tips-text").html(msg); } function sleep(waitMsec) { var startMsec = new Date(); while (new Date() - startMsec < waitMsec); } function tipsToggle() { $("#tips").toggleClass("hide"); $("#tips-menu").toggleClass("hide"); } if (localStorage.getItem("tips")) { tips(localStorage.getItem("tips")); }