Подписаться
Опубликовано

Победители конкурса!

Автор
  • Имя
    Счастливый тимлид | ♥ Frontend
    Telegram

Победители конкурса!

6 сентября я в честь дня рождения канала запустил конкурс. Под постом собралось 37 комментариев, одного победителя я выбрал субъективно — это коммент от @cherkashindev. Кстати, классный канал у Саши, я подписался. А второго выбирал с помощью рандомайзера. Про это и расскажу.

Сначала я думал воспользоваться готовым сервисом, но вспомнил, что я еще и программист, так почему бы не состряпать скриптец самому? Я полез искать как через апи забрать все комменты, но там было как-то сложно, поэтому я вспомнил про мой любимый веб. Здесь пригодилась веб-версия телеграма, где можно через const nodeList = document.querySelectorAll('.name') спарсить почти все ноды с участниками.

Дальше дело техники: — Список нод превращаю в массив и вытаскиваю из них текст: const names = [...nodeList].map(n => n.innerText)

— В список не попали те, кто отправлял стикеры, поэтому пушу их туда руками: names.push('Ruslan') и т.д.

— Затем убираю себя, первого победителя и дубликаты с помощью фильтра и сета: const players = [...new Set(names.filter(n => !n.includes('Счастливый тимлид') && !n.includes('cherkashin')))]

Победителя можно выбрать с помощью простого рандома по массиву: array[Math.floor(Math.random() * array.length)]

Чтобы ожидание результата было более интригующим пишу незамысловатую функцию с обратным отсчетом:

JavaScript
const getRandom = (array) => { let time = 10; const timer = setInterval(() => { if (--time === 0) { console.log('Победитель:' + array[Math.floor(Math.random() * array.length)]) clearInterval(timer) return } console.log('До выяснения победителя ' + time + ' секунд'); }, 1000) }

и запускаю: getRandom(players)

Результат:

До выяснения победителя 9 секунд До выяснения победителя 8 секунд До выяснения победителя 7 секунд До выяснения победителя 6 секунд До выяснения победителя 5 секунд До выяснения победителя 4 секунд До выяснения победителя 3 секунд До выяснения победителя 2 секунд До выяснения победителя 1 секунд

С победителями я уже связался. Они оказались из Москвы и Курска, поэтому книжки в ближайшие дни пойду отправлять на почту!

Спасибо всем за участие

© Счастливый тимлид

Счастливый тимлид | ♥ Frontend
2204 подписчика
692 поста

Закрепленные

Из подборки #frontend

Опубликовано

Телеграмовский сосун (или какун, как правильно?)

Телеграмовский сосун суммирует мой лонгрид – стоит ли публиковать полную версию?
Опубликовано

Итоги

Итоги года блога тимлида: количество подписчиков, менторство, сообщество ИТ‑блогеров, планы на 2025
Опубликовано

Поделитесь вашими любимыми мемами уходящего года

Поделитесь любимыми мемами уходящего года

Свежие посты

Опубликовано

Телеграмовский сосун (или какун, как правильно?)

Телеграмовский сосун суммирует мой лонгрид – стоит ли публиковать полную версию?