Advertisement
GrantFish

Untitled

Aug 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.46 KB | None | 0 0
  1. //Some very cleaned up, but poorly executing code
  2.  
  3. function getAPI(toonName,toonRealm) {
  4.   var cache = CacheService.getDocumentCache();
  5.   var value = cache.get(toonName+"-"+toonRealm);
  6.   if (value == null) {
  7.     for (var n = 0; n < 6; n++) {
  8.       try {
  9.         var toonJSON = UrlFetchApp.fetch("https://us.api.battle.net/wow/character/"+toonRealm+"/"+toonName+"?fields=items,statistics,progression,audit&apikey=YOUR_API_KEY_HERE");
  10.         if (toonJSON.getResponseCode() === 200) {
  11.           value = JSON.parse(toonJSON.getContentText());
  12.           cache.put(toonName+"-"+toonRealm, value, 10800);
  13.         }
  14.       } catch (err) {
  15.         if (n == 5) {
  16.           throw err;
  17.         }
  18.         Utilities.sleep((Math.pow(2,n)*1000) + (Math.round(Math.random() * 1000)));
  19.       }
  20.     }
  21.   }
  22.   return value;
  23. }
  24.  
  25. function pull(toonName,toonRealm) {
  26.  
  27.   if(!toonName || !toonRealm) {
  28.    return ""
  29.   }
  30.  
  31.   var toon;
  32.   for (var n = 0; n < 6; n++) {
  33.     try {
  34.       var toonJSON = UrlFetchApp.fetch("https://us.api.battle.net/wow/character/"+toonRealm+"/"+toonName+"?fields=items,statistics,progression,audit&apikey=YOUR_API_KEY_HERE");
  35.       if (toonJSON.getResponseCode() === 200) {
  36.         toon = JSON.parse(toonJSON.getContentText());
  37.       }
  38.     } catch (err) {
  39.       if (n == 5) {
  40.         throw err;
  41.       }
  42.       Utilities.sleep((Math.pow(2,n)*1000) + (Math.round(Math.random() * 1000)));
  43.     }
  44.   }
  45.  
  46.   var wodstats = toon.statistics.subCategories[5].subCategories[5].statistics
  47.  
  48.   var bosskills = 0
  49.   for (var i = 1; i <= 15; i+=2){
  50.     bosskills += wodstats[i].quantity
  51.   }
  52.  
  53.   var grgemindex = [115809, 115811, 115812, 115813, 115814, 115815],
  54.       gemindex = [115803, 115804, 115805, 115806, 115807, 115808],
  55.       gem75index = [127760, 127761, 127762, 127763, 127764, 127765],
  56.       gems75 = 0,
  57.       grgems = 0,
  58.       gems = 0
  59.  
  60.   var getItem = function(item){
  61.     var itemlevel = 0,
  62.         itemlevelcm = 0
  63.     if (item) {
  64.       itemlevel = item.itemLevel,
  65.       itemlevelcm = itemlevel
  66.       if (itemlevel > 630) { var itemlevelcm = 630 }
  67.         if (gem75index.indexOf(item.tooltipParams["gem0"]) > -1) {
  68.         gems75++
  69.       } else if (grgemindex.indexOf(item.tooltipParams["gem0"]) > -1) {
  70.         grgems++
  71.       } else if (gemindex.indexOf(item.tooltipParams["gem0"]) > -1) {
  72.         gems++
  73.       }
  74.     }
  75.     return [itemlevel, itemlevelcm]
  76.   }
  77.  
  78.   var head = getItem(toon.items.head),  
  79.       neck = getItem(toon.items.neck),
  80.       shoulders = getItem(toon.items.shoulder),
  81.       back = getItem(toon.items.back),
  82.       chest = getItem(toon.items.chest),
  83.       wrist = getItem(toon.items.wrist),
  84.       hands = getItem(toon.items.hands),
  85.       waist = getItem(toon.items.waist),
  86.       legs = getItem(toon.items.legs),
  87.       feet = getItem(toon.items.feet),
  88.       finger1 = getItem(toon.items.finger1),
  89.       finger2 = getItem(toon.items.finger2),
  90.       trinket1 = getItem(toon.items.trinket1),
  91.       trinket2 = getItem(toon.items.trinket2),
  92.       mainHand = getItem(toon.items.mainHand),
  93.       offHand = getItem(toon.items.offHand)
  94.  
  95.   var CM_iL_Total = head[1]+neck[1]+shoulders[1]+back[1]+chest[1]+wrist[1]+hands[1]+waist[1]+legs[1]+feet[1]+finger1[1]+finger2[1]+trinket1[1]+trinket2[1]+mainHand[1]+offHand[1]
  96.   var CM_iL = CM_iL_Total / 16 //Kept this portion of code for future expansions
  97.   if (offHand[1] == 0) { CM_iL = CM_iL_Total / 15 }
  98.  
  99.   var killsforRaidId = function(raid_id){
  100.     var normal = 0,
  101.         heroic = 0,
  102.         mythic = 0;
  103.  
  104.     toon.progression.raids[raid_id].bosses.forEach(function(boss){
  105.       normal += boss.normalKills
  106.       heroic += boss.heroicKills
  107.       mythic += boss.mythicKills
  108.     })
  109.     return [normal, heroic, mythic]
  110.   }
  111.  
  112.   var highmaul = killsforRaidId(32),
  113.       highmaulNormal = highmaul[0],
  114.       highmaulHeroic = highmaul[1],
  115.       highmaulMythic = highmaul[2]
  116.  
  117.   var brf = killsforRaidId(33),
  118.       brfNormal = brf[0],  
  119.       brfHeroic = brf[1],  
  120.       brfMythic = brf[2]
  121.  
  122.   var hfc = killsforRaidId(34),
  123.       hfcNormal = hfc[0],
  124.       hfcHeroic = hfc[1],
  125.       hfcMythic = hfc[2]
  126.  
  127.   var giftindex = [5310, 5317, 5311, 5324, 5318, 5325, 5312, 5319, 5326, 5313, 5320, 5327, 5314, 5321, 5328],
  128.       breathindex = [5281, 5285, 5284, 5298, 5292, 5297, 5300, 5293, 5299, 5302, 5294, 5301, 5304, 5295, 5303]
  129.  
  130.   var enchantsByItem = function(item) {
  131.     if (item) {
  132.       var enchant
  133.       if (giftindex.indexOf(item.tooltipParams["enchant"]) > -1) {
  134.         enchant = "Gift"
  135.       } else if (breathindex.indexOf(item.tooltipParams["enchant"]) > -1) {
  136.         enchant = "Breath"
  137.       } else {
  138.         enchant = "None"
  139.       }
  140.     }
  141.     else { enchant = "N/A" }
  142.     return enchant
  143.   }
  144.  
  145.   var neckchant = enchantsByItem(toon.items.neck),
  146.       backchant = enchantsByItem(toon.items.back),
  147.       finger1chant = enchantsByItem(toon.items.finger1),
  148.       finger2chant = enchantsByItem(toon.items.finger2)
  149.  
  150.   var getWeaponEnchant = function(enchantid) {
  151.     if (toon.class == 6 && enchantid) {return "DK"}
  152.     switch (enchantid) {
  153.       case 5336:
  154.         return "Blackrock"
  155.         break;
  156.       case 5335:
  157.         return "Shadowmoon"
  158.         break;
  159.       case 5334:
  160.         return "Frostwolf"
  161.         break;
  162.       case 5331:
  163.         return "Shattered Hand"
  164.         break;
  165.       case 5276:
  166.         return "Megawatt"
  167.         break;
  168.       case 5275:
  169.         return "Oglethorp's"
  170.         break;
  171.       case 5383:
  172.         return "Hemet's"
  173.         break;
  174.       case 5330:
  175.         return "Thunderlord"
  176.         break;
  177.       case 5337:
  178.         return "Warsong"
  179.         break;
  180.       case 5384:
  181.         return "Bleeding Hollow"
  182.         break;
  183.       default:
  184.         return "None"
  185.     }
  186.   }
  187.  
  188.   var wepchant,
  189.       wepchantoh
  190.  
  191.   if (toon.items.mainHand) {
  192.     wepchant = getWeaponEnchant(toon.items.mainHand.tooltipParams["enchant"])
  193.   } else { wepchant = "N/A" }
  194.  
  195.   if (toon.items.offHand && toon.items.offHand.weaponInfo) {
  196.     wepchantoh = getWeaponEnchant(toon.items.offHand.tooltipParams["enchant"])
  197.   }
  198.  
  199.   var currentdate = new Date()
  200.   var lastupdate =   (currentdate.getMonth()+1) + "/"
  201.   + currentdate.getDate() + "/"
  202.   + currentdate.getFullYear() + " @ "  
  203.   + currentdate.getHours() + ":"  
  204.   + currentdate.getMinutes() + ":"
  205.   + currentdate.getSeconds() + " GMT"
  206.  
  207.   var T18Sets = ["Arcanic Conclave",
  208.                  "Oathclaw",
  209.                  "Pious",
  210.                  "Reathrattle",
  211.                  "Demongaze",
  212.                  "Ceaseless Vigil",
  213.                  "Iron Wrath",
  214.                  "Felblade",
  215.                  "Hurricane's Eye",
  216.                  "Living Mountain", // TECTUS
  217.                  "Savage Hunt"]
  218.                  
  219.   var setPiece = function(slot) {
  220.     var setsT18 = 0,
  221.         setsT17 = 0
  222.     if (slot.tooltipParams.set && (slot.itemLevel == 695 || slot.itemLevel == 710 || slot.itemLevel == 725 || slot.itemLevel == 701 || slot.itemLevel == 716 || slot.itemLevel == 731 || slot.itemLevel == 705 || slot.itemLevel == 720 || slot.itemLevel == 735 || slot.itemLevel == 711 || slot.itemLevel == 726 || slot.itemLevel == 741)) { //T18
  223.       setsT18 = slot.tooltipParams.set.length
  224.     }
  225.     else if (slot.tooltipParams.set && (slot.itemLevel == 670 || slot.itemLevel == 685 || slot.itemLevel == 700 || slot.itemLevel == 676 || slot.itemLevel == 691 || slot.itemLevel == 706)) { //T17
  226.       setsT17 = slot.tooltipParams.set.length
  227.     }
  228.     return [setsT18, setsT17]
  229.   }
  230.  
  231.   var tierHead = setPiece(toon.items.head),
  232.       tierShoulder = setPiece(toon.items.shoulder),
  233.       tierChest = setPiece(toon.items.chest),
  234.       tierHands = setPiece(toon.items.hands),
  235.       tierLegs = setPiece(toon.items.legs)
  236.  
  237.   var tier18pieces = Math.max(tierHead[0], tierShoulder[0], tierChest[0], tierHands[0], tierLegs[0]),
  238.       tier17pieces = Math.max(tierHead[1], tierShoulder[1], tierChest[1], tierHands[1], tierLegs[1])
  239.  
  240.   var toonInfo = new Array(
  241.     toon.items.averageItemLevelEquipped, tier18pieces+"/"+tier17pieces,
  242.     head[0], neck[0],
  243.     shoulders[0], back[0],
  244.     chest[0], wrist[0],
  245.     hands[0], waist[0],
  246.     legs[0], feet[0],
  247.     finger1[0], finger2[0],
  248.     trinket1[0],trinket2[0],
  249.     mainHand[0], offHand[0],
  250.     wepchant, wepchantoh, neckchant, finger1chant, finger2chant, backchant,
  251.     toon.audit.emptySockets, gems, grgems, gems75,
  252.     hfcNormal, hfcHeroic, hfcMythic,
  253.     lastupdate
  254.   )
  255.  return toonInfo;
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement