Created
July 4, 2015 07:50
-
-
Save TheAnonymous/9480595e497a21cc76c9 to your computer and use it in GitHub Desktop.
This is a Google Apps Script to monitor dom elements at a website if they change you will get an email.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function initSheets(sps){ | |
var Emailsheet; | |
try{ | |
Emailsheet = sps.getSheetByName("emaillist"); | |
} catch(e){ | |
sps.insertSheet("emaillist") | |
Emailsheet = sps.getSheetByName("emaillist"); | |
Emailsheet.getRange("A1").setValue("[email protected]") | |
} | |
var smssheet; | |
try{ | |
smssheet = sps.getSheetByName("smslist"); | |
}catch(e){ | |
sps.insertSheet("smslist"); | |
smssheet = sps.getSheetByName("smslist"); | |
Emailsheet.getRange("A1").setValue("12345678910") | |
} | |
var wwwsheet; | |
try{ | |
wwwsheet = sps.getSheetByName("wwwlist"); | |
}catch(e){ | |
sps.insertSheet("wwwlist"); | |
wwwsheet = sps.getSheetByName("wwwlist"); | |
} | |
} | |
function elementFetcher(url,startstring, endstring) { | |
if(url != ""){ | |
var doc = UrlFetchApp.fetch(url).getContentText(); | |
var start = doc.search(startstring); | |
var end = doc.search(endstring); | |
Logger.log(start); | |
Logger.log(end); | |
var data = ""; | |
if((start || end) == -1){ | |
data = "No valid start or end found :(" | |
} else { | |
data = doc.slice(start, end); | |
Logger.log(data); | |
} | |
if(data.length > 10000){ | |
data = data.slice(0, 5000) | |
} | |
return data; | |
}else { | |
return "Error!" | |
} | |
} | |
function onOpen(e){ | |
/* | |
var newsps = SpreadsheetApp.create("Adresslist"); | |
var id = newsps.getId(); | |
var sps = SpreadsheetApp.openById(id); | |
return sps; | |
*/ | |
try{ | |
SpreadsheetApp.getUi().createAddonMenu().addItem("Create Webwatcher", "start").addToUi(); | |
}catch(e){ | |
Logger.log(e); | |
} | |
} | |
function sendEmail(sps, subject, body){ | |
var Emailsheet; | |
try{ | |
Emailsheet = sps.getSheetByName("emaillist"); | |
} catch(e){ | |
sps.insertSheet("emaillist") | |
Emailsheet = sps.getSheetByName("emaillist"); | |
} | |
for(var i =1; i < 100; i++){ | |
var r = Emailsheet.getRange(i, 1); | |
if(r.length < 4){break;} | |
var data = r.getValue(); | |
Logger.log(data); | |
GmailApp.sendEmail(data, subject, body) | |
} | |
} | |
function sendSMS(sps, body){ | |
var smssheet; | |
try{ | |
smssheet = sps.getSheetByName("smslist"); | |
}catch(e){ | |
sps.insertSheet("smslist"); | |
smssheet = sps.getSheetByName("smslist"); | |
} | |
for(var i =1; i < 100; i++){ | |
var r = smssheet.getRange(i, 1); | |
var data = r.getValue(); | |
//Must be done!!!!!!!! | |
} | |
} | |
function crawlWebsites(sps){ | |
var wwwsheet; | |
try{ | |
wwwsheet = sps.getSheetByName("wwwlist"); | |
}catch(e){ | |
sps.insertSheet("wwwlist"); | |
wwwsheet = sps.getSheetByName("wwwlist"); | |
} | |
for(var i =1; i < 100; i++){ | |
var r = wwwsheet.getRange(i, 1); | |
var wwwAdress = r.getValue(); | |
if (wwwAdress == ""){ | |
break; | |
} | |
r = wwwsheet.getRange(i, 2); | |
var start = r.getValue(); | |
r = wwwsheet.getRange(i, 3); | |
var end = r.getValue(); | |
r = wwwsheet.getRange(i, 4); | |
var cache = r.getValue(); | |
//////Crawling and alert | |
var tmpData = elementFetcher(wwwAdress, start, end); | |
if(cache !== tmpData){ | |
r.setValue(tmpData); | |
sendEmail(sps, "Change on: " + wwwAdress, tmpData); | |
sendSMS(sps, "Change on: "+ wwwAdress); | |
} | |
} | |
} | |
function start(){ | |
var sps = SpreadsheetApp.getActive(); | |
initSheets(sps); | |
crawlWebsites(sps); | |
} | |
function onInstall(e) { | |
onOpen(e); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment