Skip to content
This repository has been archived by the owner on Jul 13, 2021. It is now read-only.

Commit

Permalink
Proveedores. Paseador de RSS y G. Sheets
Browse files Browse the repository at this point in the history
  • Loading branch information
UlisesGascon committed Jun 18, 2016
1 parent 3a2e4f6 commit e9c1cda
Show file tree
Hide file tree
Showing 2 changed files with 119 additions and 0 deletions.
59 changes: 59 additions & 0 deletions providers/rss.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
var rsj = require('rsj'),
config = require('../config'),
firebase = require('firebase'),
jsonsafeparse = require('json-safe-parse');

function ProviderRSS(custom){
this.url = custom.url;
this.provider_db = custom.provider_db;
this.provider = custom.provider || false;
this.provider_logo = custom.provider_logo || false;
this.outstanding = custom.outstanding || false;
var _self = this;
this.uploadJobs = function (){
rsj.r2j(_self.url,function(json) {

var data = false,
dataReady = [];

try {
data = jsonsafeparse(json);
} catch(e){
console.log("["+_self.provider_db+"] - Parsing ERROR! ");
}

if(data){
data.map(function(x, i) {
var pubdate = new Date (data[i].pubdate);
if(pubdate.isInFrame()){
dataReady.push({
contract: false,
journey: false,
salary: false,
place: false,
company: false,
description: data[i].description.textCleaner() || false,
provider_logo: _self.provider_logo,
title: data[i].title || false,
pubdate: data[i].pubdate || false,
link: data[i].link.replace('@href: ','').trim() || false,
provider: _self.provider,
outstanding: _self.outstanding
});
}

});

var ref = firebase.database().ref('data/'+_self.provider_db+'/');
ref.set(dataReady), function(error){
if (error) {
console.warn('[FIREBASE] ERROR - SYNC ERROR!', _self.provider_db);
}
};

}
})
}
}

module.exports = ProviderRSS;
60 changes: 60 additions & 0 deletions providers/sheets.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
var https = require('https'),
fs = require('fs'),
firebase = require('firebase');

function ProviderSheets(custom){
this.id = custom.id;
this.provider_db = custom.provider_db;
this.url = "https://spreadsheets.google.com/feeds/list/" + this.id + "/od6/public/values?alt=json";
this.outstanding = custom.outstanding || false;
var _self = this;
this.uploadJobs = function (){
https.get(_self.url, function(res){
var body = '';

res.on('data', function(chunk){
body += chunk;
});

res.on('end', function(){
var data = JSON.parse(body);
data = data.feed.entry;

var keyData = [];

for (var i = 0; i < data.length; i++) {

keyData.push({
contract: false,
journey: false,
salary: false,
place: false,
company: false,
description: data[i]["gsx$description"].$t.textCleaner() || false,
provider_logo: "",
title: data[i]["gsx$title"].$t || false,
pubdate: data[i]["gsx$pubdate"].$t || false,
link: data[i]["gsx$link"].$t || false,
provider: data[i]["gsx$provider"].$t || "la red de redes",
outstanding: false
});

}

var ref = firebase.database().ref('data/'+_self.provider_db+'/');

ref.set(keyData), function(error){
if (error) {
console.warn('[FIREBASE] ERROR - SYNC ERROR with', _self.provider_db);
}
};


});
}).on('error', function(e){
console.log("[DOWNLOAD]: ERROR with "+_self.provider_db, e);
});
}
}

module.exports = ProviderSheets;

0 comments on commit e9c1cda

Please sign in to comment.