Ban members from group management page
当前为
// ==UserScript==
// @name Steam group ban
// @namespace https://greasyfork.org/users/2205
// @version 0.1
// @description Ban members from group management page
// @author Ryzhehvost
// @match https://steamcommunity.com/groups/*/membersManage*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function getPartner(str) {
if (typeof(BigInt)!=="undefined") {
return (BigInt(str) % BigInt(4294967296)).toString(); // eslint-disable-line
} else {
let result = 0;
for (let i = 0; i < str.length; i++) {
result = (result * 10 + Number(str[i])) % 4294967296;
}
return result;
}
}
function banMember(steamid,username) {
let gid = getPartner(g_strBaseEditURL.split("=")[1]); // eslint-disable-line
let xhr = new XMLHttpRequest();
xhr.open("POST", "https://steamcommunity.com/gid/"+gid+"/banuser/?ajax=1", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.responseType = "json";
xhr.onload = function() {
console.log(xhr);
let status = xhr.status;
if (status === 200) {
if (typeof(xhr.response) !== "undefined") {
console.log(xhr.response);
ShowAlertDialog("Banned Successfully", "User "+ username + " was banned from " + document.title.split("::")[2].trim()); // eslint-disable-line
}
} else {
console.log("error");
}
};
xhr.onerror = function() {
console.log("error");
}
xhr.send("gidforum=-1&gidtopic=-1&gidcomment=-1&target="+getPartner(steamid)+"&sessionid="+g_sessionID+"&is_warning=0&ban_length=0&ban_reason=PERMABAN&deletecomments=on"); // eslint-disable-line
//xhr.send("sessionID="+g_sessionID+"&steamid="+steamid+"&block=1");
};
function BanEventHandler(event) {
banMember(event.target.dataset.steamid,event.target.dataset.username);
}
function updateButtons(elements){
let kickbuttons = elements.getElementsByClassName("officerIcon manageMemberAction");
const regex = /ManageMembers_Kick\(\s*'(\d+)',\s*'(.+)'\s\);/;
for (let index=0; index<kickbuttons.length; index++) {
let results = kickbuttons[index].outerHTML.match(regex);
if (results!==null){
let buttonDiv = document.createElement("div");
buttonDiv.setAttribute("class", "manageMemberAction");
buttonDiv.setAttribute("style", "display: inline-block;background-color: rgba( 0, 0, 0, 0.4 );border-radius: 9px;width: 21px;line-height: 21px;margin-right: 3px;vertical-align: middle;");
buttonDiv.setAttribute("data-steamid", results[1]);
buttonDiv.setAttribute("data-username", results[2]);
buttonDiv.appendChild(document.createTextNode("⛔"));
let insertedNode = kickbuttons[index].parentElement.insertBefore(buttonDiv, kickbuttons[index]);
console.log(results);
insertedNode.addEventListener("click", BanEventHandler);
}
}
}
updateButtons(document.documentElement);
})();