This commit is contained in:
cutls 2020-01-12 11:38:28 +09:00
parent 51af1590ad
commit ee7ca45b91
2 changed files with 148 additions and 141 deletions

View File

@ -1,189 +1,198 @@
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";
var platform = localStorage.getItem("platform");
if (platform == "win32") {
postMessage(["openUrl", auth], "*");
postMessage(["sendSinmpleIpc", "quit"], "*");
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], "*");
auth = auth + '&state=code'
$('#spotify-code-show').removeClass('hide')
postMessage(['openUrl', 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");
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();
localStorage.removeItem('spotify')
localStorage.removeItem('spotify-refresh')
checkSpotify()
}
function checkSpotify() {
if (localStorage.getItem("spotify")) {
$("#spotify-enable").addClass("disabled");
$("#spotify-disable").removeClass("disabled");
if (localStorage.getItem('spotify')) {
$('#spotify-enable').addClass('disabled')
$('#spotify-disable').removeClass('disabled')
} else {
$("#spotify-enable").removeClass("disabled");
$("#spotify-disable").addClass("disabled");
$('#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";
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");
$('#np-temp').val(content)
var flag = localStorage.getItem('artwork')
if (flag) {
$("#awk_yes").prop("checked", true);
$('#awk_yes').prop('checked', true)
} else {
$("#awk_no").prop("checked", true);
$('#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 });
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 });
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 (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",
method: 'GET',
headers: {
"content-type": "application/json"
'content-type': 'application/json'
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
setLog(response.url, response.status, text)
})
}
return response.json();
return response.json()
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
todo(error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function(json) {
console.table(json);
console.table(json)
if (json.length < 1) {
return false;
return false
}
var item = json.item;
var img = item.album.images[0].url;
var flag = localStorage.getItem("artwork");
var item = json.item
var img = item.album.images[0].url
var flag = localStorage.getItem('artwork')
if (flag) {
postMessage(["bmpImage", [img, 0]], "*");
postMessage(['bmpImage', [img, 0]], '*')
}
var content = localStorage.getItem("np-temp");
if (!content || content == "" || content == "null") {
var content = "#NowPlaying {song} / {album} / {artist}\n{url}";
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);
});
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",
type: 'info',
title: lang.lang_spotify_acct
});
})
}
} else if (mode == "itunes") {
postMessage(["itunes", ""], "*");
} else if (mode == 'itunes') {
postMessage(['itunes', ''], '*')
}
}
function npCore(arg) {
if (arg.cmd) {
console.error(arg);
return;
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}";
console.table(arg)
if (arg.raw) {
$('#textarea').val(arg.data + ' #nowplaying')
return true
}
var flag = localStorage.getItem("artwork");
var platform = localStorage.getItem("platform");
if (platform == "win32") {
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");
media(arg.path, 'image/png', 'new')
}
} else if (platform == "darwin") {
} else if (platform == 'darwin') {
if (flag && arg.artwork) {
media(arg.artwork, "image/png", "new");
media(arg.artwork, 'image/png', 'new')
}
}
var regExp = new RegExp("{song}", "g");
content = content.replace(regExp, arg.name);
var regExp = new RegExp("{album}", "g");
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);
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);
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 });
var temp = $('#np-temp').val()
localStorage.setItem('np-temp', temp)
M.toast({ html: lang.lang_spotify_np, displayLength: 3000 })
}
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]);
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 {
}
}

View File

@ -2,11 +2,9 @@ function np(mainWindow) {
const electron = require('electron')
const join = require('path').join
const app = electron.app
const fs = require('fs')
const fpath = join(app.getPath('userData'), 'npexec')
const npExec = fs.readFileSync(fpath, 'utf8')
const fs = require('fs')
const fpath = join(app.getPath('userData'), 'npexec')
const ipc = electron.ipcMain
const { exec } = require('child_process')
ipc.on('itunes', async (e, args) => {
console.log('Access')
@ -18,25 +16,25 @@ function np(mainWindow) {
try {
const nowplaying = require('itunes-nowplaying-mac')
let value = await nowplaying()
if(!value && npExec) {
exec(npExec, (error, stdout, stderr) => {
e.sender.webContents.send('itunes-np', stdout)
})
} else {
const artwork = await nowplaying.getThumbnailBuffer(value.databaseID)
const base64 = artwork.toString('base64')
value.artwork = base64
e.sender.webContents.send('itunes-np', value)
}
if (!value && npExec) {
const artwork = await nowplaying.getThumbnailBuffer(value.databaseID)
const base64 = artwork.toString('base64')
value.artwork = base64
e.sender.webContents.send('itunes-np', value)
}
} catch (error) {
// エラーを返す
console.error(error)
e.sender.webContents.send('itunes-np', error)
try {
const npExec = fs.readFileSync(fpath, 'utf8')
exec(npExec, (error, stdout, stderr) => {
e.sender.webContents.send('itunes-np', { raw: true, data: stdout })
})
} catch (e) {}
}
} else {
}
}
})
})
}
exports.TheDeskNowPlaying = np