#!/usr/bin/python import sys from ConfigParser import SafeConfigParser from twisted.internet import reactor from pyngfm.client import PingFMAsyncClient def checkMessage(message): if len(message) > 140: print "Message is too long! (%s chars)" % len(message) sys.exit(1) def getKeys(): cred_file = "/etc/ping.fm.creds" config = SafeConfigParser() config.read([cred_file]) api_key = config.get("default", "api-key") user_app_key = config.get("default", "user-app-key") return api_key, user_app_key def pingIt(message): def check_result(status): print status def check_error(error): print error.getErrorMessage() def finish(ignored): reactor.stop() pinger = PingFMAsyncClient(*getKeys()) deferred = pinger.user_post("status", body=message) deferred.addErrback(check_error) deferred.addCallback(check_result) deferred.addErrback(check_error) deferred.addCallback(finish) if __name__ == "__main__": message = " ".join(sys.argv[1:]) checkMessage(message) pingIt(message) reactor.run()