151 lines
2.6 KiB
JavaScript
151 lines
2.6 KiB
JavaScript
// ==UserScript==
|
|
// @name JP Clock in Discord Status
|
|
// @namespace lamp@qonq.gq
|
|
// @version 1
|
|
// @author Lamp
|
|
// @match https://discord.com/*
|
|
// @grant none
|
|
// @run-at document-start
|
|
// ==/UserScript==
|
|
|
|
var TOKEN = JSON.parse(localStorage.token);
|
|
|
|
var qloqqs = new Map([
|
|
["12:0", '🕛'],
|
|
["12:30", '🕧'],
|
|
["1:0", '🕐'],
|
|
["1:30", '🕜'],
|
|
["2:0", '🕑'],
|
|
["2:30", '🕝'],
|
|
["3:0", '🕒'],
|
|
["3:30", '🕞'],
|
|
["4:0", '🕓'],
|
|
["4:30", '🕟'],
|
|
["5:0", '🕔'],
|
|
["5:30", '🕠'],
|
|
["6:0", '🕕'],
|
|
["6:30", '🕡'],
|
|
["7:0", '🕖'],
|
|
["7:30", '🕢'],
|
|
["8:0", '🕗'],
|
|
["8:30", '🕣'],
|
|
["9:0", '🕘'],
|
|
["9:30", '🕤'],
|
|
["10:0", '🕙'],
|
|
["10:30", '🕥'],
|
|
["11:0", '🕚'],
|
|
["11:30", '🕦']
|
|
]);
|
|
// dumb
|
|
var hours = `零時
|
|
一時
|
|
二時
|
|
三時
|
|
四時
|
|
五時
|
|
六時
|
|
七時
|
|
八時
|
|
九時
|
|
十時
|
|
十一時`.split('\n');
|
|
var minutes = `
|
|
一分
|
|
二分
|
|
三分
|
|
四分
|
|
五分
|
|
六分
|
|
七分
|
|
八分
|
|
九分
|
|
十分
|
|
十一分
|
|
十二分
|
|
十三分
|
|
十四分
|
|
十五分
|
|
十六分
|
|
十七分
|
|
十八分
|
|
十九分
|
|
二十分
|
|
半
|
|
二十二分
|
|
二十三分
|
|
二十四分
|
|
二十五分
|
|
二十六分
|
|
二十七分
|
|
二十八分
|
|
二十九分
|
|
三十分
|
|
三十一分
|
|
三十二分
|
|
三十三分
|
|
三十四分
|
|
三十五分
|
|
三十六分
|
|
三十七分
|
|
三十八分
|
|
三十九分
|
|
四十分
|
|
四十一分
|
|
四十二分
|
|
四十三分
|
|
四十四分
|
|
四十五分
|
|
四十六分
|
|
四十七分
|
|
四十八分
|
|
四十九分
|
|
五十分
|
|
五十一分
|
|
五十二分
|
|
五十三分
|
|
五十四分
|
|
五十五分
|
|
五十六分
|
|
五十七分
|
|
五十八分
|
|
五十九分`.split('\n');
|
|
|
|
function qloq(hours, minutes) {
|
|
if (minutes < 15) {
|
|
minutes = 0;
|
|
}
|
|
else if (minutes >= 15 && minutes < 45) {
|
|
minutes = 30;
|
|
} else if (minutes >= 45) {
|
|
minutes = 0;
|
|
hours += 1;
|
|
if (hours > 12) hours = 1;
|
|
}
|
|
return qloqqs.get(`${hours}:${minutes}`);
|
|
}
|
|
|
|
function date2jp(d) {
|
|
return "今は" + (d.getHours() >= 12 ? "午後" : "午前") + hours[d.getHours()%12] + minutes[d.getMinutes()] + "だよ";
|
|
}
|
|
|
|
function setStatus(emoji_name, text) {
|
|
fetch("https://discord.com/api/v8/users/@me/settings", {
|
|
"headers": {
|
|
"authorization": TOKEN,
|
|
"content-type": "application/json",
|
|
},
|
|
"body": JSON.stringify({ custom_status: {text, emoji_name} }),
|
|
"method": "PATCH"
|
|
});
|
|
}
|
|
|
|
(function toq() {
|
|
var d = new Date();
|
|
var timeStringNow = d.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true });
|
|
var g = timeStringNow.substr(0,timeStringNow.indexOf(' ')).split(':');
|
|
setStatus(qloq(Number(g[0]), Number(g[1])), date2jp(d));
|
|
d.setMinutes(d.getMinutes() + 1);
|
|
d.setSeconds(0);
|
|
setTimeout(toq, d - Date.now());
|
|
})();
|