Improved module iternamento
Fix partial matches in Diliberti's regex Use Levenshtein distance to check if someone is trying to free himself.
This commit is contained in:
parent
bf43addbcf
commit
5ea17912a7
@ -9,6 +9,7 @@
|
|||||||
"cheerio": "^0.19.0",
|
"cheerio": "^0.19.0",
|
||||||
"coffee-coverage": "^0.4.6",
|
"coffee-coverage": "^0.4.6",
|
||||||
"coffee-script": "^1.9.2",
|
"coffee-script": "^1.9.2",
|
||||||
|
"fast-levenshtein": "^1.0.6",
|
||||||
"github": "^0.2.4",
|
"github": "^0.2.4",
|
||||||
"htmlparser": "^1.7.7",
|
"htmlparser": "^1.7.7",
|
||||||
"hubot": "^2.12.0",
|
"hubot": "^2.12.0",
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
# Ravinder Pal Singh
|
# Ravinder Pal Singh
|
||||||
#
|
#
|
||||||
|
|
||||||
|
lev = require 'fast-levenshtein'
|
||||||
|
|
||||||
module.exports = (robot) ->
|
module.exports = (robot) ->
|
||||||
robot.respond /interna (.+)/i, (res) ->
|
robot.respond /interna (.+)/i, (res) ->
|
||||||
mem = robot.brain.get('internati') or {}
|
mem = robot.brain.get('internati') or {}
|
||||||
@ -24,7 +26,7 @@ module.exports = (robot) ->
|
|||||||
res.send 'Mi dispiace ma '+name+' è già stato internato su ordine di '+intern
|
res.send 'Mi dispiace ma '+name+' è già stato internato su ordine di '+intern
|
||||||
else res.send 'Mi dispiace ma '+name+' è già stato internato...'
|
else res.send 'Mi dispiace ma '+name+' è già stato internato...'
|
||||||
else
|
else
|
||||||
if name.match /(?:dili(?:bert(?:i)?)?)|(?:ros(?:y|ario))|dre/i
|
if name.match /(?:dili(?:bert(?:i)?)?)|(?:ros(?:y|ario))|dre$/i
|
||||||
# Diliberti
|
# Diliberti
|
||||||
res.send 'non posso internare il mio padrone...'
|
res.send 'non posso internare il mio padrone...'
|
||||||
else if name.match /fa(?:zo|soli)/i
|
else if name.match /fa(?:zo|soli)/i
|
||||||
@ -42,20 +44,24 @@ module.exports = (robot) ->
|
|||||||
|
|
||||||
robot.respond /libera (.+)/i, (res) ->
|
robot.respond /libera (.+)/i, (res) ->
|
||||||
mem = robot.brain.get('internati') or {}
|
mem = robot.brain.get('internati') or {}
|
||||||
m = res.match[1].toLowerCase()
|
user = res.message.user.name.toLowerCase().split '_'
|
||||||
boh = ['sorry non è qui','troppo tardi','ti piacerebbe, eh?', 'scordatelo']
|
name = res.match[1].toLowerCase()
|
||||||
if mem[m]?
|
if (Math.min.apply @, user.map (x) -> lev.get(name, x)) < 4
|
||||||
res.send 'ho liberato '+m+' ma ricordate che potete sbatterlo dentro quando volete ;)'
|
reply = ['ti volevi liberare, eh? non sono mica scemo',
|
||||||
delete mem[m]
|
'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]
|
||||||
robot.brain.set 'internati', mem
|
robot.brain.set 'internati', mem
|
||||||
else res.send res.random boh
|
else res.send res.random ['chi?', 'mai sentito', 'sorry, non è qui', 'e chi sarebbe?']
|
||||||
|
|
||||||
robot.respond /internati-dump/i, (res) ->
|
robot.respond /internati-dump/i, (res) ->
|
||||||
res.send JSON.stringify robot.brain.get('internati')
|
res.send JSON.stringify robot.brain.get('internati')
|
||||||
|
|
||||||
robot.respond /(?:(?:(?:dimmi|mostrami) )|(?:lista ))?(?:gli )?internat(?:i|o)(?:\?)?/i, (res) ->
|
robot.respond /(?:(?:(?:dimmi|mostrami) )|(?:lista ))?(?:gli )?internat(?:i|o)(?:\?)?/i, (res) ->
|
||||||
m = robot.brain.get 'internati'
|
mem = robot.brain.get 'internati'
|
||||||
if m isnt null
|
if mem isnt null
|
||||||
r = ['ho internato', 'ho preso', 'ho catturato', 'sbattuto dentro']
|
r = ['ho internato', 'ho preso', 'ho catturato', 'sbattuto dentro']
|
||||||
res.send 'negli ultimi giorni '+res.random(r)+' '+(i for i of m).join(', ')
|
res.send 'negli ultimi giorni '+res.random(r)+' '+(i for i of mem).join(', ')
|
||||||
else res.send res.random ['sorry, nessun prigioniero...', 'nessuno. mandatemi subito qualcuno']
|
else res.send res.random ['sorry, nessun prigioniero...', 'nessuno. mandatemi subito qualcuno']
|
||||||
|
Loading…
Reference in New Issue
Block a user