# HG changeset patch # User Teemu Piippo # Date 1431048228 -10800 # Node ID d0184734320e03fc7b9987bbcd440e0f473d2afb # Parent ad27ab7e6fb6a1b93fe11f60ca5d7d660f001f01 update diff -r ad27ab7e6fb6 -r d0184734320e .hgignore --- a/.hgignore Mon May 04 02:46:09 2015 +0300 +++ b/.hgignore Fri May 08 04:23:48 2015 +0300 @@ -5,3 +5,5 @@ *.pyc zandronum* cobalt.cfg +*.orig +*.rej diff -r ad27ab7e6fb6 -r d0184734320e bt.py --- a/bt.py Mon May 04 02:46:09 2015 +0300 +++ b/bt.py Fri May 08 04:23:48 2015 +0300 @@ -184,3 +184,8 @@ def post_note (ticket_id, message): btuser, btpassword = credentials() suds_client.service.mc_issue_note_add (btuser, btpassword, ticket_id, { 'text': message }) + +def custom_query (func, args): + btuser, btpassword = credentials() + args = [x.replace ('$user', btuser).replace ('$password', btpassword) for x in args] + return getattr (suds_client.service, func)(*args) diff -r ad27ab7e6fb6 -r d0184734320e mod_bt.py --- a/mod_bt.py Mon May 04 02:46:09 2015 +0300 +++ b/mod_bt.py Fri May 08 04:23:48 2015 +0300 @@ -51,6 +51,13 @@ 'args': None, 'level': 'admin', }, + + { + 'name': 'btsoap', + 'description': 'Sends a custom SOAP query', + 'args': ' [args...]', + 'level': 'admin', + }, ] } @@ -61,4 +68,10 @@ Bt.announce_new_issue (bot, Bt.get_issue (args['ticket'])) def cmd_checkbt (bot, **rest): - Bt.poll() \ No newline at end of file + Bt.poll() + +def cmd_btsoap (bot, args, reply, **rest): + result = Bt.custom_query (args['func'], args['args'].split (' ') if 'args' in args else []) + + for line in result.splitlines(): + reply (line) \ No newline at end of file