Skip to content

Instantly share code, notes, and snippets.

@sp2hari
Created December 3, 2022 06:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sp2hari/2a728330dcae0faa91db979ab5f18c1b to your computer and use it in GitHub Desktop.
Save sp2hari/2a728330dcae0faa91db979ab5f18c1b to your computer and use it in GitHub Desktop.
Domain Tracker in Google Sheets
const DEBUG_MODE = true;
const MAX_ROWS = 30;
function onOpen() {
SpreadsheetApp
.getUi()
.createMenu('Tracker')
.addItem('Update Domain Data', 'updateAllDomainData')
.addToUi()
}
function getAllDomains() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var response = [];
var data = sheet.getSheetValues(1, 1, MAX_ROWS, 1);
for (var i=1; i<data.length; i++) {
var row = data[i];
if (row[0] == '') { break; }
response.push(row[0]);
}
return response;
}
function fetchDomainDetails(domain) {
var options = {
'contentType': 'application/json'
};
var url = 'https://api.beaglesecurity.com/v1/freecheck/domain?url=' + domain;
var response = UrlFetchApp.fetch(url, options);
return JSON.parse(response);
}
function updateAllDomainData() {
domains = getAllDomains();
for (var i=0; i<domains.length; i++) {
response = fetchDomainDetails(domains[i]);
updateDomainDetails(i, response);
}
}
function updateDomainDetails(i, fields) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(i+2, 2).setValue(new Date(fields['expirationDate']).toDateString());
sheet.getRange(i+2, 3).setValue(fields['expiryDays']);
sheet.getRange(i+2, 4).setValue(new Date(fields['creationDate']).toDateString());
}
function updateDomainData() {
domains = getAllDomains();
var i = (new Date().getMinutes()+1)%domains.length;
response = fetchDomainDetails(domains[i]);
updateDomainDetails(i, response);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment