mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
add google script files
This commit is contained in:
parent
b54b82e055
commit
3ddab6ef4f
14 changed files with 241 additions and 0 deletions
27
gs/EncodeUrlSlug.gs
Normal file
27
gs/EncodeUrlSlug.gs
Normal 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
15
gs/GenerateHtmlAddLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlChangelogLink.gs
Normal file
15
gs/GenerateHtmlChangelogLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlDonateLink.gs
Normal file
15
gs/GenerateHtmlDonateLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlEmailLink.gs
Normal file
15
gs/GenerateHtmlEmailLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
17
gs/GenerateHtmlForksCombosLink.gs
Normal file
17
gs/GenerateHtmlForksCombosLink.gs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlForumLink.gs
Normal file
15
gs/GenerateHtmlForumLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlGuideLink.gs
Normal file
15
gs/GenerateHtmlGuideLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlHomeLink.gs
Normal file
15
gs/GenerateHtmlHomeLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlIssuesLink.gs
Normal file
15
gs/GenerateHtmlIssuesLink.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlListName.gs
Normal file
15
gs/GenerateHtmlListName.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
15
gs/GenerateHtmlViewLink.gs
Normal file
15
gs/GenerateHtmlViewLink.gs
Normal 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
20
gs/GetLastUpdated.gs
Normal 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
27
gs/TrimUrlSlug.gs
Normal 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 "";
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue