add google script files

This commit is contained in:
Collin M. Barrett 2016-12-12 06:04:38 -06:00
parent b54b82e055
commit 3ddab6ef4f
14 changed files with 241 additions and 0 deletions

27
gs/EncodeUrlSlug.gs Normal file
View file

@ -0,0 +1,27 @@
function EncodeUrlSlug(slug) {
if (slug instanceof Array) {
for (i in slug) {
slug[i] = EncodeUrlSlug(slug[i]);
}
return slug;
} else {
if (slug) {
var charDict = [
[" ", "%20"],
["\"", "%22"],
[":", "%3A"],
["'", "%27"],
["+", "%2B"],
["(", "%28"],
[")", "%29"],
[".", ""]
];
for (i = 0; i < charDict.length; ++i) {
slug = slug.split(charDict[i][0]).join(charDict[i][1]);
}
return slug;
} else {
return "";
}
}
}

15
gs/GenerateHtmlAddLink.gs Normal file
View file

@ -0,0 +1,15 @@
function GenerateHtmlAddLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlAddLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"abp:subscribe?location=" + url + "&title=" + listName + "\" title=\"Subscribe to " + listName + " in your content blocker.\" class=\"button\">Add</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlChangelogLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlChangelogLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"" + listName + " Changelog\" class=\"button\">Changelog</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlDonateLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlDonateLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"Donate to support the maintainers of " + listName + ".\" class=\"button\">Donate</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlEmailLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlEmailLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"mailto:" + url + "\" title=\"Contribute to " + listName + " via email.\" class=\"button\">Email</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,17 @@
function GenerateHtmlForksCombosLink(forkComboListName, filterListsPageSlug) {
if (forkComboListName instanceof Array) {
for (i in forkComboListName) {
forkComboListName[i] = GenerateHtmlForksCombosLink(forkComboListName[i], filterListsPageSlug[i]);
}
return forkComboListName;
} else {
// return null if no List Name provided
if (forkComboListName == null) {
return null;
// concatenate HTML link tag
} else {
var html = "<a href=\"https://beta.filterlists.com" + filterListsPageSlug + "#" + TrimUrlSlug(forkComboListName) + "\"";
return html;
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlForumLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlForumLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"" + listName + " Forum\" class=\"button\">Forum</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlGuideLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlGuideLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"" + listName + " Guide\" class=\"button\">Guide</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlHomeLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlHomeLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"" + listName + " Home Page\" class=\"button\">Home</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlIssuesLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlIssuesLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"" + listName + " GitHub Issues\" class=\"button\">Issues</a>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlListName(listName) {
if (listName instanceof Array) {
for (i in listName) {
listName[i] = GenerateHtmlListName(listName[i]);
}
return listName;
} else {
if (listName) {
var html = "<h3 id=\"" + listName + "\">" + listName + "</h3>";
return html;
} else {
return "";
}
}
}

View file

@ -0,0 +1,15 @@
function GenerateHtmlViewLink(url, listName) {
if (url instanceof Array) {
for (i in url) {
url[i] = GenerateHtmlViewLink(url[i], listName[i]);
}
return url;
} else {
if (url) {
var html = "<a href=\"" + url + "\" title=\"Preview " + listName + " in your browser.\" class=\"button\">View</a>";
return html;
} else {
return "";
}
}
}

20
gs/GetLastUpdated.gs Normal file
View file

@ -0,0 +1,20 @@
//https://archive.org/help/wayback_api.php
//https://developers.google.com/apps-script/guides/services/external
//http://momentjs.com/
var moment = Moment.load();
function GetLastUpdated(urlToCheck) {
urlToCheck = urlToCheck.replace("http://", "");
urlToCheck = urlToCheck.replace("https://", "");
var apiCall = 'http://archive.org/wayback/available?url=' + urlToCheck;
try {
var response = UrlFetchApp.fetch(apiCall);
} catch (e) {
var sleepTime = Math.floor(Math.random() * 9000) + 1000;
Utilities.sleep(sleepTime);
var response = UrlFetchApp.fetch(apiCall);
}
var json = response.getContentText();
var data = JSON.parse(json);
return moment(data.archived_snapshots.closest.timestamp, "YYYYMMDDhhmmss").fromNow();;
}

27
gs/TrimUrlSlug.gs Normal file
View file

@ -0,0 +1,27 @@
function TrimUrlSlug(slug) {
if (slug instanceof Array) {
for (i in slug) {
slug[i] = TrimUrlSlug(slug[i]);
}
return slug;
} else {
if (slug) {
var charDict = [
[" ", ""],
["\"", ""],
[":", ""],
["'", ""],
["+", ""],
["(", ""],
[")", ""],
[".", ""]
];
for (i = 0; i < charDict.length; ++i) {
slug = slug.split(charDict[i][0]).join(charDict[i][1]);
}
return slug;
} else {
return "";
}
}
}