Add doge module
This commit is contained in:
parent
eb1006c2a6
commit
ccbfded8ea
42
scripts/doge.coffee
Normal file
42
scripts/doge.coffee
Normal file
@ -0,0 +1,42 @@
|
||||
# Description:
|
||||
# Doge meme generator
|
||||
# Requires hubot-tg adapter to access message history
|
||||
#
|
||||
# Configuration:
|
||||
# Uses hubot-tg enviroment variables
|
||||
#
|
||||
# Commands
|
||||
# hubot doge [n] - crea un meme doge con messaggi recenti della chat
|
||||
#
|
||||
# Author:
|
||||
# Michele Guerini Rocco (rnhmjoj)
|
||||
#
|
||||
|
||||
|
||||
net = require 'net'
|
||||
|
||||
module.exports = (robot) ->
|
||||
run_command = (command, callback) ->
|
||||
client = net.connect robot.adapter.port, robot.adapter.host, ->
|
||||
client.write command+'\n'
|
||||
client.setEncoding 'utf8'
|
||||
client.on 'data', (reply) ->
|
||||
if callback?
|
||||
callback (reply.split '\n')[1..-3]
|
||||
client.end()
|
||||
|
||||
get_history = (chat, size, callback) ->
|
||||
regex = /^(?:\d+ )?\[(.+)\] (.+) [»«><]+ (.+)/
|
||||
parse_line = (x) ->
|
||||
date: x[1]
|
||||
peer: x[2].replace chat + ' ', ''
|
||||
text: x[3].trim()
|
||||
run_command "history #{chat} #{size}", (lines) ->
|
||||
callback (parse_line i.match regex for i in lines.split '\n')
|
||||
|
||||
robot.respond /doge(?: (\d+))?/, (res) ->
|
||||
n = res.match[1] || 10
|
||||
get_history res.message.room, n, (history) ->
|
||||
words = [].concat (message.text.split() for message in history)
|
||||
sample = res.random words for _ in [0..5]
|
||||
#do doge meme with sample
|
Loading…
Reference in New Issue
Block a user