SHARE
TWEET
Untitled
a guest
Jul 12th, 2015
186
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- function doGet(e) {
- return HtmlService.createHtmlOutput('<html><style>body{ font-size:16px; } #help { font-size:10px; } #help:hover { font-size:19px; } t</style> <body> <div id="frm"> <form action="#" method="get"> Multireddit URL<br />'
- + '<input type="text" name="URL" id="URL" value="" /> <div id="help">This can be found by going to <a href="https://www.reddit.com/subreddits/">this page</a> and right-clicking in the sidebar on the text "multireddit of your subscriptions". Select copy, and paste into this textbox.</div><br />'
- + '<input type="button" name="submit" value="Submit" '
- + 'onClick="begin()"> '
- + '</form> </div> <script> function begin() {try { google.script.run.withSuccessHandler(complete).start(document.getElementById("URL").value);} catch (e){document.write("<h1>It appears as though Voat is down, please try again later</h1>");}} function complete(table) { document.write(table);}</script></body> </html>')
- .setSandboxMode(HtmlService.SandboxMode.IFRAME);
- }
- JSON_SRC = "https://voat.co/api/top200subverses";
- NAME_TXT = "Name: ";
- AFTER_NAME_TXT = ",Description: ";
- SUBSCRIBER_TXT = ",Subscribers: ";
- AFTER_SUBSCRIBER_TXT = ",Created: "
- AFTER_TXT = "reddit.com/r/";
- ALT = [["reddit", "voat"], ["voat","reddit"], ["porn", "pix"], ["porn", "pics"], ["_", ""], ["soccer", "football"], ["eli5", "explainlikeimfive"]];
- function getSubInfo() {
- //retrieve JSON data as utf-8
- var complete = true;
- do {
- try {
- var data = UrlFetchApp.fetch(JSON_SRC).getBlob().getAs("application/json").getDataAsString("UTF-8");
- complete = true;
- } catch (e) {return false;}
- } while(!complete);
- var doc = JSON.parse(data);
- var content = data.substr(2,data.length-2).split('","');
- //parse JSON as an array
- var info = [];
- for (i = 0; i < content.length; i++) {
- var text = content[i];
- var name = text.substr(text.indexOf(NAME_TXT)+NAME_TXT.length, text.indexOf(AFTER_NAME_TXT)-(text.indexOf(NAME_TXT)+NAME_TXT.length));
- var subscribers = Number(text.substr(text.lastIndexOf(SUBSCRIBER_TXT)+SUBSCRIBER_TXT.length, text.lastIndexOf(AFTER_SUBSCRIBER_TXT)-(text.lastIndexOf(SUBSCRIBER_TXT)+SUBSCRIBER_TXT.length)));
- if (subscribers > 0) {
- info.push([name.toLowerCase(),subscribers]);
- }
- }//end for
- return info;
- }//end getSubInfo
- //super simple helper method
- function getReddits(text) {
- var reddits = text.substr(text.indexOf(AFTER_TXT)+AFTER_TXT.length, text.length).toLowerCase().split("+");
- return reddits;
- }//end getReddits
- //another stupid simple helper method
- function srch(reddits, subInfo) {
- for (j = 0; j < reddits.length; j++) {
- if (subInfo == reddits[j]) return true;
- }//end for
- return false;
- }//end search
- function start(url, sheet) {
- var subverses = [[]];
- var subInfo = getSubInfo();
- var reddits = getReddits(url);
- var l = reddits.length;
- Logger.log("Point 1");
- if (subInfo == false) return "<h1>Voat Appears to Be Down, Please Try Later</h1>";
- //search reddits and add any that could be slightly different
- for (i = 0, l = reddits.length; i < l; i++) {
- for (j = 0; j < ALT.length; j++) {
- if (reddits[i].search(ALT[j][0]) != -1) reddits.push(reddits[i].replace(ALT[j][0],ALT[j][1]));
- }//end for
- }//end for
- Logger.log("Point 2 : reddits.length=" + reddits.length + " srch(reddits, subInfo[2][0]) = " + srch(reddits,[["chloegracemoretz"]]));
- //search
- for (i = 0; i < subInfo.length; i++) {
- if (srch(reddits, subInfo[i][0])) subverses.push(subInfo[i]);
- Logger.log(subverses.toString() + " : i=" + i + " : subInfo.length=" + subInfo.length);
- }//end for
- Logger.log("Point 3");
- var table = "<table>"
- for (i = 1; i < subverses.length; i++) {
- table = table + "<tr><td><a target='_blank' href='https://www.voat.co/v/" + subverses[i][0] + "'>/v/" + subverses[i][0] + ": " + subverses[i][1] + " subscribers." + "</a></td></tr>";
- }//end for
- table = table + "</table><a onclick=\""
- for (i = 1; i < subverses.length; i++) {
- table = table + "window.open('https://www.voat.co/v/" + subverses[i][0] + "'); ";
- }//end for
- table = table + "\" href=''>Click here to open all in new tabs.</a> Note: you may have to disable your pop-up blocker for this.";
- table = table + "<h1>Finished</h1>";
- return table;
- }//end of start
- function test() {
- //get the voat stats spreadsheet by name
- var file = DriveApp.getFilesByName("TESTER");
- var sheet, flagged;
- //if there isn't one, create it
- if (!file.hasNext()) {
- sheet = SpreadsheetApp.create("TESTER").getSheets()[0];
- } else {
- sheet = SpreadsheetApp.open(file.next()).getSheets()[0];
- }
- sheet.getRange(1,sheet.getLastColumn()+1).setValue("text" + start("https://www.reddit.com/r/Blackout2015+news+boxxy+chloegracemoretz+fatpeoplehate+fatpeoplehateGW+HAESSuccessStories+koe+RagenChastain+RedditALTernatives+TPPartnership+Voat",sheet));
- }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
