-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.js
More file actions
60 lines (49 loc) · 1.55 KB
/
app.js
File metadata and controls
60 lines (49 loc) · 1.55 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
var sentiment = require('sentiment');
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var twitter = require('twitter');
var Firebase = require('firebase');
var env = require('node-env-file');
var tweetData;
var dataRef = new Firebase("https://scorching-fire-1875.firebaseio.com/");
// start server
server.listen(process.env.PORT || 5000)
console.log("Node server started on port 5000");
app.use('/', express.static(__dirname + '/'));
app.get('/', function(req,res) {
res.sendfile(__dirname + '/index.html');
search = req.query || "";
});
// declare env file
// env(__dirname + '/.env');
// twitter auth
var t = new twitter({
consumer_key:"c6eNELOE5cuIDyXumVzl4bwsm",
consumer_secret:"Du9PSkr5KNRuS8qVHGJYRprnJyR6AjsuWW5ZCHyrQZYlEWlO45",
access_token_key:"2405531070-elt5ErPJbH3GAlilq3d3aHnKqkGcGiFWRBPRgw5",
access_token_secret:"IbZosIuhZGHXthm2rkoAvp2sFKCUQtF69iqKruCAV8U7p"
});
// initialize tweet stream
function beginStream(){
t.stream('statuses/filter', {locations :'-125,30,-70,48'}, function(stream) {
stream.on('data', sendTweetToFirebase);
});
}
// firebase tweets object
function firebaseTweet(name, text, score, location){
this.name = name;
this.text = text;
this.score = score;
this.location = location;
}
function sendTweetToFirebase(data){
if (new Date().getTime() % 1000 == 0){
dataRef.remove();
}
if (data.geo != null){
dataRef.push(new firebaseTweet(data.user.name, data.text, sentiment(data.text).score, data.geo.coordinates));
}
}
// initialize
beginStream();