7c1d2b81e7795d157e66f472137.../jqloq.user.js

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());
})();