1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | cheerio = require('cheerio')
|
23 | ent = require('ent')
|
24 |
|
25 | module.exports = (robot)->
|
26 | robot.respond /(donne moi de la )?joie( bordel)?/i, (message)->
|
27 | send_meme message, 'http://lesjoiesducode.fr/random', (text)->
|
28 | message.send text
|
29 | robot.respond /derni[èe]re joie/i, (message)->
|
30 | send_meme message, 'http://lesjoiesducode.fr', (text)->
|
31 | message.send text
|
32 | robot.respond /(give me some )?joy( asshole)?/i, (message)->
|
33 | send_meme message, 'http://thecodinglove.com/random', (text)->
|
34 | message.send text
|
35 | robot.respond /last joy/i, (message)->
|
36 | send_meme message, 'http://thecodinglove.com', (text)->
|
37 | message.send text
|
38 |
|
39 |
|
40 | send_meme = (message, location, response_handler)->
|
41 | url = location
|
42 |
|
43 | message.http(url).get() (error, response, body)->
|
44 | return response_handler "Sorry, something went wrong" if error
|
45 |
|
46 | if response.statusCode == 302 || response.statusCode == 301
|
47 | location = response.headers['location']
|
48 | return send_meme(message, location, response_handler)
|
49 |
|
50 | img_src = get_meme_image(body, ".post img")
|
51 |
|
52 | txt = get_meme_txt(body, ".post h3 a")
|
53 |
|
54 | response_handler "#{txt} #{img_src}"
|
55 |
|
56 | get_meme_image = (body, selector)->
|
57 | $ = cheerio.load(body)
|
58 | $(selector).first().attr('src')
|
59 |
|
60 | get_meme_txt = (body, selector)->
|
61 | $ = cheerio.load(body)
|
62 | ent.decode $(selector).first().text()
|