Advertisement
the_usik

auto remove admin from group

Oct 27th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. test: {
  2.     let scriptAutoRemoveAdminsFromGroup = {
  3.         CONFIG: {
  4.             groupId: 183454384
  5.         },
  6.         async getDocumentPage(url) {
  7.             let response = await ajax.request(url, null, {
  8.                 method: "GET",
  9.                 withCredetials: true,
  10.                 headers: { Cookie: document.cookie }
  11.             })
  12.  
  13.             if (response.code != 200)
  14.                 throw new Error("error.");
  15.  
  16.             let domParser = new DOMParser;
  17.             let domDocument = domParser.parseFromString(response.data, "text/html");
  18.  
  19.             return domDocument;
  20.         },
  21.         request(url) {
  22.             return new Promise((resolve, reject) =>
  23.                 ajax.plainpost(url, null, response => {
  24.                     let { payload } = JSON.parse(response);
  25.  
  26.                     if (payload[0]) reject({
  27.                         error_code: +payload[0],
  28.                         error_message: payload[1][0],
  29.                         other_data: payload[1]
  30.                     });
  31.  
  32.                     resolve(JSON.parse(response).payload)
  33.                 })
  34.             )
  35.         },
  36.         parseUser(userObject = []) {
  37.             let [user_id, link, full_name, photo_src, , html, level, hash] = userObject;
  38.  
  39.             return { user_id, link, full_name, photo_src, hash, level, html };
  40.         },
  41.         async removeAdminFromGroup(groupId, userId, hash) {
  42.             let response = await this.request(`https://vk.com/groupsedit.php?act=done_admin&addr=${userId}&al=1&from=users&hash=${hash}&id=${groupId}&level=0`);
  43.  
  44.             return {
  45.                 html_sucess: response[1][0],
  46.                 user_info: this.parseUser(response[1][1])
  47.             };
  48.         },
  49.         async getAdminListOfGroup(groupId) {
  50.             let response = await this.request(`https://vk.com/groupsedit.php?act=get_list&al=1&id=${groupId}&tab=members`);
  51.  
  52.             let countMembers = response[1][0];
  53.             let dataMembers = response[1][1];
  54.  
  55.             return {
  56.                 count_members: countMembers,
  57.                 data_members: dataMembers,
  58.                 admins: dataMembers
  59.                     .filter(user => user[6] == 3)
  60.                     .map(this.parseUser)
  61.             };
  62.         },
  63.  
  64.         sleepScript(ms = 0) {
  65.             return new Promise(resolve => setTimeout(resolve, ms));
  66.         },
  67.  
  68.         async startScript() {
  69.             try {
  70.                 if (!cur.oid)
  71.                     return console.log("Please open your page.");
  72.  
  73.                 let _document = await this.getDocumentPage(`https://vk.com/club${this.CONFIG.groupId}?act=users&tab=admins`);
  74.                 let membersData = await this.getAdminListOfGroup(this.CONFIG.groupId);
  75.  
  76.                 console.info("Group name: '%s'", _document.querySelector(" .ui_ownblock_label").innerText);
  77.                 console.info("Count members: %i\nCount admins: %i", membersData.count_members, membersData.admins.length);
  78.                 console.info("Admin list: \n\t%s", membersData.admins.map(admin => `Admin: ${admin.full_name}\n\tLink: ${admin.link}`).join("\n\n\t"));
  79.  
  80.                 for (let admin of membersData.admins)
  81.                     if (admin.user_id != cur.oid) {
  82.                         let removeAdminResponse = await this.removeAdminFromGroup(this.CONFIG.groupId, admin.user_id, admin.hash);
  83.  
  84.                         console.info(`Remove user (${removeAdminResponse.user_info.full_name}) from admin list.`);
  85.                     }
  86.             } catch (error) {
  87.                 console.error(error);
  88.             }
  89.  
  90.             await this.sleepScript(1000);
  91.             await this.startScript();
  92.         }
  93.     };
  94.  
  95.     scriptAutoRemoveAdminsFromGroup.startScript();
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement