Dave Cridland Application 2012
Jump to navigation
Jump to search
When voting reopens, please run the following to assist in your voting.
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import sleekxmpp # Use a modern Sleek - then you're using my SASL implementation. # (Massively improved by Lance Stout). import logging # Python versions before 3.0 do not use UTF-8 encoding # by default. To ensure that Unicode is handled properly # throughout SleekXMPP, we will set the default encoding # ourselves to UTF-8. if sys.version_info < (3, 0): reload(sys) sys.setdefaultencoding('utf8') else: raw_input = input MEMBERBOT = 'memberbot@jabber.org' class VotingAid(sleekxmpp.ClientXMPP): def __init__(self, jid, password): sleekxmpp.ClientXMPP.__init__(self, jid, password) self.add_event_handler("session_start", self.start) self.add_event_handler("message", self.message) def message(self, msg): if msg['from'].bare == MEMBERBOT: if 'Dave Cridland' in msg['body']: # I'd mention here about my work on the XSF Board, my previous work on the Council, # the work on IETF directorates, the RFCs, the XEPs. # I could talk about working for Isode, directly on XMPP servers used by government and military. # But let me make this simpler for you: self.sendMessage(msg['from'], 'yes', mtype='chat') elif 'type ok to begin' in msg['body']: # This one says yes or no. But expects ok... self.sendMessage(msg['from'], 'ok', mtype='chat') elif 'Would you like to vote on the current topic' in msg['body']: # Special case this so we don't need to ask the user. self.sendMessage(msg['from'], 'yes', mtype='chat') elif 'yes or no' in msg['body']: print msg['body'] self.sendMessage(msg['from'], raw_input('Yes or no? '), mtype='chat') else: import sys sys.exit() # Rough, but we're done. def start(self, evt): self.get_roster() self.send_presence(ppriority=-1, pstatus='VotingAid') self.sendMessage(MEMBERBOT, "Hello!", mtype='chat') def main(): import getpass # Setup logging. logging.basicConfig(level=logging.DEBUG, format='%(levelname)-8s %(message)s') tmp = VotingAid(raw_input('Jid: '), getpass.getpass('Password: ')) tmp.connect() while True: tmp.process(block=True) if __name__ == '__main__': main()