Skip to content

Instantly share code, notes, and snippets.

@xoelop
Last active April 30, 2020 08:40
Show Gist options
  • Save xoelop/6144cf7c36cca7027330297925d24977 to your computer and use it in GitHub Desktop.
Save xoelop/6144cf7c36cca7027330297925d24977 to your computer and use it in GitHub Desktop.
Code to get tweet URLs of all the tweets that appear on the browser after scrolling.
// seen on http://makble.com/how-to-copy-text-from-chrome-console-to-file-using-javascript
console.save = function (data, filename) {
// code to save console output as a json file
if (!data) {
console.error('Console.save: No data')
return;
}
if (!filename) filename = 'console.json'
if (typeof data === "object") {
data = JSON.stringify(data, undefined, 4)
}
var blob = new Blob([data], {
type: 'text/json'
}),
e = document.createEvent('MouseEvents'),
a = document.createElement('a')
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
}
var s = new Set();
function addTweetToSet(tweet) {
// adds an element to the set
var initialSize = s.size;
s.add(tweet);
if (s.size > initialSize) {
console.log(`${s.size} tweets in set`)
}
}
function addTweetsToSet() {
// finds elements by tag name, then adds the parent element href to the set
Array.from(document.getElementsByTagName('time')).forEach(x => addTweetToSet(x.parentElement.href))
}
window.addEventListener('scroll', addTweetsToSet)
// do some scrolling and then call
console.save(Array.from(s))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment