-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
125 lines (106 loc) · 3.69 KB
/
index.js
File metadata and controls
125 lines (106 loc) · 3.69 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
var twitter = require("twitter");
var trans = require("./epicenter.json");
// Slack Webhook Key
var slackURL = "";
var slackBot = require("slack-bot")(slackURL);
// Twitter oauth key
var client = new twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
var userID = 214358709; // eewbot
//var userID = 3313238022; // LighterBot1
//var userID = 1875425748; // kurisubrooks
if(userID == 214358709){
var userName = 'eewbot';}
else if(userID == 3313238022){
var userName = 'lighterbot1';}
else {var userName = userID;}
client.stream('statuses/filter', {follow: userID, filter_level: 'low'}, function(stream) {
console.log('Connected to ' + userName);
console.log('Monitor Started, Waiting for Earthquake.')
slackBot.send({
username: "Earthquake Bot",
text: "Connected."
});
stream.on('data', function(tweet) {
if (tweet.delete != undefined) {
return;
}
if (tweet.user.id_str == userID) {
dataParse(tweet.text);
}
});
stream.on('error', function(error) {
console.log(error);
});
});
function dataParse(inputData) {
var parsedInput = inputData.split(',');
var i, item, j, len, ref;
ref = ["type", "training_mode", "announce_time", "situation", "revision", "earthquake_id", "earthquake_time", "latitude", "longitude", "epicenter", "depth", "magnitude", "seismic", "geography", "alarm"];
for (i = j = 0, len = ref.length; j < len; i = ++j) {
item = ref[i];
global[item] = parsedInput[i];
}
for (var i = 0; i < trans.length; i++) {
var item = trans[i];
if (item.jp == epicenter){
epicenterJP = item.jp;
epicenterEN = item.en;
}
}
var lang = 'en';
switch (lang) {
case 'en':
var titleString = 'Earthquake Early Warning';
var subtitleString = 'Earthquake occurred';
var magnitudeString = 'Magnitude';
var seismicString = 'Max Seismic';
var cancelledString = 'This Earthquake Warning has been cancelled.'
var epicenterLocale = epicenterEN;
break;
case 'jp':
var titleString = '緊急地震速報(強い揺れに警戒して下さい)';
var subtitleString = 'Earthquake occurred';
var magnitudeString = 'マグニチュド';
var seismicString = '最大震度';
var cancelledString = '先ほどの地震速報は誤報です。';
var epicenterLocale = epicenterJP;
break;
default:
var titleString = 'error - no lang selected';
var subtitleString = 'error - no lang selected';
var magnitudeString = 'error';
var seismicString = 'error';
var cancelledString = 'error - no lang selected';
var epicenterLocale = epicenterJP;
break;
}
if (situation == 9){
var situationString = "Final";}
else {
var situationString = "#" + revision;}
if (seismic == '不明') {
var seismicLocale = "Unknown";}
else {
var seismicLocale = seismic;}
var titleString =
earthquake_time + " - " + epicenterLocale;
var messageString =
"Update " + situationString + ", Magnitude: " + magnitude + ", Seismic: " + seismicLocale;
if (revision == 1) {
var output =
"*An Earthquake has Occurred.*" + "\n" +
titleString + "\n" +
messageString;
} else {var output = messageString;}
console.log(titleString);
console.log(messageString);
slackBot.send({
username: "Earthquake Bot",
text: output
});
}