Advertisement
Chocomanlol

Fort Record Script

Feb 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var arrayLocations = [];
  2. arrayLocations["Name"] = 0;
  3. arrayLocations["Link"] = 1
  4. arrayLocations["Result"] = 2
  5.  
  6. var SCRIPT_PROP = PropertiesService.getScriptProperties();
  7.  
  8. function itemFromCell(input, type)
  9. {
  10.  
  11.   var resultString = input;
  12.   var startPosition = resultString.indexOf("[");
  13.   var endPosition = resultString.indexOf("]");
  14.   resultString = resultString.substring(startPosition + 1, endPosition);
  15.   var resultArray = resultString.split(",");
  16.  
  17.   resultString = resultArray[arrayLocations[type]];
  18.   startPosition = resultString.indexOf("\"");
  19.   endPosition = resultString.indexOf("\"", startPosition + 1);
  20.  
  21.   return resultString.substring(startPosition + 1, endPosition);
  22. }
  23.  
  24. function updateLog(key)
  25. {
  26.   try
  27.     {
  28.       var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  29.       var sheet = doc.getSheetByName("Log");
  30.       var data = sheet.getDataRange().getValues();
  31.       var nextRow = sheet.getLastRow()+1;
  32.      
  33.       var resultString = '=itemFromCell(RaidLog!$B' + nextRow + ', "Result")';
  34.       var nameString = '=itemFromCell(RaidLog!$B' + nextRow + ', "Name")';
  35.       var linkString = '=itemFromCell(RaidLog!$B' + nextRow + ', "Link")';
  36.       var keyString = key + '';
  37.       var row = [resultString, nameString, linkString, keyString];
  38.      
  39.       sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
  40.     }
  41.   catch(e)
  42.     {
  43.       return ContentService
  44.           .createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom}))
  45.           .setMimeType(ContentService.MimeType.JSON);
  46.     }
  47. }
  48.  
  49. function doGet(e){
  50.   try {
  51.     var key = e.parameter["key"]
  52.     var sheetName = e.parameter["sheet"]
  53.     var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  54.     var sheet = doc.getSheetByName(e.parameter["sheet"]);
  55.     var data = sheet.getDataRange().getValues();
  56.     if (key == null)
  57.     {
  58.       var values = {}
  59.       for(var i = 1; i < data.length; i++)
  60.       {
  61.         values[data[i][0]] = data[i][1];
  62.       }
  63.      
  64.       if (values)
  65.       {
  66.         return ContentService
  67.         .createTextOutput(JSON.stringify({"result":"success:", "values": values}))
  68.         .setMimeType(ContentService.MimeType.JSON);
  69.       }
  70.       else
  71.       {
  72.         return ContentService
  73.         .createTextOutput(JSON.stringify({"result":"error", "error":e}))
  74.         .setMimeType(ContentService.MimeType.JSON);
  75.       }
  76.     }
  77.     var value
  78.     for (var i = 1; i < data.length; i++) {
  79.       if (data[i][0] == key) {
  80.         value = data[i][1];
  81.       }
  82.     }
  83.     if (value){
  84.       return ContentService
  85.       .createTextOutput(JSON.stringify({"result":"success", "value": value}))
  86.       .setMimeType(ContentService.MimeType.JSON);
  87.     } else {
  88.       return ContentService
  89.       .createTextOutput(JSON.stringify({"result":"error", "error": "Key not found"}))
  90.       .setMimeType(ContentService.MimeType.JSON);
  91.     }
  92.   } catch(e){
  93.     return ContentService
  94.           .createTextOutput(JSON.stringify({"result":"error", "error": "Database does not exist"}))
  95.           .setMimeType(ContentService.MimeType.JSON);
  96.   }
  97. }
  98.  
  99. function doPost(e){
  100.   var sheetNom = e.parameter["sheet"];
  101.   var lock = LockService.getPublicLock();
  102.   lock.waitLock(30000);
  103.   try {
  104.     var key = e.parameter["key"]
  105.     var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  106.     var sheet = doc.getSheetByName(e.parameter["sheet"]);
  107.     var data = sheet.getDataRange().getValues();
  108.     var headRow = e.parameter.header_row || 1;
  109.     var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  110.     var nextRow = sheet.getLastRow()+1;
  111.     var row = [];
  112.     for (var i = 1; i < data.length; i++) {
  113.       if (data[i][0] == e.parameter["key"]) {
  114.         nextRow = i + 1;
  115.       }
  116.     }
  117.     for (i in headers){
  118.         row.push(e.parameter[headers[i]]);
  119.     }
  120.    
  121.     sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
  122.     updateLog(key);
  123.     return ContentService
  124.           .createTextOutput(JSON.stringify({"result":"success", "row": nextRow}))
  125.           .setMimeType(ContentService.MimeType.JSON);
  126.   } catch(e){
  127.     return ContentService
  128.     .createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom}))
  129.           .setMimeType(ContentService.MimeType.JSON);
  130.   } finally {
  131.     lock.releaseLock();
  132.   }
  133. }
  134.  
  135. function setup() {
  136.     var doc = SpreadsheetApp.getActiveSpreadsheet();
  137.     SCRIPT_PROP.setProperty("key", doc.getId());
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement