bender-bot 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|