User:Cheeseskates/chat.js

////////////////////////////////////////////////////////////////////////////////

/* -- -- */ ////////////////////////////////////////////////////////////////////////////////
 * * Name:       Global Chat JavaScript                                      |
 * * Author:     Sophiedp - Cheeseskates                                     |
 * * Description: This is my chat.js that can load on all wikis like         |
 * global.js can. It is thanks to Sophiedp's script you can   |
 * put in TamperMonkey.                                       |
 * https://openuserjs.org/scripts/LunarTwilight/Load_global.js_in_chat/source |
 * put in TamperMonkey.                                       |
 * https://openuserjs.org/scripts/LunarTwilight/Load_global.js_in_chat/source |
 * https://openuserjs.org/scripts/LunarTwilight/Load_global.js_in_chat/source |

//————————————————————————————————————————————————————————————————————————————// // Direct JavaScript code // //————————————————————————————————————————————————————————————————————————————//

/**/ ///————————————————————— Major Direct JavaScript code ———————————————————————/// /**/

/* -- -- */
 * * Name:       Slash commands                                              |
 * * Author:     Cheeseskates                                                |
 * * Description: Using slash commands, I can generate preset messages       |
 * through typing a short word or phrase that would be similar |
 * to the preset message. This helps send messages quickly    |
 * while taking action as fast as possible.                   |
 * e.g. warning and kicking.                                  |
 * while taking action as fast as possible.                   |
 * e.g. warning and kicking.                                  |

// Make it generate the message when I press Enter or Space $('[name="message"]').keypress(function(a) { if (32 == a.which || 13 == a.which) {    switch(this.value) {      case "/coppa":        this.value = "COPPA - You must be 13 or older to legally have an account on Wikia.";        break;      case "/swear":        this.value = "Please don't swear,";        break;      case "/spam":        this.value = "Please don't spam,";        break;      case "/troll":        this.value = "Please don't troll,";        break;      case "/disrupt":        this.value = "Please don't disrupt the chat,";        break;      case "/caps":        this.value = "Please don't comment with excessive capslock characters,";        break;      case "/slur":        this.value = "Please don't use slurs,";        break;      case "/nsfw":        this.value = "Please don't post NSFW comments,";        break;      case "/shock": this.value = "Please don't post shocking content,"; break; case "/minimod": this.value = "Please don't mini-mod,"; break; case "/rp": this.value = "Please don't roleplay on the main chat,"; break; case "/ad": this.value = "Please don't advertise unrelated content,"; break; case "/bye": this.value = "Take it easy."; } } });

// --

function inlineAlert(a) { mainRoom.model.chats.add(new models.InlineAlert({text:a})); $('[name="message"]').val("").removeAttr("disabled").focus; } $('[name="message"]').keypress(function(a) { if (13 === a.which) {    var b = this.value;    b.trim || (a.preventDefault, $('[name="message"]').val("").removeAttr("disabled").focus);    /!help/i.test(b) && !0 === mainRoom.active && (a.preventDefault, inlineAlert("Commands: !category, !delete, !talkpage, !quickdelete, !protect, !block, !message"));  } }); function commands { $('[name="message"]').keydown(function(a) {   13 === a.which && "!category" === $(this).val.substr(0, 9) && (command = $(this).val.split("|"), page = command[1], category = "\n", $(this).unbind("keypress").val(""), commandsAPI.category);  }); $('[name="message"]').keydown(function(a) {   13 === a.which && "!delete" === $(this).val.substr(0, 7) && (command = $(this).val.split("|"), page = command[1], reason = command[2], $(this).unbind("keypress").val(""), commandsAPI["delete"]);  }); $('[name="message"]').keydown(function(a) {   13 === a.which && "!block" === $(this).val.substr(0, 6) && (command = $(this).val.split("|"), username = command[1], duration = command[2], blockReason = command[3], $(this).unbind("keypress").val(""), commandsAPI.block);  }); $('[name="message"]').keydown(function(a) {   13 === a.which && "!protect" === $(this).val.substr(0, 8) && (command = $(this).val.split("|"), page = command[1], protecttype = command[2], protectexpiry = command[3], protectreason = command[4], $(this).unbind("keypress").val(""), commandsAPI.protect);  }); $('[name="message"]').keydown(function(a) {   13 === a.which && "!quickdelete" === $(this).val.substr(0, 12) && (command = $(this).val.split("|"), page = command[1], reason = command[2], content = "", $(this).unbind("keypress").val(""), commandsAPI.quickdelete);  }); $('[name="message"]').keydown(function(a) {   13 === a.which && "!talkpage" === $(this).val.substr(0, 9) && (command = $(this).val.split("|"), user = command[1], title = command[2], message = command[3], $(this).unbind("keypress").val(""), commandsAPI.talkpage);  }); $('[name="message"]').keydown(function(a) {   13 === a.which && "!message" === $(this).val.substr(0, 8) && (command = $(this).val.split("|"), user = command[1], title = command[2], content = command[3], $(this).unbind("keypress").val(""), commandsAPI.message);  }); } var commandsAPI = {"delete":function { $.post(mw.util.wikiScript("api"), {format:"json", action:"delete", reason:reason, title:page, token:mw.user.tokens.get("editToken"), success:alert("Done!")}); }, block:function { $.post(mw.util.wikiScript("api"), {format:"json", action:"block", user:username, expiry:duration, nocreate:0, autoblock:0, reason:blockReason, token:mw.user.tokens.get("editToken"), success:alert("Done!")}); }, protect:function { $.post(mw.util.wikiScript("api"), {format:"json", action:"protect", expiry:protectexpiry, protections:protecttype, watchlist:"nochange", title:page, reason:protectreason, token:mw.user.tokens.get("editToken"), success:alert("Done!")}); }, category:function { $.post(mw.util.wikiScript("api"), {format:"json", action:"edit", summary:prompt("Type a summary please."), title:page, appendtext:category, token:mw.user.tokens.get("editToken"), success:alert("Done!")}); }, quickdelete:function { $.post(mw.util.wikiScript("api"), {format:"json", action:"edit", summary:"Admins,this page needs deletion because " + reason + ".", title:page, prependtext:content, token:mw.user.tokens.get("editToken"), success:alert("Done!")}); }, talkpage:function { $.post(mw.util.wikiScript("api"), {format:"json", action:"edit", summary:"Adding message: " + title, title:"User_talk:" + user, section:"new", sectiontitle:title, text:message, token:mw.user.tokens.get("editToken"), success:alert("Done!")}); }, message:function { $.nirvana.sendRequest({controller:"WallExternal", method:"postNewMessage", type:"POST", data:{body:command[3], pagetitle:"Message_Wall:" + command[1], messagetitle:command[2], token:mw.user.tokens.values.editToken}}); inlineAlert("Message sent to: " + command[1] + " (Title:" + command[1] + ") (Message:" + command[3] + ")"); }}; $(commands);

/**/ ///————————————————————— Minor Direct JavaScript code ———————————————————————/// /**/ // Add when necessary

//// // ——————————————————— End Direct Import JavaScript Code ———————————————————— // ////

//————————————————————————————————————————————————————————————————————————————// // Script Configurations -// //————————————————————————————————————————————————————————————————————————————//

// ChatBlockButton Configuration chatBlockReason = "Misbehaving", "Social Disruption", "Troll.", "Spam", "Excessive Swearing", "Excessive capslock", "Excessive text", "Flood", "Disregarding the moderators", "Malicious intention", "Accessory before the fact", "Accessory after the fact", "Harassment", "Gaming the system", "Victim complex", "God complex", "Canvassing", "Cross-wiki drama", "Banditry", "Shock", "Sockpuppetry", "Sockpuppet", "Violation",

// QuickModTools Configuration window.QuickModTools = { quickreasons: [ "Misbehaving", "Social Disruption", "Troll.", "Spam", "Excessive Swearing", "Excessive capslock", "Excessive text", "Flood", "Disregarding the moderators", "Malicious intention", "Accessory before the fact", "Accessory after the fact", "Harassment", "Gaming the system", "Victim complex", "God complex", "Canvassing", "Cross-wiki drama", "Banditry", "Shock", "Sockpuppetry", "Sockpuppet", "Violation", ], };

//// // ——————————————————————— End Configuration Section ———————————————————————— // ////

//————————————————————————————————————————————————————————————————————————————// // Imports ---// //————————————————————————————————————————————————————————————————————————————//

$(function {    importArticles({ type: "script", articles: [ "u:dev:MediaWiki:BlinkingTabAlert.js", "u:dev:MediaWiki:ChatModHover/code.js", "u:dev:MediaWiki:ChatTimestamps/code.js", "u:dev:MediaWiki:ChatUserPageButton.js", "u:dev:MediaWiki:FasterBanModule/code.js", "u:dev:MediaWiki:GiveChatModPrompt/code.js", "u:dev:MediaWiki:MessageBlocker/code.js", "u:dev:MediaWiki:QuickModTools/code.js", "u:steven-universe:User:Andrey Andrey/chat.js", ]   }); });

//// // —————————————————— End ImportArticles section and page ——————————————————— // ////