Skip to content

Instantly share code, notes, and snippets.

@fdaciuk
Last active December 20, 2020 19:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fdaciuk/6e7c39c16bbbc8f63d86a681058ae836 to your computer and use it in GitHub Desktop.
Save fdaciuk/6e7c39c16bbbc8f63d86a681058ae836 to your computer and use it in GitHub Desktop.
Sorteio GitHub (Discussions)
/*
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