Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var request = require('request');
- var mongo = require('mongodb');
- var Server = mongo.Server;
- var Db = mongo.Db;
- var open= function (options, callback)
- {
- var host = options.host || '127.0.0.1';
- var port = options.port || 27017;
- var db_name = options.db || 'db';
- var username = options.username || null;
- var password = options.password || null;
- server = new Server(host, port, {auto_reconnect: true});
- db = new Db(db_name, server,{safe:true});
- db.open(function(err, data) {
- if(err)
- return callback(err);
- data.authenticate(username,password, {authdb: 'admin'},function(err2, data2)
- {
- return callback(err2,db);
- });
- });
- };
- open({"username":"???","password":"???","db":"pokemongo"}, function(err, db){
- if(!err) {
- console.log("We are connected");
- } else {
- console.log("Error: " +err);
- return;
- }
- var maxMID = 0;
- var maxGID = 0;
- var buildRequest = function(mid, gid)
- {
- return "https://mapdata2.gomap.eu/mnew.php?mid="+mid+"&ex=[]&w=13.864746093750002&e=15.249023437500002&n=52.51951791629996&s=52.159789273932475&gid="+gid+"&ps=1";
- }
- var makeRequest = function()
- {
- var url = buildRequest(maxMID,maxGID);
- console.log("Request: " + url);
- request(url, function(err, response, body){
- if(!err)
- {
- var data = JSON.parse(body);
- updatePokemon(data.pokemons, function(err, status){if(err)console.log("err: " + err);});
- updateGyms (data.gyms, function(err, status){if(err)console.log("err: " + err);});
- updateStops (data.pstops, function(err, status){if(err)console.log("err: " + err);});
- }
- })
- }
- setInterval(makeRequest,20000);
- //makeRequest();
- var getCollection =function(name, callback)
- {
- db.collection(name,{strict: true}, callback);
- }
- var updatePokemon = function(pokemonList, callback)
- {
- if(!pokemonList)
- pokemonList=[];
- getCollection('pokemon', function(err, collection){
- if(err)
- return callback(err);
- if(pokemonList)
- {
- pokemonList.map(function(pokemon){
- if(pokemon.eid > maxMID)
- maxMID = pokemon.eid;
- pokemon.timestamp = new Date().getTime();
- collection.update({eid:pokemon.eid},{$set: pokemon},{upsert:true}, function(err, result){
- if(err)
- return callback(err);
- var retVal = null;
- if(result && result.result && result.result.ok && result.ops && result.ops.length >=1)
- {
- retVal = result.ops;
- }
- });
- })
- callback(null,{status: pokemonList.length + " pokemon upserted"})
- } else
- callback(null,{status: "0 pokemon upserted"})
- })
- }
- var updateGyms = function(gymList, callback)
- {
- if(!gymList)
- gymList=[];
- getCollection('gyms', function(err, collection){
- if(err)
- return callback(err);
- if(gymList)
- {
- gymList.map(function(gym){
- if(gym.ts > maxGID)
- maxGID = gym.ts;
- gym.timestamp = new Date().getTime();
- collection.update({ts:gym.ts},{$set: gym},{upsert:true}, function(err, result){
- if(err)
- return callback(err);
- var retVal = null;
- if(result && result.result && result.result.ok && result.ops && result.ops.length >=1)
- {
- retVal = result.ops;
- }
- });
- })
- callback(null,{status: gymList.length + " gyms upserted"})
- } else
- callback(null,{status: "0 gyms upserted"})
- })
- }
- var updateStops = function(pokestopList, callback)
- {
- if(!pokestopList)
- pokestopList=[];
- getCollection('pokestops', function(err, collection){
- if(err)
- return callback(err);
- if(pokestopList)
- {
- pokestopList.map(function(stop){
- stop.timestamp = new Date().getTime();
- collection.update({id:stop.id},{$set: stop},{upsert:true}, function(err, result){
- if(err)
- return callback(err);
- var retVal = null;
- if(result && result.result && result.result.ok && result.ops && result.ops.length >=1)
- {
- retVal = result.ops;
- }
- });
- })
- callback(null,{status: pokestopList.length + " stops upserted"})
- } else
- callback(null,{status: "0 stops upserted"})
- })
- }
- });
Add Comment
Please, Sign In to add comment