//左下のメッセージ 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) { var electron = require("electron"); var ipc = electron.ipcRenderer; ipc.send('endmem', ""); clearInterval(clockint); clearInterval(spotStart); if (mode == "ver") { tipsToggle() $("#tips-text").html('TheDesk ' + localStorage.getItem("ver") + '[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() { var electron = require("electron"); var ipc = electron.ipcRenderer; ipc.send('startmem', ""); ipc.on('memory', function (event, arg) { var use = arg[0]; var cpu = arg[1]; var total = arg[2] $("#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) { return response.json(); }).catch(function (error) { todo(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) { return response.json(); }).catch(function (error) { todo(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 { alert(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")); }