mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
trigger fetch urls by url type
to avoid Google Apps script execution timeout limitations
This commit is contained in:
parent
64072f9cc1
commit
2b84c56b0c
1 changed files with 79 additions and 47 deletions
|
|
@ -39,7 +39,6 @@ function refreshJson() {
|
|||
range.setValues(data);
|
||||
refreshParsed();
|
||||
refreshPublic();
|
||||
refreshHttpResponses();
|
||||
}
|
||||
|
||||
function refreshParsed() {
|
||||
|
|
@ -79,52 +78,6 @@ function refreshPublic() {
|
|||
}
|
||||
}
|
||||
|
||||
function refreshHttpResponses() {
|
||||
var sheetNameData = typeSheetPrefix[ss.getName()] + "Data";
|
||||
var sheetData = ss.getSheetByName(sheetNameData);
|
||||
var sheetNameStatuses = typeSheetPrefix[ss.getName()] + "UrlStatuses";
|
||||
var sheetStatuses = ss.getSheetByName(sheetNameStatuses);
|
||||
copyListNames(sheetData, sheetStatuses);
|
||||
var listDataMax = getNumLists(sheetData)
|
||||
var urlHeaders = findUrlColumnHeaders(sheetData);
|
||||
for (i = 0; i < urlHeaders.length; i++) {
|
||||
var currentUrlType = urlHeaders[i];
|
||||
var colHeaderData = findColumnHeader(sheetData, currentUrlType);
|
||||
var colHeaderStatuses = findColumnHeader(sheetStatuses, currentUrlType);
|
||||
var rangeData = sheetData.getRange(colHeaderData + "2:" + colHeaderData + (1 + listDataMax));
|
||||
var rangeStatuses = sheetStatuses.getRange(colHeaderStatuses + "2:" + colHeaderStatuses);
|
||||
rangeStatuses.clearContent();
|
||||
for (j = 2; j <= rangeData.getNumRows(); j++) {
|
||||
var rangeStatus = sheetStatuses.getRange(colHeaderStatuses + j);
|
||||
var url = rangeData.getCell(j - 1, 1).getValue();
|
||||
if (url) {
|
||||
try {
|
||||
rangeStatus.setValue(UrlFetchApp.fetch(url).getResponseCode());
|
||||
} catch (err) {
|
||||
rangeStatus.setValue(err.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function copyListNames(sheetData, sheetStatuses) {
|
||||
var sourceRange = sheetData.getRange("A1:A");
|
||||
var targetRange = sheetStatuses.getRange("A1:A");
|
||||
targetRange.clearContent();
|
||||
sourceRange.copyTo(targetRange);
|
||||
}
|
||||
|
||||
function getNumLists(sheetData) {
|
||||
var listHeaderData = findColumnHeader(sheetData, "list");
|
||||
var listData = sheetData.getRange(listHeaderData + "2:" + listHeaderData);
|
||||
for (i = 1; i <= listData.getNumRows(); i++) {
|
||||
if (!(listData.getCell(i, 1).getValue())) {
|
||||
return i - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function findColumnHeader(sheet, header) {
|
||||
var headerRange = sheet.getRange("A1:1");
|
||||
var headerData = headerRange.getValues();
|
||||
|
|
@ -428,4 +381,83 @@ function refreshMasterPublic(sheet) {
|
|||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
// refresh each type of url with a separate trigger due to Apps Script runtime limitations
|
||||
function triggerRefreshHttpResponses1() {
|
||||
refreshHttpResponses(1);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses2() {
|
||||
refreshHttpResponses(2);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses3() {
|
||||
refreshHttpResponses(3);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses4() {
|
||||
refreshHttpResponses(4);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses5() {
|
||||
refreshHttpResponses(5);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses6() {
|
||||
refreshHttpResponses(6);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses7() {
|
||||
refreshHttpResponses(7);
|
||||
}
|
||||
|
||||
function triggerRefreshHttpResponses8() {
|
||||
refreshHttpResponses(8);
|
||||
}
|
||||
|
||||
function refreshHttpResponses(triggerNum) {
|
||||
var sheetNameData = typeSheetPrefix[ss.getName()] + "Data";
|
||||
var sheetData = ss.getSheetByName(sheetNameData);
|
||||
var sheetNameStatuses = typeSheetPrefix[ss.getName()] + "UrlStatuses";
|
||||
var sheetStatuses = ss.getSheetByName(sheetNameStatuses);
|
||||
copyListNames(sheetData, sheetStatuses);
|
||||
var listDataMax = getNumLists(sheetData)
|
||||
var urlHeaders = findUrlColumnHeaders(sheetData);
|
||||
if (urlHeaders.length >= triggerNum) {
|
||||
var currentUrlType = urlHeaders[triggerNum - 1];
|
||||
var colHeaderData = findColumnHeader(sheetData, currentUrlType);
|
||||
var colHeaderStatuses = findColumnHeader(sheetStatuses, currentUrlType);
|
||||
var rangeData = sheetData.getRange(colHeaderData + "2:" + colHeaderData + (1 + listDataMax));
|
||||
var rangeStatuses = sheetStatuses.getRange(colHeaderStatuses + "2:" + colHeaderStatuses);
|
||||
rangeStatuses.clearContent();
|
||||
for (i = 2; i <= rangeData.getNumRows(); i++) {
|
||||
var rangeStatus = sheetStatuses.getRange(colHeaderStatuses + i);
|
||||
var url = rangeData.getCell(i - 1, 1).getValue();
|
||||
if (url) {
|
||||
try {
|
||||
rangeStatus.setValue(UrlFetchApp.fetch(url).getResponseCode());
|
||||
} catch (err) {
|
||||
rangeStatus.setValue(err.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function copyListNames(sheetData, sheetStatuses) {
|
||||
var sourceRange = sheetData.getRange("A1:A");
|
||||
var targetRange = sheetStatuses.getRange("A1:A");
|
||||
targetRange.clearContent();
|
||||
sourceRange.copyTo(targetRange);
|
||||
}
|
||||
|
||||
function getNumLists(sheetData) {
|
||||
var listHeaderData = findColumnHeader(sheetData, "list");
|
||||
var listData = sheetData.getRange(listHeaderData + "2:" + listHeaderData);
|
||||
for (i = 1; i <= listData.getNumRows(); i++) {
|
||||
if (!(listData.getCell(i, 1).getValue())) {
|
||||
return i - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue