Как разыграть бесплатные места на курсе вёрстки для архитекторов (JS+Instagram)

Ivan @ 22 / 01 / 2021 @ Blog / Медиа / Программирование / Скрипты
( / / )

Время чтения: ~ 6 мин.

Перед празд­ни­ка­ми раз­да­ва­ли бес­плат­ные места на курс вёрст­ки для архи­тек­то­ров.🍉

Ну а что­бы не про­сто разыг­ры­вать через гото­вые сер­ви­сы, напи­сал коро­тень­кий скрипт для выбо­ра победителя.

Код скрип­та для выбо­ра побе­ди­те­лей в Instagram розыгрыше:

let userNameList = document.querySelectorAll(".sqdOP.yWX7d._8A5w5.ZIAjV "); // here goes the selector we search for
console.log(userNameList.length);
nameSet = new Set();

for (let i=0; i<userNameList.length; i++) {
  nameSet.add(userNameList[i].firstChild.nodeValue);
  console.log(userNameList[i].firstChild.nodeValue);
}

console.log(nameSet.size);
let keys = Array.from(nameSet.keys());

console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("Selected randomly:");

console.log(keys[Math.floor(Math.random() * keys.length)]);
console.log(keys[Math.floor(Math.random() * keys.length)]);
console.log(keys[Math.floor(Math.random() * keys.length)]);

Уга­дай­те, для чего вот это может при­го­дить­ся: document.querySelector('.dCJp8.afkep').click();

UPD 03.10.21. Обнов­лён­ная вер­сия скрип­та, см. ком­мен­та­рии в кон­це кода:

//MOSTLY WRITTEN BY I. Matveev of DMTRVK.RU
// THANKS TO GeorgeCrisan from https://forum.freecodecamp.org/t/how-to-make-math-random-not-repeat-same-numbers/417973/3 for the generateUniqueRandom function

let haveIt = [];
function generateUniqueRandom(maxNr) {
    //Generate random number
    let random = (Math.random() * maxNr).toFixed();

    //Coerce to number by boxing
    random = Number(random);

    if(!haveIt.includes(random)) {
        haveIt.push(random);
        return random;
    } else {
        if(haveIt.length < maxNr) {
          //Recursively generate number
         return  generateUniqueRandom(maxNr);
        } else {
          console.log('No more numbers available.')
          return false;
        }
    }
}


let userNameList = document.querySelectorAll(".sqdOP.yWX7d._8A5w5.ZIAjV "); // here goes the selector we search for
console.log(userNameList.length);
nameSet = new Set();

for (let i=0; i<userNameList.length; i++) {
  nameSet.add(userNameList[i].firstChild.nodeValue);
  console.log(userNameList[i].firstChild.nodeValue);
}

console.log(nameSet.size);
let keys = Array.from(nameSet.keys());

console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("!!!!!!!!!!!!!!!!!!!!!!!!");
console.log("Selected randomly:");

for (i=0; i<5; i++){ //CHANGE THIS TO THE NUMBER OF WINNERS
    //console.log(keys[Math.floor(Math.random() * keys.length)]);
    randomNumber = generateUniqueRandom(keys.length);
    if (keys[randomNumber] == "dmtrvk.ru" | keys[randomNumber] == undefined){ //CHANGE THIS TO EXCLUDE YOUR ACCOUNT
        i--;
    } else {
        console.log("№",i+1," —", keys[randomNumber]);
    }
}

И код для того, что­бы не нажи­мать кноп­ку загруз­ки ком­мен­та­ри­ев вручную:

(function myLoop(i) {
  setTimeout(function() {
    try {
        document.querySelector('.dCJp8.afkep').click();
        console.log('>')
    } catch(e) {
        console.log('Can find any button to click, moving on.')
        return;
    }
    console.log('>'); //  your code here                
    if (--i) myLoop(i);   //  decrement i and call myLoop again if i > 0
  }, 500)
})(100);                   //  pass the number of iterations as an argument

 

 


Может быть интересно:


Подпишитесь на нас в социальных сетях!

Instagram
VK
Facebook
YouTube!
Telegram!

Подпишитесь на обновления



* нажимая на кнопку «Подписаться», вы даете согласие на обработку своих персональных данных