mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
run custom functions on-demand rather than auto
incremental, still in progress...
This commit is contained in:
parent
7b4a9e1bd4
commit
9d6ea64461
1 changed files with 179 additions and 15 deletions
|
|
@ -1,9 +1,9 @@
|
|||
var typeSheet = {
|
||||
"FilterLists Global": "GlobalData",
|
||||
"FilterLists Regional": "RegionalData",
|
||||
"FilterLists Forked": "ForkedData",
|
||||
"FilterLists Combo": "ComboData",
|
||||
"FilterLists Stale": "StaleData"
|
||||
var typeSheetPrefix = {
|
||||
"FilterLists Global": "Global",
|
||||
"FilterLists Regional": "Regional",
|
||||
"FilterLists Forked": "Forked",
|
||||
"FilterLists Combo": "Combo",
|
||||
"FilterLists Stale": "Stale"
|
||||
};
|
||||
|
||||
var typeGitHubUrl = {
|
||||
|
|
@ -14,19 +14,19 @@ var typeGitHubUrl = {
|
|||
"FilterLists Stale": "https://raw.githubusercontent.com/collinbarrett/FilterLists/master/json-data/stale.json"
|
||||
};
|
||||
|
||||
var ss = SpreadsheetApp.getActiveSpreadsheet(),
|
||||
options = [{
|
||||
name: "Refresh Data",
|
||||
functionName: "refreshJson"
|
||||
}];
|
||||
|
||||
function onOpen() {
|
||||
var ss = SpreadsheetApp.getActiveSpreadsheet(),
|
||||
options = [{
|
||||
name: "Refresh Data",
|
||||
functionName: "refreshJson"
|
||||
}, ];
|
||||
ss.addMenu("Refresh Data", options);
|
||||
}
|
||||
|
||||
function refreshJson() {
|
||||
var ss = SpreadsheetApp.getActiveSpreadsheet();
|
||||
var sheet = ss.getSheetByName(typeSheet[ss.getName()]);
|
||||
var data = ImportJSON(typeGitHubUrl[ss.getName()], "", "noTruncate,rawHeaders,noInherit");
|
||||
var sheet = ss.getSheetByName(typeSheetPrefix[ss.getName()] + "Data");
|
||||
var data = ImportJson(typeGitHubUrl[ss.getName()], "", "noTruncate,rawHeaders,noInherit");
|
||||
for (i = 0; i < data.length; i++) {
|
||||
for (j = 0; j < data[0].length; j++) {
|
||||
if (data[i][j] == null) {
|
||||
|
|
@ -36,5 +36,169 @@ function refreshJson() {
|
|||
}
|
||||
sheet.clearContents();
|
||||
var range = sheet.getRange(1, 1, data.length, data[0].length);
|
||||
range.setValues(data)
|
||||
range.setValues(data);
|
||||
refreshParsed();
|
||||
refreshPublic();
|
||||
}
|
||||
|
||||
function refreshParsed() {
|
||||
var sheetName = typeSheetPrefix[ss.getName()] + "Parsed";
|
||||
var sheet = ss.getSheetByName(sheetName);
|
||||
var viewColHeader = refreshViewUrl(sheet);
|
||||
refreshAddUrl(sheet, viewColHeader);
|
||||
refreshHomeUrl(sheet, viewColHeader);
|
||||
refreshGuideUrl(sheet, viewColHeader);
|
||||
refreshForumUrl(sheet, viewColHeader);
|
||||
refreshIssuesUrl(sheet, viewColHeader);
|
||||
refreshEmailUrl(sheet, viewColHeader);
|
||||
refreshChangelogUrl(sheet, viewColHeader);
|
||||
refreshDonateUrl(sheet, viewColHeader);
|
||||
refreshForksCombos(sheet, viewColHeader);
|
||||
}
|
||||
|
||||
function refreshViewUrl(sheet) {
|
||||
var colHeader = findColumnHeader(sheet, "viewUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlViewLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + colHeader + "2:" + colHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
return colHeader;
|
||||
}
|
||||
|
||||
function refreshAddUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "addUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlAddLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + viewColHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + viewColHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshHomeUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "homeUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlViewLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshGuideUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "guideUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlGuideLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshForumUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "forumUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlForumLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshIssuesUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "issuesUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlIssuesLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshEmailUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "email");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlEmailLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshChangelogUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "changelogUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlChangelogLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshDonateUrl(sheet, viewColHeader) {
|
||||
var colHeader = findColumnHeader(sheet, "donateUrl");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=GenerateHtmlDonateLink(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ")");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function refreshForksCombos(sheet) {
|
||||
var colHeader = findColumnHeader(sheet, "forksCombos");
|
||||
if (colHeader) {
|
||||
var rangeFull = sheet.getRange(colHeader + "2:" + colHeader);
|
||||
rangeFull.clearContent();
|
||||
var rangeTop = sheet.getRange(colHeader + "2");
|
||||
rangeTop.setValue("=ARRAYFORMULA(SUBSTITUTE(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"forksCombos\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"forksCombos\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\")),\",\",\"<br>\"))");
|
||||
var data = rangeFull.getDisplayValues();
|
||||
rangeFull.clearContent();
|
||||
rangeFull.setValues(data);
|
||||
}
|
||||
}
|
||||
|
||||
function findColumnHeader(sheet, header) {
|
||||
var headerRange = sheet.getRange("A1:1");
|
||||
var headerData = headerRange.getValues();
|
||||
for (i = 0; i < headerData[0].length; i++) {
|
||||
if (headerData[0][i] == header) {
|
||||
return String.fromCharCode(65 + i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function refreshPublic() {
|
||||
var sheetName = typeSheetPrefix[ss.getName()] + "Public";
|
||||
var sheet = ss.getSheetByName(sheetName);
|
||||
}
|
||||
Loading…
Reference in a new issue