bender-bot 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/bender/bot.rb +54 -17
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49c34bc7e913f7b5c58fe00c947230387c53d5d4
|
4
|
+
data.tar.gz: 6c21fdfb8a97355548f890b7c8d6c5a27a55f1df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4facedb603b3207ffd0918bbaac39722e0e00f5a03f5acf7c115b64b6edf7420c5d0dd914bb33ba282bf6aba90c7658b9079a64fca7e5bfef4b0970c2137a534
|
7
|
+
data.tar.gz: 9daa9cf4a5d88e3fb9914868cf734a5289112656119bbe571f030d58ab632b9f6f13421d377b828fa7debfd2317f643fc6232fef564c669e6920165989e80f12
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
data/lib/bender/bot.rb
CHANGED
@@ -73,14 +73,52 @@ class BenderBot
|
|
73
73
|
"I'm so embarrassed. I wish everyone else was dead!",
|
74
74
|
"Afterlife? If I thought I had to live another life, I'd kill myself right now!",
|
75
75
|
"I'm back baby!",
|
76
|
-
"LET'S GO ALREADYYYYYY!"
|
76
|
+
"LET'S GO ALREADYYYYYY!",
|
77
|
+
"I don't have emotions and sometimes that makes me very sad",
|
78
|
+
"Life is hilariously cruel"
|
77
79
|
]
|
78
80
|
|
81
|
+
COMMANDS = {
|
82
|
+
help: {
|
83
|
+
desc: 'Display this help text',
|
84
|
+
},
|
85
|
+
list: {
|
86
|
+
cmd: '',
|
87
|
+
desc: 'List open incidents'
|
88
|
+
},
|
89
|
+
close: {
|
90
|
+
fmt: 'INCIDENT_NUMBER',
|
91
|
+
desc: 'Display incident details',
|
92
|
+
},
|
93
|
+
open: {
|
94
|
+
fmt: "SEVERITY=#{SEVERITIES.keys.sort_by(&:to_i).join(',')} SUMMARY_TEXT",
|
95
|
+
desc: 'Open a new incident',
|
96
|
+
},
|
97
|
+
summary: {
|
98
|
+
desc: 'Summarize incidents from past 24 hours (open or closed)'
|
99
|
+
},
|
100
|
+
comment: {
|
101
|
+
fmt: 'INCIDENT_NUMBER COMMENT_TEXT',
|
102
|
+
desc: 'Add a comment to an incident'
|
103
|
+
}
|
104
|
+
}
|
79
105
|
|
80
106
|
def reply_html message, color=:yellow
|
81
107
|
@@hipchat[@room_name].send(nick, message, color: color)
|
82
108
|
end
|
83
109
|
|
110
|
+
def reply_with_help
|
111
|
+
help = COMMANDS.each.map do |cmd, opts|
|
112
|
+
opts[:cmd] ||= cmd
|
113
|
+
opts[:cmd] = opts[:cmd].to_s.insert(0, ' ') if opts[:cmd]
|
114
|
+
opts[:fmt] ||= ''
|
115
|
+
opts[:fmt] = opts[:fmt].to_s.insert(0, ' ') if opts[:fmt]
|
116
|
+
'<code>/inc%{cmd}%{fmt}</code> - %{desc}' % opts
|
117
|
+
end.join('<br />')
|
118
|
+
|
119
|
+
reply_html help
|
120
|
+
end
|
121
|
+
|
84
122
|
|
85
123
|
def handle room, sender, message
|
86
124
|
@room_name = @@rooms.select { |r| r.xmpp_jid == room }.first.name
|
@@ -91,6 +129,13 @@ class BenderBot
|
|
91
129
|
severity_field = SHOW_FIELDS.key 'Severity'
|
92
130
|
severities = Hash.new { |h,k| h[k] = [] }
|
93
131
|
|
132
|
+
if message =~ /\/inc\s+(\w+)?\s*/
|
133
|
+
unless COMMANDS.include? $1.to_sym
|
134
|
+
reply_html 'Invalid usage', :red
|
135
|
+
reply_with_help
|
136
|
+
return
|
137
|
+
end
|
138
|
+
end
|
94
139
|
|
95
140
|
case message
|
96
141
|
|
@@ -107,17 +152,9 @@ class BenderBot
|
|
107
152
|
m = '<b>%{nick}</b>: %{name} (<a href="mailto:%{email}">%{email}</a>)' % u
|
108
153
|
reply_html m, :purple
|
109
154
|
|
110
|
-
#
|
111
|
-
when /^\s
|
112
|
-
|
113
|
-
'<code>?inc</code> - Display this help text',
|
114
|
-
'<code>/inc</code> - List open incidents',
|
115
|
-
'<code>/inc <i>INCIDENT_NUMBER</i></code> - Display incident details',
|
116
|
-
'<code>/inc close <i>INCIDENT_NUMBER</i></code> - Close an incident',
|
117
|
-
'<code>/inc open <i>SEVERITY=1,2,3,4,5</i> <i>SUMMARY_TEXT</i></code> - Open a new incident',
|
118
|
-
'<code>/inc summary</code> - Summarize incidents from past 24 hours (open or closed)',
|
119
|
-
'<code>/inc comment <i>INCIDENT_NUMBER</i> <i>COMMENT_TEXT</i></code> - Add a comment to an incident'
|
120
|
-
].join('<br />')
|
155
|
+
# /inc help - This help text
|
156
|
+
when /^\s*(\?inc|\/inc\s+help)\s*$/
|
157
|
+
reply_with_help
|
121
158
|
|
122
159
|
# /inc - List open incidents
|
123
160
|
when /^\s*\/inc\s*$/
|
@@ -137,7 +174,7 @@ class BenderBot
|
|
137
174
|
end.compact.join('<br />')
|
138
175
|
|
139
176
|
if is.empty?
|
140
|
-
reply_html 'No open incidents at the moment!', :green
|
177
|
+
reply_html 'Good news everyone - No open incidents at the moment!', :green
|
141
178
|
else
|
142
179
|
reply_html is
|
143
180
|
end
|
@@ -256,6 +293,7 @@ class BenderBot
|
|
256
293
|
end
|
257
294
|
end
|
258
295
|
|
296
|
+
|
259
297
|
return true
|
260
298
|
end
|
261
299
|
|
@@ -448,11 +486,10 @@ private
|
|
448
486
|
end
|
449
487
|
|
450
488
|
def incident_link incident
|
451
|
-
'<a href="%s">%s
|
489
|
+
'<a href="%s">%s</a>' % [
|
452
490
|
incident_url(incident),
|
453
|
-
|
454
|
-
incident['num']
|
491
|
+
incident['key']
|
455
492
|
]
|
456
493
|
end
|
457
494
|
|
458
|
-
end
|
495
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bender-bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Clemmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|