-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathquery.js
73 lines (70 loc) · 2.07 KB
/
query.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
69
70
71
72
73
/*
# NODE JS script :
# Query module for rss provider
# Author : Samuel Huron
*/
module.exports = {
url : require("url"),
utile:require("./utile.js"),
feedparser:require('feedparser'),
db:null,
setting:null,
init:function(setting){
console.log("!!!!!!!!!!!!!!!!!!!!!!!!! initialized")
this.setting = setting;
this.db = require("mongojs").connect(this.setting.dbName, [this.setting.dbCollection]);
return this;
},
receive:function(e,callback){
// check if exist,if it's not save it
var self = this;
//console.log(this)
this.db[self.setting.dbCollection].find({guid:e.guid},
function(err,collection){
if(!err){
if(collection.length==0){
callback(self,e)
//console.log("save new entry")
}else{
//console.log("already exist",collection.length)
}
}else{
console.log("check error")
}
}
)
},
save:function(self,e){
e.timeStamp = new Date().getTime()// add timestamp
//e._category = category // add category
//console.log(self)
self.db[self.setting.dbCollection].save(e,function(err){
if(!err){
console.log("saved")
}else{
console.log("save error")
}
})
},
query:function(setting){
var self = this;
console.log(setting)
for (var i = setting.url.length-1; i >= 0; i--) {
var url = setting.url[i]
console.log(i,url)
var q = {}
q.url = url
q.headers= {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Language':'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4',
'Cache-Control':'no-cache',
}
this.feedparser.parseFile(q)
.on('article', function(e){
console.log(e.title)
self.receive(e,self.save)
});
};
}
}