Fix spaces/tabs in kosbot.py

This commit is contained in:
2014-08-04 13:52:47 +01:00
parent 3f1334794b
commit fd50d4db4e

100
kosbot.py
View File

@@ -5,70 +5,70 @@ from urlparse import urljoin
class KOSCheckBot(sleekxmpp.ClientXMPP): class KOSCheckBot(sleekxmpp.ClientXMPP):
KOS_API_URL = 'http://kos.cva-eve.org/api/' KOS_API_URL = 'http://kos.cva-eve.org/api/'
def __init__(self, jid, password, rooms, nickname): def __init__(self, jid, password, rooms, nickname):
sleekxmpp.ClientXMPP.__init__(self, jid, password) sleekxmpp.ClientXMPP.__init__(self, jid, password)
self.rooms = rooms self.rooms = rooms
self.nickname = nickname self.nickname = nickname
self.add_event_handler('session_start', self.session_start) self.add_event_handler('session_start', self.session_start)
self.add_event_handler('groupchat_message', self.muc_message) self.add_event_handler('groupchat_message', self.muc_message)
def session_start(self, event): def session_start(self, event):
for room in self.rooms: for room in self.rooms:
self.plugin['xep_0045'].joinMUC(room, self.nickname, wait=True) self.plugin['xep_0045'].joinMUC(room, self.nickname, wait=True)
def muc_message(self, msg): def muc_message(self, msg):
if msg['mucnick'] == self.nickname or msg['body'][0] != '!': if msg['mucnick'] == self.nickname or msg['body'][0] != '!':
return return
cmd = msg['body'].split(' ')[0][1:] cmd = msg['body'].split(' ')[0][1:]
args = msg['body'].split(' ')[1:] args = msg['body'].split(' ')[1:]
if cmd == 'kos': if cmd == 'kos':
return self.cmd_kos(msg, cmd, args) return self.cmd_kos(msg, cmd, args)
def cmd_kos(self, msg, cmd, args) def cmd_kos(self, msg, cmd, args)
arg = ' '.join(args) arg = ' '.join(args)
resp = requests.get(urljoin(KOS_API_URL, params={ resp = requests.get(urljoin(KOS_API_URL, params={
'c': 'json', 'c': 'json',
'q': arg 'q': arg
}) })
if resp.status_code != requests.codes.ok: if resp.status_code != requests.codes.ok:
return "Something went wrong (Error %s)" % resp.status_code return "Something went wrong (Error %s)" % resp.status_code
try: try:
data = resp.json() data = resp.json()
except: except:
return "KOS API returned invalid data." return "KOS API returned invalid data."
if data['message'] != 'OK': if data['message'] != 'OK':
return "KOS API returned an error." return "KOS API returned an error."
if data['total'] == 0: if data['total'] == 0:
return "KOS returned no results (Not on KOS)" return "KOS returned no results (Not on KOS)"
results = [] results = []
for result in data['results'] for result in data['results']
text = '%s (%s) - %s'.format( text = '%s (%s) - %s'.format(
result['label'], result['label'],
result['type'], result['type'],
'KOS' if result['kos'] else 'Not KOS' 'KOS' if result['kos'] else 'Not KOS'
) )
results.append(text) results.append(text)
return '\n'.join(results) return '\n'.join(results)
if __name__ == '__main__': if __name__ == '__main__':
jid = os.environ.get('KOSBOT_JID') jid = os.environ.get('KOSBOT_JID')
password = os.environ.get('KOSBOT_PASSWORD') password = os.environ.get('KOSBOT_PASSWORD')
nickname = os.environ.get('KOSBOT_NICKNAME', 'KOSBot') nickname = os.environ.get('KOSBOT_NICKNAME', 'KOSBot')
rooms = os.environ.get('KOSBOT_CHANNELS') rooms = os.environ.get('KOSBOT_CHANNELS')
rooms = [x.strip() for x in rooms.split(',')] rooms = [x.strip() for x in rooms.split(',')]
bot = KOSCheckBot(jid, password, rooms, nickname) bot = KOSCheckBot(jid, password, rooms, nickname)
bot.register_plugin('xep_0030') # Service Discovery bot.register_plugin('xep_0030') # Service Discovery
bot.register_plugin('xep_0045') # Multi-User Chat bot.register_plugin('xep_0045') # Multi-User Chat
bot.register_plugin('xep_0199') # XMPP Ping bot.register_plugin('xep_0199') # XMPP Ping
if bot.connect(): if bot.connect():
bot.process(block=True) bot.process(block=True)