pythonwise / bbot.py

#!/usr/bin/env python
# Watch builds on buildbot and publish to twitter

from time import time, sleep
from xmlrpclib import ServerProxy
from urllib import urlopen

user, password = "tebeka", "SECRET_PASSWORD"
bbot_url = "http://buildbot.example.com/xmlrpc"
tweet_url = "http://%s:%s@twitter.com/statuses/update.xml" % (user, password)

def main():
    proxy = ServerProxy(bbot_url)
    last_time = time()

    while 1:
        now = time()
        builds = proxy.getAllBuildsInInterval(last_time, now)
        for build in builds:
            builder, build, status = build[0], build[1], build[5]
            status = "OK" if status == "success" else "BROKEN"
            message = "[%s] build %s is %s" % (builder, build, status)
            urlopen(tweet_url, "status=%s" % message)

        last_time = now if builds else last_time
        sleep(10)

if __name__ == "__main__":
    main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.