diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/scripts/backup.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/contrib/scripts/backup.js b/contrib/scripts/backup.js new file mode 100644 index 00000000..8c87b2dd --- /dev/null +++ b/contrib/scripts/backup.js @@ -0,0 +1,35 @@ +var argv = require('minimist')(process.argv.slice(2)) + +if (typeof argv.u !== 'string') { + console.log('username must be specified (-u ugnich)') + process.exit(1) +} + +var messages = [] + +function getBlogData(blogUrl, callback) { + fetch(blogUrl) + .then(function(res) { + return res.json() + }) + .then(function(msgs) { + msgs.forEach(function(message) { + messages.push(message) + }) + if (msgs.length == 20) { + blog.searchParams.set('before_mid', msgs.slice(-1).pop().mid) + setTimeout(getBlogData, 1000, blog, callback) + } else { + callback() + } + }) + .catch(console.error) +} + +var blog = new URL('https://api.juick.com/messages') +blog.searchParams.append('uname', argv.u) + +getBlogData(blog, function() { + console.log(JSON.stringify(messages)) +}) + |