gallery/bin/make_gallery.js

57 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-05-28 10:40:07 +00:00
#! /usr/bin/env node
const fs = require('fs');
const axios = require('axios');
const captureWebsite = require('capture-website');
const mustache = require("mustache");
console.log('downloading tilde.town homepage...');
2020-05-28 10:51:30 +00:00
axios.get('http://tilde.town/').then(function (response) {
if (response.status != 200) {
console.log('Chyba!');
return 0;
}
2020-05-28 10:40:07 +00:00
let userRegex = /<a href="\/~(\w+)">[\w]+<\/a>/g;
var users = Array.from(response.data.matchAll(userRegex), function (result) {
return result[1];
});
2020-05-28 12:08:59 +00:00
// 150 last active users
users = users.slice(0,150);
2020-05-28 10:40:07 +00:00
console.log('writing index.html...');
var datum = new Date();
fs.writeFileSync('index.html', mustache.render(fs.readFileSync('index.tpl.html').toString(), {
users: users,
date: datum
}));
2020-05-28 10:42:16 +00:00
console.log(users.length + ' users at all');
console.log('');
console.log('now let\'s download them:');
2020-05-28 10:40:07 +00:00
let offset = 0;
users.map(user => {
setTimeout(() => {
(async () => {
console.log('downloading ' + user + '...');
2020-05-28 10:51:30 +00:00
await captureWebsite.file('http://tilde.town/~'+user+'/', user+'.png', {
2020-05-28 10:40:07 +00:00
scaleFactor: 0.5,
overwrite: true,
timeout: 5
});
})();
}, 10000 + offset);
offset += 10000;
});
//console.log('ALL OK');
});
// captureWebsite.file('https://sindresorhus.com', 'screenshot.png', {});
// console.log("OK")