var Mastodon = require('mastodon'); var Schedule = require('node-schedule'); var fs = require('fs'); var https = require('https'); var m; var ts; fs.readFile('.TOKEN', 'utf-8', function(err,data){ if (err) { console.log(err); process.exit(1); } m = new Mastodon({ access_token : data.trim(), api_url: 'https://botsin.space/api/v1/' }); console.log('Tooting Scooter quutes!'); ts = Schedule.scheduleJob('1 8 * * 0,3', doQuote); ts = Schedule.scheduleJob('6 13 * * 2,5', doQuote); ts = Schedule.scheduleJob('19 18 * * 1,4', doQuote); ts = Schedule.scheduleJob('31 20 * * 6', doQuote); doQuote(); }); function doQuote() { https.get('https://howmuchisthe.fish/json/random', (res) => { var dat = ''; res.setEncoding('utf8'); res.on('data', (d) => { dat += d; }); res.on('end', () => { try { var js = JSON.parse(dat); tootQuote( js ); } catch (err) { console.log(err); } }); }).on('error', (e) => { console.log(e); }); } function tootQuote(obj) { if ( obj && obj.quote && obj.quote.text ) { console.log( 'Tooting: ' + obj.quote.text.trim() + "\n"); var cw = obj.quote.text.trim(); var message = "from '" + obj.quote.track.trim() + "' on the album '" + obj.quote.album.trim() + "'\n" + obj.quote.track_master.trim() + "\n#quote #scooter #bot"; m.post('statuses', { status: message, spoiler_text: cw, visibility: 'public' }); } }