Last active
December 20, 2020 19:30
-
-
Save fdaciuk/6e7c39c16bbbc8f63d86a681058ae836 to your computer and use it in GitHub Desktop.
Sorteio GitHub (Discussions)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Enquanto o GitHub não libera a API da nova feature de Discussions, vamos fazer o sorteio pelo console mesmo! | |
Para fazer o sorteio é bem simples: | |
1. abra a Discussão que você quer fazer o sorteio; | |
2. cole o código abaixo no seu console; | |
3. Digite no console `sortear()`. | |
Obs.: Somente comentários únicos serão contabilizados. Respostas à comentários serão ignoradas. | |
*/ | |
let comments | |
function buttonClick (done) { | |
const button = document.querySelector('.ajax-pagination-btn') | |
if (!button || comments) { | |
console.log('comentários carregados!') | |
return done() | |
} | |
console.log('carregando comentários...') | |
button.click() | |
setTimeout(() => buttonClick(done), 500) | |
} | |
function countComments () { | |
return document.querySelectorAll('.js-timeline-item') | |
} | |
function sortear () { | |
buttonClick(() => { | |
if (!comments) { | |
comments = countComments() | |
console.log('Temos %d comentários!', comments.length) | |
} | |
let counter = 3 | |
vaiSortear(counter) | |
}) | |
} | |
function vaiSortear (counter) { | |
if (counter === 0) { | |
console.log('E a pessoa que ganhou foi:') | |
const winner = comments[Math.floor(Math.random() * comments.length)] | |
console.log(winner) | |
window.scrollTo({ | |
top: winner.scrollTop, | |
left: 0, | |
behaviour: 'smooth', | |
}) | |
return | |
} | |
setTimeout(() => { | |
console.log('sorteando em %d...', counter--) | |
vaiSortear(counter) | |
}, 1000) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment