Skip to content

Instantly share code, notes, and snippets.

@KW-M
Last active December 31, 2018 19:59
Show Gist options
  • Save KW-M/40e65e862ebc2f27697e6b30647293d3 to your computer and use it in GitHub Desktop.
Save KW-M/40e65e862ebc2f27697e6b30647293d3 to your computer and use it in GitHub Desktop.
Read RSS Feed in Google Apps Script and insert into active google sheet
function execute() {
var url = "http://feeds.labnol.org/labnol"; //RSS Feed to parse
main(url);
}
function main(url) {
var ss = SpreadsheetApp.getActiveSheet();
var property = PropertiesService.getDocumentProperties();
var last_update = property.getProperty('last_update');
last_update = last_update === null ? 0 : parseFloat(last_update);
var feed = UrlFetchApp.fetch(url).getContentText();
var items = getItems(feed);
var i = items.length - 1;
while (i > -1) {
var item = items[i--];
var date = new Date(item.getChildText('pubDate'));
if (date.getTime() > last_update) {
insertRow(item, sheet);
}
}
property.setProperty('last_update', date.getTime());
}
function getItems(feed) {
var doc = XmlService.parse(feed);
var root = doc.getRootElement();
var channel = root.getChild('channel');
var items = channel.getChildren('item');
return items;
}
function insertRow(item, sheet) {
var title = item.getChildText('title');
var url = item.getChildText('link');
var author = item.getChildText('author');
var date = new Date(item.getChildText('pubDate'));
sheet.insertRowBefore(2);
sheet.getRange('B2:E2').setValues([[title, url, author, date.toLocaleString()]]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment