nuove funzioni per gestione delle date anche nella memoria

This commit is contained in:
Enrico Fasoli 2015-04-24 17:37:05 +02:00
parent 59be447685
commit e80b2b864e
4 changed files with 48 additions and 11 deletions

View File

@ -39,6 +39,7 @@ cosaCePerIl = (day,res) ->
res.send "non c'è niente segnato sull'agenda per il "+day
else
res.send "ecco cosa c'è per doma: "+data.join('; ')
module.exports = (robot) ->
robot.respond /cosa c'è per domani?/i, (res) ->
cosaCePerIl moment().add(1, 'days').format('YYYY-MM-DD'), res

View File

@ -1,3 +1,6 @@
moment = require 'moment'
moment.locale 'it'
module.exports = (robot) ->
robot.respond /ricorda(?:ti)? (?:che )?(.+) ([=è]|sono) (.+)/i, (res) ->
mem = robot.brain.get('memoria') or {}
@ -9,25 +12,46 @@ module.exports = (robot) ->
res.send 'non sapevo che '+name+' '+r+' '+definition+'. Me lo ricorderò'
mem[name] = definition
robot.brain.set 'memoria', mem
robot.respond /dimentica(?:ti)? (.+)/i, (res) ->
mem = robot.brain.get('memoria') or {}
m = res.match[1].toLowerCase()
nonso = ['non so cosa sia','BZBZ 404-NOT-FOUND','non mi fa ne caldo ne freddo','se sapessi cos\'è magari']
if mem[m]?
res.send 'cancellazione neuronale in corso...'
delete mem[m]
robot.brain.set 'memoria', mem # necessary?
else res.send 'non so cosa sia'
robot.respond /(?:che )?((?:(?:(?:(?:cos|qual)\'è)|chi (?:sono|è)?))|(?:quali|cosa) sono) ([\w ]+)(?:\?)?/i, (res) ->
mem = robot.brain.get('memoria') or {}
arg = (res.match[2] or res.match[1]).toLowerCase()
verbo = res.match[1].toLowerCase().split(/[' ]/i)
verbo = verbo[verbo.length-1]
if mem[arg]
res.send arg+' '+verbo+' '+mem[arg]
else res.send 'boh'
robot.respond /memoria|a cosa stai pensando(?:\?)?/i, (res) ->
else res.send res.random nonso
robot.respond /(?:che )?(?:(?:(?:(?:(cos|qual|quand)\'è)|(?:chi (sono|è)?)))|(?:quali|cosa) sono) ([\w- ]+)(?:\?)?/i, (res) ->
query = undefined
# Estrazione query (quand,cos,qual,chi...)
if res.match[2] then query = res.match[2] or res.match[1]
else if res.match[3] and res.match[1] then query = res.match[1]
# Estrazione argomento della query
arg = (res.match[3] or res.match[2] or res.match[1]).toLowerCase()
# Controllo data
if moment(arg,'YYYY-MM-DD').isValid() and (query is 'quand' or query is 'cos')
# chiesto una data
data = moment(arg,'[il] YYYY-MM-DD')
res.send arg+' è '+data.format('dddd Do MMMM YYYY')+' ovvero '+data.fromNow()
else
# chiesto qualcosa che non è una data
mem = robot.brain.get('memoria') or {}
verbo = query.toLowerCase().split(/[' ]/i)
verbo = verbo[verbo.length-1]
if mem[arg]
# controllo se è salvata una data nell'argomento chiesto
data = moment(mem[arg],'[il] YYYY-MM-DD')
if data.isValid()
# nella memoria era salvata una data
res.send arg+' è '+data.format('dddd Do MMMM YYYY')+' ovvero '+data.fromNow()
else res.send arg+' '+verbo+' '+mem[arg]
else res.send res.random ['boh','mistero','se qualcuno me lo spiega magari','BZBZ 404-NOT-FOUND']
robot.respond /(?:mostrami la tua )?memoria|a cosa stai pensando(?:\?)?/i, (res) ->
m = robot.brain.get 'memoria'
if m isnt null
r = ['ho studiato', 'ho imparato', 'ho appreso', 'sono venuto a conoscenza di']
res.send 'nel corso della mia vita '+res.random(r)+' '+(i for i of m).join(', ')
else res.send 'non so niente...'
else res.send res.random ['non so niente...', 'ignoranza proprio']

7
scripts/tempo.coffee Normal file
View File

@ -0,0 +1,7 @@
moment = require 'moment'
moment.locale 'it'
module.exports = (robot) ->
robot.respond /quanto manca (?:al)? (\d+-\d+-\d+)(?:\?)?/, (res) ->
m = moment(res.match[1],'YYYY-MM-DD').fromNow()
res.send 'il '+res.match[1]+' è '+m

5
scripts/time.coffee Normal file
View File

@ -0,0 +1,5 @@
moment = require 'moment'
module.exports = (robot) ->
robot.respond /che ore sono(?:\?)?/i, (res) ->
res.send moment().format('dddd Do MMMM YYYY H:MM:SS')