Guest User

Untitled

a guest
Aug 4th, 2017
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var request = require('request');
  2. var mongo = require('mongodb');
  3. var Server = mongo.Server;
  4. var Db = mongo.Db;
  5.  
  6. var open= function (options, callback)
  7. {
  8.     var host = options.host || '127.0.0.1';
  9.     var port = options.port || 27017;
  10.     var db_name = options.db || 'db';
  11.     var username = options.username || null;
  12.     var password = options.password || null;
  13.     server = new Server(host, port, {auto_reconnect: true});
  14.     db = new Db(db_name, server,{safe:true});
  15.     db.open(function(err, data) {
  16.         if(err)
  17.             return callback(err);
  18.         data.authenticate(username,password, {authdb: 'admin'},function(err2, data2)
  19.         {
  20.             return callback(err2,db);
  21.         });
  22.     });
  23. };
  24.  
  25. open({"username":"???","password":"???","db":"pokemongo"}, function(err, db){
  26.   if(!err) {
  27.     console.log("We are connected");
  28.   } else {
  29.     console.log("Error: " +err);
  30.     return;
  31.   }
  32.  
  33.   var maxMID = 0;
  34.   var maxGID = 0;
  35.   var buildRequest = function(mid, gid)
  36.   {
  37.     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";
  38.  
  39.   }
  40.  
  41.   var makeRequest = function()
  42.   {
  43.     var url = buildRequest(maxMID,maxGID);
  44.     console.log("Request: " + url);
  45.     request(url, function(err, response, body){
  46.       if(!err)
  47.       {
  48.         var data = JSON.parse(body);
  49.         updatePokemon(data.pokemons, function(err, status){if(err)console.log("err: " + err);});
  50.         updateGyms   (data.gyms,     function(err, status){if(err)console.log("err: " + err);});
  51.         updateStops   (data.pstops,     function(err, status){if(err)console.log("err: " + err);});
  52.       }
  53.     })
  54.   }
  55.   setInterval(makeRequest,20000);
  56.   //makeRequest();
  57.  
  58.   var getCollection  =function(name, callback)
  59.   {
  60.     db.collection(name,{strict: true}, callback);
  61.   }
  62.  
  63.   var updatePokemon = function(pokemonList, callback)
  64.   {
  65.     if(!pokemonList)
  66.       pokemonList=[];
  67.     getCollection('pokemon', function(err, collection){
  68.       if(err)
  69.         return callback(err);
  70.       if(pokemonList)
  71.       {
  72.         pokemonList.map(function(pokemon){
  73.           if(pokemon.eid > maxMID)
  74.             maxMID = pokemon.eid;
  75.           pokemon.timestamp = new Date().getTime();
  76.           collection.update({eid:pokemon.eid},{$set: pokemon},{upsert:true}, function(err, result){
  77.                     if(err)
  78.                         return callback(err);
  79.                     var retVal = null;
  80.                     if(result && result.result && result.result.ok && result.ops && result.ops.length >=1)
  81.                     {
  82.                         retVal = result.ops;
  83.                     }
  84.                 });
  85.         })
  86.         callback(null,{status: pokemonList.length + " pokemon upserted"})
  87.       } else
  88.         callback(null,{status: "0 pokemon upserted"})
  89.     })
  90.   }
  91.  
  92.   var updateGyms = function(gymList, callback)
  93.   {
  94.     if(!gymList)
  95.       gymList=[];
  96.     getCollection('gyms', function(err, collection){
  97.       if(err)
  98.         return callback(err);
  99.       if(gymList)
  100.       {
  101.         gymList.map(function(gym){
  102.           if(gym.ts > maxGID)
  103.             maxGID = gym.ts;
  104.           gym.timestamp = new Date().getTime();
  105.           collection.update({ts:gym.ts},{$set: gym},{upsert:true}, function(err, result){
  106.                     if(err)
  107.                         return callback(err);
  108.                     var retVal = null;
  109.                     if(result && result.result && result.result.ok && result.ops && result.ops.length >=1)
  110.                     {
  111.                         retVal = result.ops;
  112.                     }
  113.                 });
  114.         })
  115.         callback(null,{status: gymList.length + " gyms upserted"})
  116.       } else
  117.         callback(null,{status: "0 gyms upserted"})
  118.     })
  119.   }
  120.  
  121.   var updateStops = function(pokestopList, callback)
  122.   {
  123.     if(!pokestopList)
  124.       pokestopList=[];
  125.     getCollection('pokestops', function(err, collection){
  126.       if(err)
  127.         return callback(err);
  128.       if(pokestopList)
  129.       {
  130.         pokestopList.map(function(stop){
  131.           stop.timestamp = new Date().getTime();
  132.           collection.update({id:stop.id},{$set: stop},{upsert:true}, function(err, result){
  133.                     if(err)
  134.                         return callback(err);
  135.                     var retVal = null;
  136.                     if(result && result.result && result.result.ok && result.ops && result.ops.length >=1)
  137.                     {
  138.                         retVal = result.ops;
  139.                     }
  140.                 });
  141.         })
  142.         callback(null,{status: pokestopList.length + " stops upserted"})
  143.       } else
  144.         callback(null,{status: "0 stops upserted"})
  145.     })
  146.   }
  147.  
  148. });
Add Comment
Please, Sign In to add comment