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

Ivan @ 22 / 01 / 2021 @ Blog / Медиа / Programming / Скрипты
( / / )

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

Sor­ry, this entry is not avail­able in English.

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

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

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

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

 

 


Similar Posts:


Subscribe!

Instagram
VK
Facebook
YouTube!
Telegram!

Subscribe to mail list



* clicking the ‘Subscribe’ button you agree that your personal data will be processed