2015-04-26 04:05:44 +02:00
|
|
|
# Description:
|
|
|
|
# permette di internare persone nel campo di Diliberti
|
|
|
|
#
|
|
|
|
# Configuration:
|
|
|
|
# None
|
|
|
|
#
|
|
|
|
# Commands:
|
|
|
|
# hubot interna <nome> - interna una persona
|
2015-04-26 04:13:34 +02:00
|
|
|
# hubot libera <nome> - libera una persona
|
2015-05-04 23:38:47 +02:00
|
|
|
# hubot liberami - prova a liberarti
|
2015-04-26 16:26:33 +02:00
|
|
|
# hubot lista/mostrami (gli) internati - mostra la lista di internati
|
2015-04-26 04:05:44 +02:00
|
|
|
#
|
|
|
|
# Author:
|
|
|
|
# Ravinder Pal Singh
|
|
|
|
#
|
|
|
|
|
2015-05-04 22:33:04 +02:00
|
|
|
lev = require 'fast-levenshtein'
|
|
|
|
|
2015-04-26 04:05:44 +02:00
|
|
|
module.exports = (robot) ->
|
|
|
|
robot.respond /interna (.+)/i, (res) ->
|
|
|
|
mem = robot.brain.get('internati') or {}
|
2015-04-26 16:26:33 +02:00
|
|
|
name = res.match[1].toLowerCase()
|
|
|
|
exp1 = ['ho sbattuto dentro', 'come vuoi, sbattiamo dentro', 'è la tua fine']
|
2015-04-26 04:05:44 +02:00
|
|
|
if mem[name]?
|
2015-04-26 16:26:33 +02:00
|
|
|
if mem[name].da
|
|
|
|
intern = mem[name].da.name
|
|
|
|
res.send 'Mi dispiace ma '+name+' è già stato internato su ordine di '+intern
|
|
|
|
else res.send 'Mi dispiace ma '+name+' è già stato internato...'
|
2015-04-26 04:05:44 +02:00
|
|
|
else
|
2015-05-04 22:33:04 +02:00
|
|
|
if name.match /(?:dili(?:bert(?:i)?)?)|(?:ros(?:y|ario))|dre$/i
|
2015-04-26 16:26:33 +02:00
|
|
|
# Diliberti
|
2015-04-26 04:05:44 +02:00
|
|
|
res.send 'non posso internare il mio padrone...'
|
2015-04-26 16:26:33 +02:00
|
|
|
else if name.match /fa(?:zo|soli)/i
|
|
|
|
# Fasoli
|
2015-04-26 04:05:44 +02:00
|
|
|
res.send 'ciccio, io internerei te al posto suo'
|
2015-04-26 16:26:33 +02:00
|
|
|
else if name.match /as(?:sa|jon|sion(?:e|i))/i
|
|
|
|
# Asjon
|
2015-04-26 04:05:44 +02:00
|
|
|
res.send 'ma sei scemo????'
|
|
|
|
else
|
2015-04-26 04:13:34 +02:00
|
|
|
res.send res.random(exp1)+' '+name
|
2015-04-26 16:26:33 +02:00
|
|
|
# Salvo chi ha internato
|
|
|
|
mem[name] = { da: res.message.user }
|
|
|
|
console.log res.message.user, mem[name]
|
2015-04-26 04:05:44 +02:00
|
|
|
robot.brain.set 'internati', mem
|
|
|
|
|
2015-04-26 16:26:33 +02:00
|
|
|
robot.respond /libera (.+)/i, (res) ->
|
2015-04-26 04:05:44 +02:00
|
|
|
mem = robot.brain.get('internati') or {}
|
2015-05-04 22:33:04 +02:00
|
|
|
user = res.message.user.name.toLowerCase().split '_'
|
|
|
|
name = res.match[1].toLowerCase()
|
|
|
|
if (Math.min.apply @, user.map (x) -> lev.get(name, x)) < 4
|
|
|
|
reply = ['ti volevi liberare, eh? non sono mica scemo',
|
|
|
|
'si certo, come no.', 'neanche per sogno', 'scordatelo']
|
|
|
|
res.send res.random reply
|
|
|
|
else if mem[name]?
|
|
|
|
res.send 'ho liberato '+name+' ma ricordate che potete sbatterlo dentro quando volete ;)'
|
|
|
|
delete mem[name]
|
2015-04-26 04:05:44 +02:00
|
|
|
robot.brain.set 'internati', mem
|
2015-05-04 22:33:04 +02:00
|
|
|
else res.send res.random ['chi?', 'mai sentito', 'sorry, non è qui', 'e chi sarebbe?']
|
2015-04-26 04:05:44 +02:00
|
|
|
|
2015-05-04 23:38:47 +02:00
|
|
|
robot.respond /liberami/i, (res) ->
|
2015-05-05 21:14:11 +02:00
|
|
|
nope = ["I'm sorry Dave, I'm afraid I can't do that", 'contaci',
|
|
|
|
'smettila', 'basta', 'non credo proprio','devo chiedere al mio padrone']
|
|
|
|
ok = ['è il tuo giorno fortunato. non farti più vedere',
|
|
|
|
'mi hai stufato: sai cosa faccio? ti libero',
|
|
|
|
'va bene, mi hai stancato. vattene ma non dire niente a diliberti']
|
2015-05-04 23:38:47 +02:00
|
|
|
user = res.message.user.name.toLowerCase().split '_'
|
|
|
|
mem = robot.brain.get 'internati' or {}
|
2015-05-06 00:19:05 +02:00
|
|
|
dists = ([(Math.min.apply @, user.map (x) -> lev.get name, x), name] for name of mem)
|
|
|
|
[dist, name] = dists.reduce (x, y) -> if x[0] < y[0] then x else y
|
|
|
|
if dist < 4
|
2015-05-05 21:14:11 +02:00
|
|
|
if Math.random() < 0.02
|
|
|
|
res.send res.random ok
|
2015-05-06 00:19:05 +02:00
|
|
|
delete mem[name]
|
2015-05-05 21:14:11 +02:00
|
|
|
robot.brain.set 'internati', mem
|
|
|
|
else
|
|
|
|
res.send res.random nope
|
2015-05-04 23:38:47 +02:00
|
|
|
else
|
|
|
|
res.send 'ma non sei un prigioniero! ti posso internare se vuoi...'
|
|
|
|
|
2015-04-26 16:26:33 +02:00
|
|
|
robot.respond /internati-dump/i, (res) ->
|
2015-04-26 04:05:44 +02:00
|
|
|
res.send JSON.stringify robot.brain.get('internati')
|
|
|
|
|
2015-04-26 16:26:33 +02:00
|
|
|
robot.respond /(?:(?:(?:dimmi|mostrami) )|(?:lista ))?(?:gli )?internat(?:i|o)(?:\?)?/i, (res) ->
|
2015-05-04 22:33:04 +02:00
|
|
|
mem = robot.brain.get 'internati'
|
|
|
|
if mem isnt null
|
2015-04-26 04:13:34 +02:00
|
|
|
r = ['ho internato', 'ho preso', 'ho catturato', 'sbattuto dentro']
|
2015-05-04 22:33:04 +02:00
|
|
|
res.send 'negli ultimi giorni '+res.random(r)+' '+(i for i of mem).join(', ')
|
2015-04-26 04:13:34 +02:00
|
|
|
else res.send res.random ['sorry, nessun prigioniero...', 'nessuno. mandatemi subito qualcuno']
|