Wouto1997

Google script

Dec 30th, 2015
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function resolveUUID(name, time) {
  2.   var t = '';
  3.   if (time) {
  4.     t = '?at=' + time;
  5.   }
  6.   var response = UrlFetchApp.fetch("https://api.mojang.com/users/profiles/minecraft/" + name + t);
  7.   if (response.getResponseCode() == 204) {
  8.     return resolveUUID(name, 1232457052);
  9.   }
  10.   var data = JSON.parse(response.getContentText());
  11.   if (data.hasOwnProperty("id") && data.hasOwnProperty("name")) {
  12.     return { id: data.id, validname: data.name };
  13.   }
  14.   return "";
  15. }
  16.  
  17. function testRecheckFriends() {
  18.   var sheet = SpreadsheetApp.getActiveSheet();
  19.   var v = sheet.getRange('F9').getValue();
  20.   if (v === '') {
  21.     sheet.getRange('F9').setValue('Recheck friends');
  22.     recheckFriendsNames();
  23.   }
  24.   v = sheet.getRange('F10').getValue();
  25.   if (v === '') {
  26.     sheet.getRange('F10').setValue('Auto-fill');
  27.     resolveFriends();
  28.   }
  29. }
  30.  
  31. function resolveName(uuid) {
  32.   var response = UrlFetchApp.fetch("https://api.mojang.com/user/profiles/" + uuid + "/names");
  33.   var data = JSON.parse(response.getContentText());
  34.   if (data.length > 0) {
  35.     var oldnames = getAllNames(data);
  36.     data = data[data.length - 1];
  37.     if (data.hasOwnProperty("name")) {
  38.       return { name: data.name, oldnames: oldnames };
  39.     }
  40.   }
  41.   return "";
  42. }
  43.  
  44. function getAllNames(data) {
  45.   if (data.length <= 1) {
  46.     return [];
  47.   }
  48.   var names = [];
  49.   for (var i = 0; i < data.length; i++) {
  50.     if (data[i].hasOwnProperty("name")) {
  51.       names.push(data[i].name);
  52.     }
  53.   }
  54.   return names;
  55. }
  56.  
  57. function recheckFriendsNames() {
  58.  resolveFriends(true);
  59. }
  60.  
  61. function resolveFriends(m) {
  62.   var sheet = SpreadsheetApp.getActiveSheet();
  63.   var c = true;
  64.   var i = 13;
  65.   while (c) {
  66.     sheet.getRange('A' + i).setBackground('#FFAAAA');
  67.     var line = sheet.getRange('B' + i + ':C' + i).getValues()[0];
  68.     if (line[0] === '' && line[1] === '') {
  69.       c = false;
  70.     } else {
  71.       if (line[0] !== '' && line[1] === '') {
  72.         sheet.getRange('A' + i).setBackground('#AAAAFF');
  73.         var uuidData = resolveUUID(line[0]);
  74.         var uuid = uuidData.id;
  75.         var valid = uuidData.validname;
  76.         sheet.getRange('C' + i).setValue(uuid);
  77.         sheet.getRange('B' + i).setValue(valid);
  78.         var nameData = resolveName(uuid);
  79.         var oldnames = nameData.oldnames;
  80.         if (oldnames.length > 0) {
  81.           var s = '';
  82.           for (var q = 0; q < oldnames.length; q++) {
  83.             s += oldnames[q] + '\r\n';
  84.           }
  85.           sheet.getRange('B' + i).setNote(s);
  86.         }
  87.       } else if ((line[1] !== '' && line[0] === '') || m) {
  88.         sheet.getRange('A' + i).setBackground('#AAAAFF');
  89.         var nameData = resolveName(line[1]);
  90.         var name = nameData.name;
  91.         var oldnames = nameData.oldnames;
  92.         Logger.log('oldnames for ' + name + ' is ' + oldnames);
  93.         sheet.getRange('B' + i).setValue(name);
  94.         if (oldnames.length > 0) {
  95.           var s = '';
  96.           for (var q = 0; q < oldnames.length; q++) {
  97.             s += oldnames[q] + '\r\n';
  98.           }
  99.           sheet.getRange('B' + i).setNote(s);
  100.         }
  101.       }
  102.     }
  103.     sheet.getRange('A' + i).setBackground('#AAFFAA');
  104.     i++;
  105.   }
  106.   sheet.getRange('A13:A' + i).setBackground('#FFFFFF');
  107. }
Add Comment
Please, Sign In to add comment