function spotifyConnect() { var auth = "https://accounts.spotify.com/authorize?client_id=0f18e54abe0b4aedb4591e353d3aff69&redirect_uri=https://thedesk.top/spotify-connect&response_type=code&scope=user-read-currently-playing"; const { shell } = require('electron'); var electron = require("electron"); var remote = electron.remote; var platform = remote.process.platform; if (platform == "win32") { shell.openExternal(auth); var ipc = electron.ipcRenderer; ipc.send('quit', 'go'); } else { auth = auth + "&state=code"; $("#spotify-code-show").removeClass("hide"); shell.openExternal(auth); } } function spotifyAuth() { var code = $("#spotify-code").val(); localStorage.setItem("spotify", "code"); localStorage.setItem("spotify-refresh", code); $("#spotify-code-show").addClass("hide"); $("#spotify-enable").addClass("disabled"); $("#spotify-disable").removeClass("disabled"); } function spotifyDisconnect() { localStorage.removeItem("spotify"); localStorage.removeItem("spotify-refresh"); checkSpotify(); } function checkSpotify() { if (localStorage.getItem("spotify")) { $("#spotify-enable").addClass("disabled"); $("#spotify-disable").removeClass("disabled"); } else { $("#spotify-enable").removeClass("disabled"); $("#spotify-disable").addClass("disabled"); } var content = localStorage.getItem("np-temp"); if (!content || content == "" || content == "null") { var content = "#NowPlaying {song} / {album} / {artist}\n{url} #SpotifyWithTheDesk"; } $("#np-temp").val(content); var flag = localStorage.getItem("artwork"); if (flag) { $("#awk_yes").prop("checked", true); } else { $("#awk_no").prop("checked", true); } } function spotifyFlagSave() { var awk = $("[name=awk]:checked").val(); if (awk == "yes") { localStorage.setItem("artwork", "yes"); M.toast({ html: lang.lang_spotify_img, displayLength: 3000 }) } else { localStorage.removeItem("artwork"); M.toast({ html: lang.lang_spotify_imgno, displayLength: 3000 }) } } function nowplaying(mode) { if (mode == "spotify") { 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) { console.table(json); if (json.length < 1) { return false; } var item = json.item; var img = item.album.images[0].url; var electron = require("electron"); var ipc = electron.ipcRenderer; var flag = localStorage.getItem("artwork"); if (flag) { ipc.send('bmp-image', [img, 0]); } var content = localStorage.getItem("np-temp"); if (!content || content == "" || content == "null") { var content = "#NowPlaying {song} / {album} / {artist}\n{url}"; } var regExp = new RegExp("{song}", "g"); content = content.replace(regExp, item.name); var regExp = new RegExp("{album}", "g"); content = content.replace(regExp, item.album.name); var regExp = new RegExp("{artist}", "g"); content = content.replace(regExp, item.artists[0].name); var regExp = new RegExp("{url}", "g"); content = content.replace(regExp, item.external_urls.spotify); var regExp = new RegExp("{composer}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{hz}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{bitRate}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{lyricist}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{bpm}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{genre}", "g"); content = content.replace(regExp, ""); $("#textarea").val(content); }); } else { alert(lang.lang_spotify_acct); } } else if (mode == "itunes") { var electron = require("electron"); var ipc = electron.ipcRenderer; if (ipc.listenerCount('itunes-np') > 0) { return false; } ipc.send('itunes', ""); ipc.once('itunes-np', function (event, arg) { if (arg.cmd) { console.error(arg); return; } console.table(arg); var content = localStorage.getItem("np-temp"); if (!content || content == "" || content == "null") { var content = "#NowPlaying {song} / {album} / {artist}\n{url}"; } var flag = localStorage.getItem("artwork"); var remote = electron.remote; var platform = remote.process.platform; if (platform == "win32") { if (flag && arg.path) { media(arg.path, "image/png", "new"); } } else if (platform == "darwin") { if (flag && arg.existsArtwork) { media(arg.artworks[0].data, "image/png", "new"); } } var regExp = new RegExp("{song}", "g"); content = content.replace(regExp, arg.name); var regExp = new RegExp("{album}", "g"); content = content.replace(regExp, arg.album); var regExp = new RegExp("{artist}", "g"); content = content.replace(regExp, arg.artist); var regExp = new RegExp("{url}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{composer}", "g"); content = content.replace(regExp, arg.composer); var regExp = new RegExp("{hz}", "g"); content = content.replace(regExp, arg.sampleRate / 1000 + "kHz"); var regExp = new RegExp("{lyricist}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{bpm}", "g"); content = content.replace(regExp, ""); var regExp = new RegExp("{bitRate}", "g"); content = content.replace(regExp, arg.bitRate + "kbps"); var regExp = new RegExp("{genre}", "g"); content = content.replace(regExp, arg.genre); $("#textarea").val(content); }) } } function spotifySave() { var temp = $("#np-temp").val(); localStorage.setItem("np-temp", temp); M.toast({ html: lang.lang_spotify_np, displayLength: 3000 }) } function npprovider() { var provd = $("[name=npp]:checked").val(); if (!provd) { if (localStorage.getItem("np_provider")) { $("[value=" + localStorage.getItem("np_provider") + "]").prop("checked", true); } else { $("[value=AIMP]").prop("checked", true); localStorage.setItem("np_provider", "AIMP"); } } else { if (provd != localStorage.getItem("np_provider")) { M.toast({ html: lang.lang_setting_npprovide.replace("{{set}}", provd), displayLength: 3000 }) } localStorage.setItem("np_provider", provd); var electron = require("electron"); var ipc = electron.ipcRenderer; ipc.send('itunes', ["set", provd]); } } if (location.search) { var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/); var mode = m[1]; var codex = m[2]; if (mode == "spotify") { var coder = codex.split(":"); localStorage.setItem("spotify", coder[0]); localStorage.setItem("spotify-refresh", coder[1]); } else { } } $("#npbtn").click(function () { nowplaying('spotify'); }); $("#npbtn").bind('contextmenu', function () { nowplaying('itunes'); return false; });