| |
1 import bt as Bt |
| |
2 |
| |
3 ModuleData = { |
| |
4 'commands': |
| |
5 [ |
| |
6 { |
| |
7 'name': 'ticket', |
| |
8 'description': 'Gets ticket info', |
| |
9 'args': '<ticket>', |
| |
10 'level': 'normal', |
| |
11 }, |
| |
12 |
| |
13 { |
| |
14 'name': 'testannounce', |
| |
15 'description': 'Tests the ticket announcer', |
| |
16 'args': '<recipient> <message...>', |
| |
17 'level': 'admin', |
| |
18 }, |
| |
19 ] |
| |
20 } |
| |
21 |
| |
22 def get_ticket_data (bot, replyto, ticket, withlink): |
| |
23 if suds_active == False: |
| |
24 return |
| |
25 |
| |
26 data = {} |
| |
27 try: |
| |
28 data = bt_getissue (ticket) |
| |
29 except Exception, e: |
| |
30 bot.privmsg (replyto, "Failed to get info for issue %s: %s" % (ticket, `e`)) |
| |
31 |
| |
32 if data: |
| |
33 if data['view_state']['name'] == 'private': |
| |
34 allowprivate = False |
| |
35 |
| |
36 for channel in bot.channels: |
| |
37 if channel.get_value ('name') == replyto and channel.get_value ('btprivate', False): |
| |
38 allowprivate = True |
| |
39 break |
| |
40 #fi |
| |
41 #done |
| |
42 |
| |
43 if not allowprivate: |
| |
44 bot.privmsg (replyto, 'Error: ticket %s is private' % ticket) |
| |
45 return |
| |
46 #fi |
| |
47 #fi |
| |
48 |
| |
49 bot.privmsg (replyto, "Issue %s: %s: Reporter: %s, assigned to: %s, status: %s (%s)" % \ |
| |
50 (ticket, \ |
| |
51 data.summary, \ |
| |
52 data.reporter.name if hasattr (data.reporter, 'name') else "<unknown>", \ |
| |
53 data.handler.name if hasattr (data, 'handler') else "nobody", \ |
| |
54 data.status.name, \ |
| |
55 data.resolution.name)) |
| |
56 |
| |
57 if withlink: |
| |
58 bot.privmsg (replyto, "Read all about it here: " + bot.get_ticket_url (ticket)) |
| |
59 #fi |
| |
60 #fi |
| |
61 #enddef |
| |
62 |
| |
63 def cmd_ticket (bot, args, **rest): |
| |
64 Bt.get_ticket_data (bot, replyto, args['ticket'], True) |
| |
65 |
| |
66 def cmd_testannounce (bot, args, **rest); |
| |
67 elif command == 'testannounce': |
| |
68 check_admin (sender, ident, host, command) |
| |
69 if len(args) != 1: |
| |
70 raise logical_exception ("usage: .%s <ticket>" % command) |
| |
71 self.announce_ticket (bt_getissue (args[0])) |