-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
61 lines (51 loc) · 1.55 KB
/
index.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
var util = require('util')
, punycode = require('punycode');
var config = require('config')
, Twitter = require('twit')
, Bitly = require('bitly')
var eventService = require('event-service');
var KEYWORDS = [ 'ヒカリエ' ]
, SUSHI = punycode.decode('9i8h')
, PLACEFILTER = function(string) {
var have = function(string, key) {
return string.toLowerCase().indexOf(key) > -1;
};
return (have(string, 'ヒカリエ') || have(string, '東京都渋谷区渋谷2-21-1')) &&
(have(string, 'dena') || have(string, 'ディー・エヌ・エー'));
};
var postEventToTwitter = function(event, callback) {
var twitter = new Twitter(config.twitter)
, bitly = new Bitly(config.bitly.user_name, config.bitly.api_key);
var eventToString = function(event, callback) {
bitly.shorten(event.event_url, function(err, res) {
var url;
if (err) {
url = event.event_url;
} else {
url = res.data.url;
}
callback(SUSHI + ' が食えるぞ!急ぐのじゃ!' + '[' + event.title + '] ' + url);
});
};
eventToString(event, function(eventString) {
twitter.post('statuses/update', { status: eventString }, callback);
});
};
(function run() {
eventService({
keywords: KEYWORDS,
placeFilter: PLACEFILTER
}, function(err, events) {
if (err) {
console.error(err);
return;
}
events.forEach(function(event) {
postEventToTwitter(event, function(err) {
if (err) {
console.error(err);
}
});
});
});
})();