pause = false, timeout = lastFetch = restarter = null, moreCommentSelector = 'span.morecomments > a' moreCommentLinks = () => document.querySelectorAll(moreCommentSelector) showProgress = msg => { lastFetch = Date.now() console.log(`${new Date().toLocaleTimeString()} — ${msg}`) } restartIfPaused = () => { if(!pause && moreCommentLinks().length && ((Date.now() - lastFetch)/1000 > 20)) { loadMore() console.log('Resumed loading new comments...') } } clearAllTimers = () => { clearTimeout(timeout) clearInterval(restarter) pause = true console.log('Timers cleared.') } restarter = setInterval(restartIfPaused, 30000) loadMore = () => { timeout = setTimeout(() => { if(!pause) { let links = moreCommentLinks() links[0].click() let remainingLinks = links().length - 1 showProgress(remainingLinks) remainingLinks? loadMore() : clearAllTimers() } }, 5000) } loadMore()