Skip to content

Commit 6fc8b27

Browse files
committed
Merge pull request #1 from UCSD-TIES/statusScript
Added status script to check uptime
2 parents 8d71163 + 9e96e70 commit 6fc8b27

File tree

6 files changed

+167
-3
lines changed

6 files changed

+167
-3
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
"optparse": "1.0.3",
2222
"nodemailer": ">= 0.3.28",
2323
"redis": ">= 0.8.1",
24-
"wobot": "0.8.0"
25-
},
24+
"wobot": "0.8.0",
25+
"ssh2": ">= 0.1.11"},
2626

2727
"engines": {
2828
"node": "0.8.x",

scripts/emailall.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ module.exports = (robot) ->
2828

2929
message = {
3030
from: 'WeHaveWeNeed Hubot <[email protected]>'
31-
to: 'team@wehaveweneed.mailgun.org'
31+
to: 'team@wehave-weneed.org'
3232
subject: "#{msg.message.user.name} sent everyone a notice message."
3333
html: "<p>Hi #{msg.message.user.name.split(" ")[0]},</p> <p><a href='https://www.hipchat.com/members/#{msg.message.user.id}'>#{msg.message.user.name}</a> just sent everyone this notice message.</p><p><b>#{msg.message.user.name.split(" ")[0]} #{msg.message.user.name.split(" ")[1][0]}:</b> #{msg.match[1]}</p>"
3434
text: "Hi #{msg.message.user.name.split(" ")[0]}, #{msg.message.user.name} just sent everyone this notice message. #{msg.message.user.name.split(" ")[0]} #{msg.message.user.name.split(" ")[1][0]}: #{msg.match[1]}"

scripts/fucksgiven.coffee

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Gives number of fucks given
2+
#
3+
module.exports = (robot) ->
4+
robot.hear /don't give a fuck/i, (msg) ->
5+
msg.send "http://i.qkme.me/3r3ek2.jpg"
6+
7+
robot.hear /gg/i, (msg) ->
8+
msg.send "http://cdn.shopify.com/s/files/1/0057/8602/products/Red03_1024x1024.jpg?0"

scripts/reddit-jokes.coffee

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Description:
2+
# # Random jokes from /r/jokes
3+
# #
4+
# # Dependencies:
5+
# # None
6+
# #
7+
# # Configuration:
8+
# # None
9+
# #
10+
# # Commands:
11+
# # hubot joke me - Pull a random joke from /r/jokes
12+
# #
13+
# # Author:
14+
# # tombell
15+
module.exports = (robot) ->
16+
17+
robot.respond /joke me/i, (msg) ->
18+
msg.http('http://www.reddit.com/r/jokes.json')
19+
.get() (err, res, body) ->
20+
try
21+
data = JSON.parse body
22+
children = data.data.children
23+
joke = msg.random(children).data
24+
25+
if joke.selftext.match /^\.\.\./
26+
joketext = joke.title.replace(/\*\.\.\.$/,'') + ' ' + joke.selftext.replace(/^\.\.\.\s*/, '')
27+
else
28+
joketext = joke.selftext
29+
30+
msg.send joketext.trim()
31+
32+
catch ex
33+
msg.send "Erm, something went EXTREMELY wrong - #{ex}"

scripts/status.coffee

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Description:
2+
# An additional functionality that lets hubot communicate with servers and be able to grab system data from those servers
3+
#
4+
# Dependencies:
5+
# SSH2 (https://github.com/mscdex/ssh2)
6+
#
7+
# Configuration:
8+
#
9+
# Commands:
10+
# hubot status - replies with uptime of staging (for now)
11+
ConnectServ = require("ssh2")
12+
13+
module.exports = (robot) ->
14+
robot.respond /status\s?(.*)?/i, (msg) ->
15+
if msg.match[1] == 'stagedb'
16+
envhost = process.env['STAGING_SSH_HOST']
17+
envport = process.env['STAGING_DB_SSH_PORT']
18+
envuser = process.env['STAGING_DB_SSH_USER']
19+
envprivatekey = process.env['PRIVATEKEY']
20+
21+
if msg.match[1] == 'stagepy'
22+
envhost = process.env['STAGING_SSH_HOST']
23+
envport = process.env['STAGING_PY_SSH_PORT']
24+
envuser = process.env['STAGING_PY_SSH_USER']
25+
envprivatekey = process.env['PRIVATEKEY']
26+
27+
if msg.match[1] == 'stageq'
28+
envhost = process.env['STAGING_SSH_HOST']
29+
envport = process.env['STAGING_Q_SSH_PORT']
30+
envuser = process.env['STAGING_Q_SSH_USER']
31+
envprivatekey = process.env['PRIVATEKEY']
32+
33+
if msg.match[1] == 'stageworkers'
34+
envhost = process.env['STAGING_SSH_HOST']
35+
envport = process.env['STAGING_WORKERS_SSH_PORT']
36+
envuser = process.env['STAGING_WORKERS_SSH_USER']
37+
envprivatekey = process.env['PRIVATEKEY']
38+
39+
if msg.match[1] == 'proddb'
40+
envhost = process.env['PROD_SSH_HOST']
41+
envport = process.env['PROD_DB_SSH_PORT']
42+
envuser = process.env['PROD_DB_SSH_USER']
43+
envprivatekey = process.env['PRIVATEKEY']
44+
45+
if msg.match[1] == 'prodpy'
46+
envhost = process.env['PROD_SSH_HOST']
47+
envport = process.env['PROD_PY_SSH_PORT']
48+
envuser = process.env['PROD_PY_SSH_USER']
49+
envprivatekey = process.env['PRIVATEKEY']
50+
51+
if msg.match[1] == 'prodq'
52+
envhost = process.env['PROD_SSH_HOST']
53+
envport = process.env['PROD_Q_SSH_PORT']
54+
envuser = process.env['PROD_Q_SSH_USER']
55+
envprivatekey = process.env['PRIVATEKEY']
56+
57+
if msg.match[1] == 'prodworkers'
58+
envhost = process.env['PROD_SSH_HOST']
59+
envport = process.env['PROD_WORKERS_SSH_PORT']
60+
envuser = process.env['PROD_WORKERS_SSH_USER']
61+
envprivatekey = process.env['PRIVATEKEY']
62+
63+
64+
65+
moo = ""
66+
c = new ConnectServ()
67+
c.on "connect", ->
68+
69+
c.on "ready", ->
70+
c.exec "uptime", (err, stream) ->
71+
throw err if err
72+
stream.on "data", (data, extended) ->
73+
console.log ((if extended is "stderr" then "STDERR: " else "STDOUT: ")) + data
74+
moo = data.toString('utf-8')
75+
76+
stream.on "exit", (code, signal) ->
77+
c.end()
78+
79+
c.on "error", (err) ->
80+
console.log "Connection :: error :: " + err
81+
82+
c.on "end", ->
83+
console.log "Connection :: end"
84+
85+
c.on "close", (had_error) ->
86+
console.log "Connection :: close"
87+
msg.send moo
88+
89+
c.connect
90+
host: envhost
91+
port: envport
92+
username: envuser
93+
privateKey: envprivatekey
94+
#msg.send moo

scripts/xkcd.coffee

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#Description:
2+
# Grab XKCD comic image urls
3+
#
4+
# Dependencies:
5+
# None
6+
#
7+
# Configuration:
8+
# None
9+
#
10+
# Commands:
11+
# hubot xkcd - The latest XKCD comic
12+
# hubot xkcd <num> - XKCD comic <num>
13+
#
14+
# Author:
15+
# twe4ked
16+
module.exports = (robot) ->
17+
robot.respond /xkcd\s?(\d+)?/i, (msg) ->
18+
if msg.match[1] == undefined
19+
num = ''
20+
else
21+
num = "#{msg.match[1]}/"
22+
23+
msg.http("http://xkcd.com/#{num}info.0.json")
24+
.get() (err, res, body) ->
25+
if res.statusCode == 404
26+
msg.send 'Comic not found.'
27+
else
28+
object = JSON.parse(body)
29+
msg.send object.title, object.img, object.alt

0 commit comments

Comments
 (0)