Greasy Fork is available in English.

Discord Status Animator (Manual edit/Non-UI)

Automatically changes your Discord status

Version au 14/06/2021. Voir la dernière version.


Installer ce script?
// ==UserScript==// @name         Discord Status Animator (Manual edit/Non-UI)// @namespace    https://github.com/Hakorr/status-animator// @run-at       document-start// @version      1.0// @description  Automatically changes your Discord status// @author       HKR// @match        https://discord.com/*// @grant        none// ==/UserScript==(function() {//Welcome! Don't be scared by the code, I was too lazy to do an UI for this.//All you have to edit is the statusanimation function's code (Around the line 40)var name = "Status Animator";var version = "V1.0";var run = true;//A Cookie will be made with this name, feel free to edit itvar cookie_name = "StatusToken";var delete_cookie_after_a_week = true;//Your status will be changed to these after you close the Discord tabvar default_status_text = "";var default_status_emoji = "";//Animation blocks/////////////////*1. status(emoji,text);2. await delay(ms);*/async function statusanimation() {////////////////////////////////////status("👐","This");await delay(500);status("👀","Is");await delay(500);status("😶","A");await delay(500);status("✨","Test");await delay(500);status("","");await delay(2000);/////////////////////////////if (run) statusanimation(); }//Do not edit after this line (If you don't know what you're doing)/////////////////////////////////////////////////////////////////////Function to read the saved cookiewindow.getCookie = function(name) {var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));if (match) return match[2];}//Set the Discord Token as a Cookie for future use of the scriptif(document.cookie.indexOf(cookie_name + "=") == -1) {if(confirm("\"" + cookie_name + "\" cookie not found. Refreshing Discord to get it.\n\n- " + name + version)) {location.reload();var i = document.createElement('iframe');document.body.appendChild(i);//Get Token from localStoragevar token = i.contentWindow.localStorage.tokentoken = token.slice(1, -1);if(delete_cookie_after_a_week) {//Save the encrypted Token to a Cookie - The cookie will be deleted after a weekdocument.cookie = cookie_name + "=" + token + "; secure=true; max-age=604800; path=/";} else {document.cookie = cookie_name + "=" + token + "; secure=true; path=/";}} else { throw new Error("[Not an actually uncaught] User stopped the Status Animator. \n\nNo cookie was found and user decided not to continue."); }}var status_text = "";var status_emoji = "";//Function that changes the status variables (Saves up a bit space)function status(emoji,text) {if(run) {status_text = text;status_emoji = emoji;setstatus();}}//Get Discord Token from saved Cookievar token = getCookie(cookie_name);//HTTP Request's URL addressvar url = "https://discord.com/api/v9/users/@me/settings";//Function that handles the HTTP request for the status changefunction setstatus() {//Set up a HTTP request to change the statusvar request = new XMLHttpRequest();request.open("PATCH", url);request.setRequestHeader("Accept", "*/*" );request.setRequestHeader("Content-Type", "application/json");request.setRequestHeader("Authorization", token);//Send the HTTP request to change the statusrequest.send(JSON.stringify({"custom_status":{"text":status_text,"emoji_name":status_emoji}}));//If request failedrequest.onreadystatechange = () => {if (request.status != 200) {run = false;throw new Error("[Not an actually uncaught] Failed to update status. \n\nThe HTTP request failed. Most likely because the authorization token is incorrect.");}};}//Simple delay function for animationfunction delay(t) {return new Promise(function(resolve) {setTimeout(resolve, t)});}//Start the animation for the first timeif (run) statusanimation();//Edit (Clear by default) status before exitingwindow.onbeforeunload = function () {run = false;status_text = default_status_text;status_emoji = default_status_emoji;setstatus();return "";};})();