Last active
May 16, 2020 07:39
-
-
Save aviskase/079fda60adaa0c74e37c84089e4bb1ae to your computer and use it in GitHub Desktop.
Google Apps Script: create task in Amazing Marvin when new version of library appears in pypi
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
var TARGET_EMAIL = '<AMAZING_MARVIN_IMPORT_EMAIL>'; | |
var LIBRARY_NAME = '<SOME_LIBRARY>' | |
var URL_LIBRARIES_IO = 'https://libraries.io/pypi/LIBRARY_NAME/versions.atom' | |
var CATEGORY_OR_PROJECT = '<CATEGORY OR PROJECT IN AMAZING MARVIN>' | |
function parseXml() { | |
var props = PropertiesService.getScriptProperties(); | |
var xml = UrlFetchApp.fetch(URL_LIBRARIES_IO).getContentText(); | |
var document = XmlService.parse(xml); | |
var root = document.getRootElement(); | |
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom'); | |
var entries = document.getRootElement().getChildren('entry', atom); | |
for (var i = 0; i < entries.length; i++) { | |
var title = entries[i].getChild('title', atom).getText(); | |
var prop_title = props.getProperty(title); | |
if(!prop_title) { | |
Logger.log('New version found %s', title); | |
var link = entries[i].getChild('link', atom).getAttribute('href').getValue(); | |
props.setProperty(title, '1') | |
sendEmail(title, link); | |
} | |
} | |
} | |
function sendEmail(title, link) { | |
var subject = Utilities.formatString('New version [%s %s](%s) #"%s" +today', LIBRARY_NAME, title, link, CATEGORY_OR_PROJECT); | |
GmailApp.sendEmail(TARGET_EMAIL, subject, ''); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment