d4fef0fab9bc691db6a95c51546.../qloq.user.js

74 lines
1.7 KiB
JavaScript

// ==UserScript==
// @name 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", '🕦']
]);
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 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])), timeStringNow);
d.setMinutes(d.getMinutes() + 1);
d.setSeconds(0);
setTimeout(toq, d - Date.now());
})();