#!/usr/bin/env python # encoding: utf-8 import sys import os import urllib import urllib2 import base64 import time from xml.dom import minidom def twitter(twitter_username, twitter_password, message): request = urllib2.Request('http://twitter.com/statuses/update.json') request.headers['Authorization'] = 'Basic %s' % ( base64.b64encode(twitter_username + ':' + twitter_password),) request.data = urllib.urlencode({'status': message}) try: response = urllib2.urlopen(request) # The Response except HTTPError, e: print "Error posting to twitter" print "HTTP Error code: ", e.code except URLError, e: print "Error posting to twitter" print "URLError reason: ", e.reason def main(): message = "" last_update = "17514"; chromium_url = "http://build.chromium.org/buildbot/snapshots/sub-rel-mac/" while(True): try: response = urllib2.urlopen(chromium_url + "LATEST") except HTTPError, e: print "HTTP Error code: ", e.code except URLError, e: print "URLError reason: ", e.reason else: latest = response.read() print "latest: ", latest if(latest != last_update): try: response2 = urllib2.urlopen(chromium_url + latest + "/changelog.xml") except HTTPError, e: print "HTTP Error code: ", e.code except URLError, e: print "URLError reason: ", e.reason else: html = response2.read() # print html dom = minidom.parseString(html) entries = dom.getElementsByTagName("logentry") #[0].childNodes print "entries: ", len(entries) for i in range(0, len(entries)): link = chromium_url + latest + "/ " msg = entries[i].getElementsByTagName("msg")[0].firstChild.nodeValue num = entries[i].getAttribute("revision") print "Revision: ", num twitter("USERNAME", "PASSWORD", "Chromium Revision " + num + ": " + msg) last_update = latest time.sleep((60*2)) if __name__ == '__main__': main()