mod_bt.py

changeset 72
2266d6d73de3
child 73
d67cc4fbc3f1
equal deleted inserted replaced
67:f8cc57c608e2 72:2266d6d73de3
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]))

mercurial