2019-05-19 17:39:30 +10:00
|
|
|
function spotifyConnect() {
|
2019-11-04 03:10:06 +11:00
|
|
|
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";
|
|
|
|
var platform = localStorage.getItem("platform");
|
|
|
|
if (platform == "win32") {
|
|
|
|
postMessage(["openUrl", auth], "*");
|
|
|
|
postMessage(["sendSinmpleIpc", "quit"], "*");
|
|
|
|
} else {
|
|
|
|
auth = auth + "&state=code";
|
|
|
|
$("#spotify-code-show").removeClass("hide");
|
|
|
|
postMessage(["openUrl", auth], "*");
|
|
|
|
}
|
2018-04-01 07:00:27 +10:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
function spotifyAuth() {
|
2019-11-04 03:10:06 +11:00
|
|
|
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");
|
2018-03-15 06:42:48 +11:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
function spotifyDisconnect() {
|
2019-11-04 03:10:06 +11:00
|
|
|
localStorage.removeItem("spotify");
|
|
|
|
localStorage.removeItem("spotify-refresh");
|
|
|
|
checkSpotify();
|
2018-03-15 06:42:48 +11:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
function checkSpotify() {
|
2019-11-04 03:10:06 +11:00
|
|
|
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);
|
|
|
|
}
|
2018-06-12 01:44:28 +10:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
function spotifyFlagSave() {
|
2019-11-04 03:10:06 +11:00
|
|
|
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 });
|
|
|
|
}
|
2018-03-15 06:42:48 +11:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
function nowplaying(mode) {
|
2019-11-04 03:10:06 +11:00
|
|
|
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) {
|
|
|
|
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) {
|
|
|
|
console.table(json);
|
|
|
|
if (json.length < 1) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
var item = json.item;
|
|
|
|
var img = item.album.images[0].url;
|
|
|
|
var flag = localStorage.getItem("artwork");
|
|
|
|
if (flag) {
|
|
|
|
postMessage(["bmpImage", [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 {
|
|
|
|
Swal.fire({
|
|
|
|
type: "info",
|
|
|
|
title: lang.lang_spotify_acct
|
2019-10-31 02:30:26 +11:00
|
|
|
});
|
|
|
|
}
|
2019-11-04 03:10:06 +11:00
|
|
|
} else if (mode == "itunes") {
|
|
|
|
postMessage(["itunes", ""], "*");
|
|
|
|
}
|
2019-06-15 03:10:11 +10:00
|
|
|
}
|
|
|
|
function npCore(arg) {
|
2019-11-04 03:10:06 +11:00
|
|
|
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 platform = localStorage.getItem("platform");
|
|
|
|
if (platform == "win32") {
|
|
|
|
if (flag && arg.path) {
|
|
|
|
media(arg.path, "image/png", "new");
|
|
|
|
}
|
|
|
|
} else if (platform == "darwin") {
|
|
|
|
if (flag && arg.artwork) {
|
|
|
|
media(arg.artwork, "image/png", "new");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var regExp = new RegExp("{song}", "g");
|
|
|
|
content = content.replace(regExp, arg.name);
|
|
|
|
var regExp = new RegExp("{album}", "g");
|
|
|
|
if (arg.album) {
|
|
|
|
if (arg.album.name) {
|
|
|
|
content = content.replace(regExp, arg.album.name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
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);
|
2018-03-15 06:42:48 +11:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
function spotifySave() {
|
2019-11-04 03:10:06 +11:00
|
|
|
var temp = $("#np-temp").val();
|
|
|
|
localStorage.setItem("np-temp", temp);
|
|
|
|
M.toast({ html: lang.lang_spotify_np, displayLength: 3000 });
|
2018-03-15 06:42:48 +11:00
|
|
|
}
|
2019-05-19 17:39:30 +10:00
|
|
|
if (location.search) {
|
2019-11-04 03:10:06 +11:00
|
|
|
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 {
|
|
|
|
}
|
|
|
|
}
|