From 3ddab6ef4fd358a16c2095db3c5dc1b267246db0 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Mon, 12 Dec 2016 06:04:38 -0600 Subject: [PATCH] add google script files --- gs/EncodeUrlSlug.gs | 27 +++++++++++++++++++++++++++ gs/GenerateHtmlAddLink.gs | 15 +++++++++++++++ gs/GenerateHtmlChangelogLink.gs | 15 +++++++++++++++ gs/GenerateHtmlDonateLink.gs | 15 +++++++++++++++ gs/GenerateHtmlEmailLink.gs | 15 +++++++++++++++ gs/GenerateHtmlForksCombosLink.gs | 17 +++++++++++++++++ gs/GenerateHtmlForumLink.gs | 15 +++++++++++++++ gs/GenerateHtmlGuideLink.gs | 15 +++++++++++++++ gs/GenerateHtmlHomeLink.gs | 15 +++++++++++++++ gs/GenerateHtmlIssuesLink.gs | 15 +++++++++++++++ gs/GenerateHtmlListName.gs | 15 +++++++++++++++ gs/GenerateHtmlViewLink.gs | 15 +++++++++++++++ gs/GetLastUpdated.gs | 20 ++++++++++++++++++++ gs/TrimUrlSlug.gs | 27 +++++++++++++++++++++++++++ 14 files changed, 241 insertions(+) create mode 100644 gs/EncodeUrlSlug.gs create mode 100644 gs/GenerateHtmlAddLink.gs create mode 100644 gs/GenerateHtmlChangelogLink.gs create mode 100644 gs/GenerateHtmlDonateLink.gs create mode 100644 gs/GenerateHtmlEmailLink.gs create mode 100644 gs/GenerateHtmlForksCombosLink.gs create mode 100644 gs/GenerateHtmlForumLink.gs create mode 100644 gs/GenerateHtmlGuideLink.gs create mode 100644 gs/GenerateHtmlHomeLink.gs create mode 100644 gs/GenerateHtmlIssuesLink.gs create mode 100644 gs/GenerateHtmlListName.gs create mode 100644 gs/GenerateHtmlViewLink.gs create mode 100644 gs/GetLastUpdated.gs create mode 100644 gs/TrimUrlSlug.gs diff --git a/gs/EncodeUrlSlug.gs b/gs/EncodeUrlSlug.gs new file mode 100644 index 000000000..625d4b221 --- /dev/null +++ b/gs/EncodeUrlSlug.gs @@ -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 ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlAddLink.gs b/gs/GenerateHtmlAddLink.gs new file mode 100644 index 000000000..e9e877b0f --- /dev/null +++ b/gs/GenerateHtmlAddLink.gs @@ -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 = "Add"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlChangelogLink.gs b/gs/GenerateHtmlChangelogLink.gs new file mode 100644 index 000000000..60ad7dabd --- /dev/null +++ b/gs/GenerateHtmlChangelogLink.gs @@ -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 = "Changelog"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlDonateLink.gs b/gs/GenerateHtmlDonateLink.gs new file mode 100644 index 000000000..023d0dcc4 --- /dev/null +++ b/gs/GenerateHtmlDonateLink.gs @@ -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 = "Donate"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlEmailLink.gs b/gs/GenerateHtmlEmailLink.gs new file mode 100644 index 000000000..04593c5ad --- /dev/null +++ b/gs/GenerateHtmlEmailLink.gs @@ -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 = "Email"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlForksCombosLink.gs b/gs/GenerateHtmlForksCombosLink.gs new file mode 100644 index 000000000..392c98d85 --- /dev/null +++ b/gs/GenerateHtmlForksCombosLink.gs @@ -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 = "Forum"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlGuideLink.gs b/gs/GenerateHtmlGuideLink.gs new file mode 100644 index 000000000..ee9fc5479 --- /dev/null +++ b/gs/GenerateHtmlGuideLink.gs @@ -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 = "Guide"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlHomeLink.gs b/gs/GenerateHtmlHomeLink.gs new file mode 100644 index 000000000..de8755ea9 --- /dev/null +++ b/gs/GenerateHtmlHomeLink.gs @@ -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 = "Home"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlIssuesLink.gs b/gs/GenerateHtmlIssuesLink.gs new file mode 100644 index 000000000..1148afa43 --- /dev/null +++ b/gs/GenerateHtmlIssuesLink.gs @@ -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 = "Issues"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlListName.gs b/gs/GenerateHtmlListName.gs new file mode 100644 index 000000000..c003343b5 --- /dev/null +++ b/gs/GenerateHtmlListName.gs @@ -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 = "

" + listName + "

"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GenerateHtmlViewLink.gs b/gs/GenerateHtmlViewLink.gs new file mode 100644 index 000000000..fc36be00d --- /dev/null +++ b/gs/GenerateHtmlViewLink.gs @@ -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 = "View"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/GetLastUpdated.gs b/gs/GetLastUpdated.gs new file mode 100644 index 000000000..3e760946d --- /dev/null +++ b/gs/GetLastUpdated.gs @@ -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();; +} \ No newline at end of file diff --git a/gs/TrimUrlSlug.gs b/gs/TrimUrlSlug.gs new file mode 100644 index 000000000..21ae32fee --- /dev/null +++ b/gs/TrimUrlSlug.gs @@ -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 ""; + } + } +} \ No newline at end of file