| author | Raphael Velt <raph.velt@gmail.com> |
| Wed, 26 Oct 2011 18:29:46 +0200 | |
| changeset 338 | 60dff8a71024 |
| parent 335 | 5f83c21dee69 |
| child 339 | 6a073c4a8578 |
| permissions | -rw-r--r-- |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
1 |
/* DEFAULT CONFIGURATION */ |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
2 |
|
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
3 |
var TWITTER_USER = 'materiauxnum', |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
4 |
TWITTER_PASS = 'm473r14ux7w337', |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
5 |
RECORD_NEW_TWEETS = true; |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
6 |
|
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
7 |
/* CALLING COMMON CONFIGURATION FILE */ |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
8 |
|
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
9 |
var conf_file = flagOption('-c', 'conf.js'); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
10 |
|
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
11 |
myLog('Reading Configuration from ' + conf_file); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
12 |
|
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
13 |
var fs = require('fs'); |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
14 |
eval(fs.readFileSync(conf_file,'utf8')); |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
15 |
|
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
16 |
if (typeof sqlfile == "undefined") { |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
17 |
sqlfile = __dirname + '/tweets-' + encodeURIComponent(tracking_keyword) + '.sqlite' |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
18 |
} |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
19 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
20 |
/* FUNCTIONS */ |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
21 |
|
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
22 |
function flagOption(flag, defaultValue) { |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
23 |
var flagPos = process.argv.indexOf(flag); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
24 |
return ( flagPos != -1 && flagPos < process.argv.length - 1) ? process.argv[flagPos + 1] : defaultValue; |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
25 |
} |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
26 |
|
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
27 |
function myLog() { |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
28 |
var args = ["\033[1;34m["+new Date().toLocaleTimeString()+"]\033[0m"]; |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
29 |
for (var i in arguments) { |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
30 |
args.push(arguments[i]); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
31 |
} |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
32 |
console.log.apply(console, args); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
33 |
} |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
34 |
|
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
35 |
function annotationMap(callback, options) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
36 |
var includeDefault = ( options && options.includeDefault ? options.includeDefault : false ); |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
37 |
var returnObject = ( options && options.returnObject ? options.returnObject : false ); |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
38 |
res = (returnObject ? {} : []); |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
39 |
for (var i in annotations) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
40 |
if (i != "default" || includeDefault) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
41 |
var el = callback(i, annotations[i]) |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
42 |
if (returnObject) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
43 |
res[i] = el; |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
44 |
} else { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
45 |
res.push(el); |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
46 |
} |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
47 |
} |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
48 |
} |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
49 |
return res; |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
50 |
} |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
51 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
52 |
function createTables() { |
| 314 | 53 |
|
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
54 |
var requete = "CREATE TABLE IF NOT EXISTS tweets ( pos INTEGER PRIMARY KEY, tweet_id TEXT UNIQUE, created_at INTEGER, json TEXT" + annotationMap(function(a) { return ', a_' + a + ' INTEGER' }).join("") + " )"; |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
55 |
db.execute(requete, function(err) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
56 |
if (err) throw err; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
57 |
db.execute("CREATE INDEX IF NOT EXISTS idx_created_at ON tweets ( created_at )", function(err) { if (err) throw err; }); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
58 |
getSendLastPos(); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
59 |
}); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
60 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
61 |
db.execute("CREATE TABLE IF NOT EXISTS tweet_refs ( id INTEGER PRIMARY KEY, from_id TEXT, to_id TEXT, ref_type TEXT )", function(err) { if (err) throw err; }); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
62 |
} |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
63 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
64 |
function commitReference(from_id, to_id, ref_type) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
65 |
db.execute( |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
66 |
"INSERT INTO tweet_refs ( from_id, to_id, ref_type ) VALUES ( ?, ?, ? )", |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
67 |
[ from_id, to_id, ref_type ], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
68 |
function(err) { if (err) throw err; } |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
69 |
); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
70 |
} |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
71 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
72 |
function commitTweet(data) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
73 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
74 |
var tweet = JSON.parse(data), |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
75 |
ann = []; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
76 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
77 |
textids(tweet); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
78 |
for (var j in keys_to_delete) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
79 |
delete tweet[keys_to_delete[j]]; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
80 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
81 |
textids(tweet.user); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
82 |
for (var j in user_keys_to_delete) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
83 |
delete tweet.user[user_keys_to_delete[j]]; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
84 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
85 |
if (tweet.retweeted_status) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
86 |
textids(tweet.retweeted_status); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
87 |
for (var j in keys_to_delete) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
88 |
delete tweet.retweeted_status[keys_to_delete[j]]; |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
89 |
} |
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
90 |
} |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
91 |
annotationMap(function(i, annotation) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
92 |
for (var j in annotation.keywords) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
93 |
if (tweet.text.search(annotation.keywords[j]) != -1) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
94 |
ann.push(i); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
95 |
break; |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
96 |
} |
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
97 |
} |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
98 |
}); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
99 |
tweet.annotations = ann; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
100 |
tweet.created_at = new Date(tweet.created_at); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
101 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
102 |
if (tweet.in_reply_to_status_id) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
103 |
commitReference( tweet.id, tweet.in_reply_to_status_id, "reply" ); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
104 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
105 |
if (tweet.retweeted_status) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
106 |
commitReference( tweet.id, tweet.retweeted_status.id, "retweet" ); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
107 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
108 |
db.execute( |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
109 |
"INSERT INTO tweets ( tweet_id, created_at, json " |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
110 |
+ annotationMap(function(a) { return ', a_' + a }).join("") |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
111 |
+ " ) VALUES ( ?, ?, ? " |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
112 |
+ annotationMap(function(a) { return ', ?' }).join("") |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
113 |
+ " )", |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
114 |
[ tweet.id, tweet.created_at.valueOf(), JSON.stringify(tweet) ].concat(annotationMap(function(a) { return ann.indexOf(a) == -1 ? 0 : 1 })), |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
115 |
function(err) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
116 |
if (err) throw err; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
117 |
getSendLastPos(); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
118 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
119 |
); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
120 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
121 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
122 |
function callBackNewTweets(chunk) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
123 |
var newdata = chunk.split('\r\n'); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
124 |
for (var i in newdata) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
125 |
if (newdata[i].length > 0) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
126 |
commitTweet(newdata[i]); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
127 |
} |
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
128 |
} |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
129 |
myLog("New tweets received"); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
130 |
} |
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
131 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
132 |
function getSendLastPos() { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
133 |
db.execute("SELECT MAX(pos) lastpos FROM tweets", function (err, results) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
134 |
if (err) throw err; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
135 |
lastpos = results[0].lastpos ? results[0].lastpos : 0; |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
136 |
myLog("Broadcasting last pos = ",lastpos); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
137 |
io.sockets.emit('tweetSummary', { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
138 |
tweetcount : lastpos |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
139 |
}); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
140 |
}); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
141 |
} |
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
142 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
143 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
144 |
function getSendTweets(posList, socket) { |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
145 |
myLog("request for tweets ("+posList.join(',')+") from "+socket.id); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
146 |
db.execute("SELECT * FROM tweets WHERE pos IN ( " + posList.join(',') + " )", function (err, results) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
147 |
if (err) throw err; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
148 |
socket.emit('tweets', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
149 |
results.map(function(line) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
150 |
var tw = JSON.parse(line.json); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
151 |
tw.pos = line.pos; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
152 |
return tw; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
153 |
}) |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
154 |
); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
155 |
}); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
156 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
157 |
|
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
158 |
function getSendTimeline(level, socket) { |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
159 |
myLog("request for timeline ("+level+") from "+socket.id); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
160 |
var lvl = date_levels[level], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
161 |
requete = "SELECT COUNT(*) AS nb, " |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
162 |
+ lvl |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
163 |
+ "*ROUND(created_at/" |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
164 |
+ lvl |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
165 |
+ ") AS tranche" |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
166 |
+ annotationMap(function (a) { return " , SUM(a_" + a + ") AS s_" + a }).join("") |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
167 |
+ " FROM tweets GROUP BY tranche ORDER BY tranche DESC LIMIT 0,50"; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
168 |
db.execute(requete, function (err, results) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
169 |
if (err) throw err; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
170 |
var tbl = [], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
171 |
lastend = parseInt(results[results.length - 1].tranche); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
172 |
for (var i = results.length - 1; i >= 0; i--) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
173 |
var start = parseInt(results[i].tranche); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
174 |
while (start > lastend) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
175 |
var struct = { "start": lastend, "tweets" : 0, "annotations" : {} }; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
176 |
lastend += lvl; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
177 |
struct.end = lastend; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
178 |
tbl.push(struct); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
179 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
180 |
lastend += lvl; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
181 |
var struct = { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
182 |
"start" : start, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
183 |
"end" : lastend, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
184 |
"tweets" : results[i].nb, |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
185 |
"annotations" : annotationMap(function (a) { |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
186 |
return results[i]['s_'+a]; |
|
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
187 |
},{returnObject: true}) |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
188 |
} |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
189 |
tbl.push(struct); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
190 |
} |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
191 |
socket.emit('timeline', tbl); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
192 |
}); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
193 |
} |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
194 |
|
| 314 | 195 |
function textids(object) { |
196 |
for (var key in object) { |
|
197 |
if (key.substr(-2) == 'id') { |
|
198 |
object[key] = object[key + '_str']; |
|
199 |
delete object[key + '_str']; |
|
200 |
} |
|
201 |
} |
|
202 |
} |
|
203 |
||
|
332
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
204 |
function httpHandler(req, res) { |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
205 |
myLog("HTTP Request for URL "+req.url); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
206 |
var url = ( req.url == "/config" ? conf_file : __dirname + "/client" + req.url + ( req.url[req.url.length - 1] == "/" ? "index.html" : "" ) ); |
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
207 |
fs.readFile( url, function(err, data) { |
|
332
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
208 |
if (err) { |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
209 |
myLog("Error 404"); |
|
332
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
210 |
res.writeHead(404); |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
211 |
return res.end('File not found'); |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
212 |
} |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
213 |
res.writeHead(200); |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
214 |
res.end(data); |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
215 |
}); |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
216 |
} |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
217 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
218 |
/* Initialization */ |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
219 |
|
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
220 |
var http = require('http'), |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
221 |
https = require('https'), |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
222 |
sqlite = require('sqlite'), |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
223 |
socketio = require('socket.io'), |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
224 |
tweets = [], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
225 |
lastpos = 0, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
226 |
arcs = [], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
227 |
tweet_ids = [], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
228 |
date_struct = [], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
229 |
date_levels = [ |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
230 |
3600 * 1000, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
231 |
15 * 60 * 1000, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
232 |
5 * 60 * 1000, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
233 |
60 * 1000, |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
234 |
15 * 1000 |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
235 |
], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
236 |
keys_to_delete = [ |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
237 |
'in_reply_to_screen_name', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
238 |
'in_reply_to_user_id', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
239 |
'retweeted', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
240 |
'place', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
241 |
'geo', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
242 |
'source', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
243 |
'contributors', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
244 |
'coordinates', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
245 |
'retweet_count', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
246 |
'favorited', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
247 |
'truncated', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
248 |
'possibly_sensitive' |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
249 |
], |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
250 |
user_keys_to_delete = [ |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
251 |
'default_profile_image', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
252 |
'show_all_inline_media', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
253 |
'contributors_enabled', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
254 |
'profile_sidebar_fill_color', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
255 |
'created_at', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
256 |
'lang', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
257 |
'time_zone', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
258 |
'profile_sidebar_border_color', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
259 |
'follow_request_sent', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
260 |
'profile_background_image_url', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
261 |
'profile_background_image_url_https', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
262 |
'followers_count', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
263 |
'description', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
264 |
'url', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
265 |
'geo_enabled', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
266 |
'profile_use_background_image', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
267 |
'default_profile', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
268 |
'following', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
269 |
'profile_text_color', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
270 |
'is_translator', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
271 |
'favourites_count', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
272 |
'listed_count', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
273 |
'friends_count', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
274 |
'profile_link_color', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
275 |
'protected', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
276 |
'location', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
277 |
'notifications', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
278 |
'profile_image_url_https', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
279 |
'statuses_count', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
280 |
'verified', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
281 |
'profile_background_color', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
282 |
'profile_background_tile', |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
283 |
'utc_offset' |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
284 |
], |
|
332
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
285 |
app = http.createServer(httpHandler), |
|
738594562e44
Reorganisation branche node
Raphael Velt <raph.velt@gmail.com>
parents:
331
diff
changeset
|
286 |
io = socketio.listen(app), |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
287 |
db = new sqlite.Database(); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
288 |
|
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
289 |
/* MAIN CODE */ |
|
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
290 |
|
|
335
5f83c21dee69
Created conf.js file, shared between server & client
Raphael Velt <raph.velt@gmail.com>
parents:
334
diff
changeset
|
291 |
app.listen(app_port); |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
292 |
myLog("Listening on port: "+app_port); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
293 |
myLog("Opening SQLITE file: "+sqlfile); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
294 |
db.open(sqlfile , function(err) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
295 |
if (err) throw err; |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
296 |
createTables(); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
297 |
}); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
298 |
|
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
299 |
if (RECORD_NEW_TWEETS) { |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
300 |
myLog("Requesting Twitter to track keyword(s): "+tracking_keyword); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
301 |
var req = https.request({ |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
302 |
host: "stream.twitter.com", |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
303 |
path: "/1/statuses/filter.json", |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
304 |
method: "POST", |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
305 |
headers: { |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
306 |
'Authorization': 'Basic ' + new Buffer( TWITTER_USER + ":" + TWITTER_PASS ).toString('base64'), |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
307 |
'Content-Type': 'application/x-www-form-urlencoded' |
| 314 | 308 |
} |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
309 |
}, function(res) { |
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
310 |
myLog('Reply from stream.twitter.com: ' + res.statusCode); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
311 |
myLog('Headers: ' + JSON.stringify(res.headers)); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
312 |
res.setEncoding('utf8'); |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
313 |
res.on('data', callBackNewTweets); |
| 314 | 314 |
}); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
315 |
|
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
316 |
req.write('track=' + encodeURIComponent(tracking_keyword)); |
|
325
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
317 |
req.end(); |
|
7d9c576bfaac
Some changes - added multi-zoom level on client
Raphael Velt <raph.velt@gmail.com>
parents:
314
diff
changeset
|
318 |
} |
| 314 | 319 |
|
320 |
io.set('log level', 0); |
|
321 |
io.sockets.on('connection', function(socket) { |
|
|
338
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
322 |
myLog("New connection from", socket.handshake.address.address, "with id=", socket.id); |
|
60dff8a71024
Added alternate configuration
Raphael Velt <raph.velt@gmail.com>
parents:
335
diff
changeset
|
323 |
socket.emit('tweetSummary', { tweetcount : lastpos }); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
324 |
socket.on('updateTweets', function(data) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
325 |
if (data.tweets.length) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
326 |
getSendTweets(data.tweets, socket); |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
327 |
} |
|
326
c28048fb63b4
Added visual timeline feature to node client
Raphael Velt <raph.velt@gmail.com>
parents:
325
diff
changeset
|
328 |
}); |
|
331
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
329 |
socket.on('updateTimeline', function(data) { |
|
03c69425efa6
Added SQLite Database in Node Server
Raphael Velt <raph.velt@gmail.com>
parents:
326
diff
changeset
|
330 |
getSendTimeline(data.level, socket); |
| 314 | 331 |
}); |
332 |
}); |