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 res.send "non c'è niente segnato sull'agenda per il "+day
else else
res.send "ecco cosa c'è per doma: "+data.join('; ') res.send "ecco cosa c'è per doma: "+data.join('; ')
module.exports = (robot) -> module.exports = (robot) ->
robot.respond /cosa c'è per domani?/i, (res) -> robot.respond /cosa c'è per domani?/i, (res) ->
cosaCePerIl moment().add(1, 'days').format('YYYY-MM-DD'), 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) -> module.exports = (robot) ->
robot.respond /ricorda(?:ti)? (?:che )?(.+) ([=è]|sono) (.+)/i, (res) -> robot.respond /ricorda(?:ti)? (?:che )?(.+) ([=è]|sono) (.+)/i, (res) ->
mem = robot.brain.get('memoria') or {} mem = robot.brain.get('memoria') or {}
@ -9,25 +12,46 @@ module.exports = (robot) ->
res.send 'non sapevo che '+name+' '+r+' '+definition+'. Me lo ricorderò' res.send 'non sapevo che '+name+' '+r+' '+definition+'. Me lo ricorderò'
mem[name] = definition mem[name] = definition
robot.brain.set 'memoria', mem robot.brain.set 'memoria', mem
robot.respond /dimentica(?:ti)? (.+)/i, (res) -> robot.respond /dimentica(?:ti)? (.+)/i, (res) ->
mem = robot.brain.get('memoria') or {} mem = robot.brain.get('memoria') or {}
m = res.match[1].toLowerCase() 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]? if mem[m]?
res.send 'cancellazione neuronale in corso...' res.send 'cancellazione neuronale in corso...'
delete mem[m] delete mem[m]
robot.brain.set 'memoria', mem # necessary? robot.brain.set 'memoria', mem # necessary?
else res.send 'non so cosa sia' else res.send res.random nonso
robot.respond /(?:che )?((?:(?:(?:(?:cos|qual)\'è)|chi (?:sono|è)?))|(?:quali|cosa) sono) ([\w ]+)(?:\?)?/i, (res) ->
mem = robot.brain.get('memoria') or {} robot.respond /(?:che )?(?:(?:(?:(?:(cos|qual|quand)\'è)|(?:chi (sono|è)?)))|(?:quali|cosa) sono) ([\w- ]+)(?:\?)?/i, (res) ->
arg = (res.match[2] or res.match[1]).toLowerCase() query = undefined
verbo = res.match[1].toLowerCase().split(/[' ]/i) # Estrazione query (quand,cos,qual,chi...)
verbo = verbo[verbo.length-1] if res.match[2] then query = res.match[2] or res.match[1]
if mem[arg] else if res.match[3] and res.match[1] then query = res.match[1]
res.send arg+' '+verbo+' '+mem[arg] # Estrazione argomento della query
else res.send 'boh' arg = (res.match[3] or res.match[2] or res.match[1]).toLowerCase()
robot.respond /memoria|a cosa stai pensando(?:\?)?/i, (res) -> # 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' m = robot.brain.get 'memoria'
if m isnt null if m isnt null
r = ['ho studiato', 'ho imparato', 'ho appreso', 'sono venuto a conoscenza di'] 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(', ') 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')