Herdo

Sales.gs

Feb 16th, 2020
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*-------------------
  2. Developed by: John Purcell
  3. Contact info
  4. - Twitter: @HLIBindustry
  5. - Blog: eve-prosper.blogspot.com
  6. */
  7. var base_CREST_URL = "https://esi.evetech.net/latest/";
  8. var test_CREST_URL = "https://public-crest-sisi.testeveonline.com/";
  9. var base_API_URL = "https://api.eveonline.com/char/AssetList.xml.aspx?";
  10.  
  11. var min_wait = 10;
  12. var max_wait = 500;
  13.  
  14. function date_array(days)
  15. {
  16.   var daterange = [];
  17.  
  18.   var mydate = new Date();
  19.  
  20.   mydate.setDate(mydate.getDate()-1);//API doesn't give TODAY's data
  21.   for (var datestep=0; datestep<days; datestep++)
  22.   {
  23.     var datestr = "";
  24.     var month = mydate.getMonth()+1;
  25.     if (month < 10)
  26.     {
  27.       month = "0"+month;
  28.     }
  29.     var day = mydate.getDate();
  30.     if (day <10)
  31.     {
  32.       day = "0"+day;
  33.     }
  34.     datestr = mydate.getFullYear()+"-"+month+"-"+day+"T00:00:00";
  35.     daterange[datestep] = datestr;
  36.     mydate.setDate(mydate.getDate()-1);
  37.   }
  38.  
  39.   return daterange;
  40. }
  41.  
  42.  
  43. ////    FETCH FUNCS     ////
  44. function __fetchCrest_market(region_id,item_id)
  45. {
  46.   var parameters = {
  47.     method : "get",
  48.     user_agent : "Lockefox @HLIBindustry GDOC scripts",
  49.   }
  50.  
  51.  
  52.   var sleeptime = min_wait + (max_wait - min_wait)*Math.random();
  53.   Utilities.sleep(sleeptime);
  54.   var url = base_CREST_URL+"markets/"+region_id+"/history/?datasource=tranquility&type_id="+item_id
  55.   var text = UrlFetchApp.fetch(url,parameters);
  56.   var json_obj = JSON.parse(text);
  57.  
  58.   return json_obj;
  59. }
  60.  
  61.  
  62. ////    GDOC FUNCS      ////
  63.  
  64. function getAvgVolume(days,item_id,region_id)
  65. {
  66.   var market_obj = {};
  67.   market_obj = __fetchCrest_market(region_id,item_id);
  68.  
  69.   var date_range = [];
  70.   date_range = date_array(days);
  71.  
  72.   var volumes = 0;
  73.   for (var index = 0; index < market_obj["items"].length; index ++)
  74.   {
  75.     var API_date = market_obj["items"][index]["date"];
  76.     for (var indx2 = 0; indx2 < date_range.length; indx2++)
  77.     {
  78.       if (date_range[indx2] == API_date)
  79.       {
  80.         volumes += market_obj["items"][index]["volume"];
  81.         break;             
  82.       }
  83.     }
  84.    
  85.   }
  86.  
  87.   return volumes/days;
  88. }
  89.  
  90. function group_getAvgVolume(days,item_id_list,region_id)
  91. {
  92.   var return_list = [];
  93.   var item_list = new Array();
  94.   item_id_list.forEach (function(row){
  95.     row.forEach (function(cell){
  96.       if(typeof(cell) === 'number'){
  97.         item_list.push(cell);
  98.       }
  99.     });
  100.   });
  101.   var cleanTypeIds = new Array();
  102.   cleanTypeIds = item_list.filter(function(v,i,a) {
  103.     return a.indexOf(v)===i;
  104.   });
  105.  
  106.   for (var index=0; index < cleanTypeIds.length; index++)
  107.   {
  108.     var avgVol = getAvgVolume(days,cleanTypeIds[index],region_id)
  109.     return_list.push(avgVol)
  110.     //Utilities.sleep(1000)
  111.   }
  112.  
  113.   return return_list
  114. }
  115.  
  116. function getVolumes(days,item_id,region_id)
  117. {
  118.   var market_obj = {};
  119.   market_obj = __fetchCrest_market(region_id,item_id);
  120.  
  121.   var date_range = [];
  122.   date_range = date_array(days);
  123.  
  124.   var volumes = [];
  125.   for (var index = 0; index < market_obj["items"].length; index ++)
  126.   {
  127.     var API_date = market_obj["items"][index]["date"];
  128.     for (var indx2 = 0; indx2 < date_range.length; indx2++)
  129.     {
  130.       if (date_range[indx2] == API_date)
  131.       {
  132.         volumes.push(market_obj["items"][index]["volume"]);
  133.         break;             
  134.       }
  135.     }
  136.    
  137.   }
  138.  
  139.   return volumes;
  140. }
Add Comment
Please, Sign In to add comment