misc. cleanup/refactor

This commit is contained in:
Collin M. Barrett 2017-02-08 08:26:41 -06:00
parent e1eb3fe560
commit 1e8653629d
5 changed files with 85 additions and 152 deletions

View file

@ -32,26 +32,26 @@ function refreshParsed() {
var columnDataTopCell = sParsed.getRange(columnIndex + "2");
switch (urlTypes[i]) {
case "viewUrl":
columnDataTopCell.setValue("=createHtmlViewLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"viewUrl\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
case "addUrl":
var viewUrlColumnIndex = getColIndex(sData, "viewUrl");
columnDataTopCell.setValue("=createHtmlAddLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(Data!" + viewUrlColumnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(Data!" + viewUrlColumnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"addUrl\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(Data!" + viewUrlColumnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(Data!" + viewUrlColumnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
case "homeUrl":
columnDataTopCell.setValue("=createHtmlHomeLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"homeUrl\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
case "forumUrl":
columnDataTopCell.setValue("=createHtmlForumLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"forumUrl\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
case "issuesUrl":
columnDataTopCell.setValue("=createHtmlIssuesLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"issuesUrl\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
case "email":
columnDataTopCell.setValue("=createHtmlEmailLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"email\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
case "donateUrl":
columnDataTopCell.setValue("=createHtmlDonateLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
columnDataTopCell.setValue("=createHtmlArrayUrl(\"donateUrl\",INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)");
break;
default:
}
@ -70,7 +70,7 @@ function refreshPublic() {
var columnDataTopCell = sPublic.getRange(columnIndex + "2");
switch (publicFields[i]) {
case "list":
columnDataTopCell.setValue("=createHtmlListNameArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"list\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"list\",Data!A1:1,0),4),\"1\",\"\")))");
columnDataTopCell.setValue("=createHtmlArrayList(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"list\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"list\",Data!A1:1,0),4),\"1\",\"\")))");
break;
case "tags":
columnDataTopCell.setValue("=ARRAYFORMULA(\"<span class=\"\"fl-tag lang\"\">\"&INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"tagLang\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"tagLang\",Data!A1:1,0),4),\"1\",\"\"))&\"</span>\")");
@ -86,7 +86,7 @@ function refreshPublic() {
columnDataTopCell.setValue("=ARRAYFORMULA(IF(Parsed!A2:A=\"\",\"\",\"<p>\"&Parsed!A2:A&Parsed!B2:B&Parsed!C2:C&Parsed!D2:D&Parsed!E2:E&Parsed!F2:F&Parsed!G2:G&\"</p>\"))");
break;
case "related":
columnDataTopCell.setValue("=createHtmlRelatedLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"related\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"related\",Data!A1:1,0),4),\"1\",\"\")))");
columnDataTopCell.setValue("=createHtmlArrayRelated(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"related\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"related\",Data!A1:1,0),4),\"1\",\"\")))");
break;
default:
}

74
gs/html-factory.gs Normal file
View file

@ -0,0 +1,74 @@
function createHtmlArrayUrl(htmlType, url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlArrayUrl(htmlType, url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
switch (htmlType) {
case "viewUrl":
return "<a href=\"" + url + "\" title=\"Preview " + listName + " in your browser.\" class=\"button piwik_download\">View</a>";
break;
case "addUrl":
return "<a href=\"abp:subscribe?location=" + url + "&title=" + listName + "\" title=\"Subscribe to " + listName + " in your content blocker.\" class=\"button piwik_download\">Add</a>";
break;
case "homeUrl":
return "<a href=\"" + url + "\" title=\"" + listName + " Home Page\" class=\"button\">Home</a>";
break;
case "forumUrl":
return "<a href=\"" + url + "\" title=\"" + listName + " Forum\" class=\"button\">Forum</a>";
break;
case "issuesUrl":
return "<a href=\"" + url + "\" title=\"" + listName + " GitHub Issues\" class=\"button\">Issues</a>";
break;
case "email":
return "<a href=\"mailto:" + url + "\" title=\"Contribute to " + listName + " via email.\" class=\"button\">Email</a>";
break;
case "donateUrl":
return "<a href=\"" + url + "\" title=\"Donate to support the maintainers of " + listName + ".\" class=\"button\">Donate</a>";
break;
default:
return "";
}
} else {
return "";
}
}
}
function createHtmlArrayList(list) {
if (list instanceof Array) {
for (var i in list) {
list[i] = createHtmlArrayList(list[i]);
}
return list;
} else {
if (list) {
return "<h3 id=\"" + trimUrlSlugArray(list) + "\">" + list + "</h3>";
} else {
return "";
}
}
}
function createHtmlArrayRelated(related) {
if (related instanceof Array) {
for (var i in related) {
related[i] = createHtmlArrayRelated(related[i]);
}
return related;
} else {
if (!related) {
return "";
} else {
var relatedArray = related.split(',');
var relatedHtml = "<ul>";
for (var i = 0, relatedArrayLength = relatedArray.length; i < relatedArrayLength; i++) {
relatedHtml += "<li><a href=\"#" + trimUrlSlugArray(relatedArray[i]) + "\">" + relatedArray[i] + "</a></li>";
}
relatedHtml += "</ul>";
return relatedHtml;
}
}
}

View file

@ -1,140 +0,0 @@
function createHtmlViewLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlViewLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"" + url + "\" title=\"Preview " + listName + " in your browser.\" class=\"button piwik_download\">View</a>";
} else {
return "";
}
}
}
function createHtmlAddLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlAddLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"abp:subscribe?location=" + url + "&title=" + listName + "\" title=\"Subscribe to " + listName + " in your content blocker.\" class=\"button piwik_download\">Add</a>";
} else {
return "";
}
}
}
function createHtmlHomeLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlHomeLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"" + url + "\" title=\"" + listName + " Home Page\" class=\"button\">Home</a>";
} else {
return "";
}
}
}
function createHtmlForumLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlForumLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"" + url + "\" title=\"" + listName + " Forum\" class=\"button\">Forum</a>";
} else {
return "";
}
}
}
function createHtmlIssuesLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlIssuesLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"" + url + "\" title=\"" + listName + " GitHub Issues\" class=\"button\">Issues</a>";
} else {
return "";
}
}
}
function createHtmlEmailLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlEmailLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"mailto:" + url + "\" title=\"Contribute to " + listName + " via email.\" class=\"button\">Email</a>";
} else {
return "";
}
}
}
function createHtmlDonateLinkArray(url, listName) {
if (url instanceof Array) {
for (var i in url) {
url[i] = createHtmlDonateLinkArray(url[i], listName[i]);
}
return url;
} else {
if (url && url != "#N/A") {
return "<a href=\"" + url + "\" title=\"Donate to support the maintainers of " + listName + ".\" class=\"button\">Donate</a>";
} else {
return "";
}
}
}
function createHtmlRelatedLinkArray(related) {
if (related instanceof Array) {
for (var i in related) {
related[i] = createHtmlRelatedLinkArray(related[i]);
}
return related;
} else {
if (!related) {
return "";
} else {
var relatedArray = related.split(',');
var relatedHtml = "<ul>";
for (var i = 0, relatedArrayLength = relatedArray.length; i < relatedArrayLength; i++) {
relatedHtml += "<li><a href=\"#" + trimUrlSlugArray(relatedArray[i]) + "\">" + relatedArray[i] + "</a></li>";
}
relatedHtml += "</ul>";
return relatedHtml;
}
}
}
function createHtmlListNameArray(listName) {
if (listName instanceof Array) {
for (var i in listName) {
listName[i] = createHtmlListNameArray(listName[i]);
}
return listName;
} else {
if (listName) {
return "<h3 id=\"" + trimUrlSlugArray(listName) + "\">" + listName + "</h3>";
} else {
return "";
}
}
}

View file

@ -7,8 +7,7 @@ var sParsed = ss.getSheetByName("Parsed");
var sPublic = ss.getSheetByName("Public");
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Refresh').addItem('Refresh All', 'refreshAll').addSeparator().addItem('Refresh Data', 'refreshData').addItem('Refresh FilScore', 'refreshFilScores').addToUi();
SpreadsheetApp.getUi().createMenu('Refresh').addItem('Refresh All', 'refreshAll').addSeparator().addItem('Refresh Data', 'refreshData').addItem('Refresh FilScore', 'refreshFilScores').addToUi();
}
function refreshAll() {

View file

@ -88,7 +88,7 @@ function moveColumn(sheet, iniCol, finCol) {
function arrayMoveColumn(data, from, to) {
if (!(data instanceof Array && data[0] instanceof Array)) throw new TypeError('need 2d array');
if (from >= data[0].length || to >= data[0].length) throw new Error('index out of bounds');
for (var row = 0; row < data.length; row++) {
for (var row = 0, dataLength = data.length; row < dataLength; row++) {
var temp = data[row].splice(from, 1);
data[row].splice(to, 0, temp[0]);
}