-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmeekly.js
68 lines (50 loc) · 1.78 KB
/
meekly.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const Twitter = require('twitter');
const request = require('request');
const schedule = require('node-schedule')
const env = require('node-env-file')
const fs = require('fs');
env(__dirname + '/.env')
let CONSUMER_KEY = process.env.TwitterConsumerKey
let CONSUMER_SECRET = process.env.TwitterConsumerSecret
let ACCESS_TOKEN_KEY = process.env.TwitterAccessKey
let ACCESS_TOKEN_SECRET = process.env.TwitterAccessSecret
let USERNAME = process.env.LastfmUser
let LASTFMAPIKEY = process.env.LastfmKey
const options = {
url: 'http://ws.audioscrobbler.com/2.0/?method=user.gettopartists&user=' + USERNAME + '&api_key=' + LASTFMAPIKEY + '&format=json&period=7day&limit=3',
headers: {
'User-Agent': 'Meekly'
}
}
const client = new Twitter({
consumer_key: CONSUMER_KEY,
consumer_secret: CONSUMER_SECRET,
access_token_key: ACCESS_TOKEN_KEY,
access_token_secret: ACCESS_TOKEN_SECRET
});
let artists = null;
function getMusic() {
request(options, function (error, response, body) {
artists = 'My top artists this week: ';
let result = JSON.parse(body)
for (i = 0; i < result['topartists']['artist'].length; i++) {
let name = result['topartists']['artist'][i]['name'];
let c = result['topartists']['artist'][i]['playcount'];
if (i < 2) {
artists += name + ', '
} else {
artists += 'and ' + name + '. #music #nowplaying';
}
}
setTimeout(tweet, 5000);
});
}
function tweet() {
var body = {
status: artists
}
client.post('statuses/update', body, function (error, tweet, response) {});
}
schedule.scheduleJob('0 3 9 * * 7', function () {
getMusic()
})