inserito orario scolastico e lista interrogati
This commit is contained in:
parent
44009bf9d9
commit
7f72de7cd1
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,6 +6,7 @@ hubot.lua
|
|||||||
run.sh
|
run.sh
|
||||||
run_telegram.sh
|
run_telegram.sh
|
||||||
*.pub
|
*.pub
|
||||||
|
config/
|
||||||
coverage/
|
coverage/
|
||||||
.telegram/
|
.telegram/
|
||||||
telegram.config
|
telegram.config
|
||||||
|
@ -65,8 +65,8 @@ Asjon dispone di alcuni test d'integrità nella cartella `test/`.
|
|||||||
Per eseguirli, occorre:
|
Per eseguirli, occorre:
|
||||||
|
|
||||||
1. installare [mocha](http://mochajs.org) tramite `npm install -g mocha` (potrebbe essere necessario sudo)
|
1. installare [mocha](http://mochajs.org) tramite `npm install -g mocha` (potrebbe essere necessario sudo)
|
||||||
1. installare le dipendenze di sviluppo tramite `npm install --dev`
|
|
||||||
1. lanciare i test tramite `npm test` dalla cartella della repo
|
1. lanciare i test tramite `npm test` dalla cartella della repo
|
||||||
|
1. opzionalmente è possibile generare i report di copertura dei test usando `npm run coverage-html` o `npm run coverage-json` in base al formato desiderato.
|
||||||
|
|
||||||
__Nota Bene:__ è opportuno __eseguire sempre i test d'integrità prima di contribuire una modifica__. Ancora meglio sarebbe
|
__Nota Bene:__ è opportuno __eseguire sempre i test d'integrità prima di contribuire una modifica__. Ancora meglio sarebbe
|
||||||
allegare dei test di integrità insieme alle nuove funzioni aggiunte
|
allegare dei test di integrità insieme alle nuove funzioni aggiunte
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
PYTHON=python2 npm install
|
|
||||||
export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
|
export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
|
||||||
|
|
||||||
DEBUG=nightmare PYTHON=python2 node_modules/.bin/hubot --name "asjon" --alias "assa" "$@"
|
DEBUG=nightmare PYTHON=python2 node_modules/.bin/hubot --name "asjon" --alias "assa" "$@"
|
||||||
|
@ -35,11 +35,6 @@
|
|||||||
"weak": "^0.4.0",
|
"weak": "^0.4.0",
|
||||||
"wolfram": "^0.3.1"
|
"wolfram": "^0.3.1"
|
||||||
},
|
},
|
||||||
"config": {
|
|
||||||
"blanket": {
|
|
||||||
"pattern": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"coverage-html": "mkdir -p coverage && mocha test/ --require coffee-coverage/register --compilers coffee:coffee-script/register -R html-cov scripts/ > coverage/coverage.html",
|
"coverage-html": "mkdir -p coverage && mocha test/ --require coffee-coverage/register --compilers coffee:coffee-script/register -R html-cov scripts/ > coverage/coverage.html",
|
||||||
"coverage-json": "mkdir -p coverage && mocha test/ --require coffee-coverage/register --compilers coffee:coffee-script/register -R json-cov scripts/ > coverage/coverage.json",
|
"coverage-json": "mkdir -p coverage && mocha test/ --require coffee-coverage/register --compilers coffee:coffee-script/register -R json-cov scripts/ > coverage/coverage.json",
|
||||||
|
85
scripts/scuola.coffee
Normal file
85
scripts/scuola.coffee
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# Description:
|
||||||
|
# utilità per orario scolastico e interrogazioni
|
||||||
|
#
|
||||||
|
# Dependencies:
|
||||||
|
# "moment": "2.10.2"
|
||||||
|
#
|
||||||
|
# Configuration:
|
||||||
|
# None
|
||||||
|
#
|
||||||
|
# Commands:
|
||||||
|
# hubot cosa abbiamo domani?
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Enrico Fasoli (fazo96)
|
||||||
|
|
||||||
|
moment = require 'moment'
|
||||||
|
fs = require 'fs'
|
||||||
|
|
||||||
|
moment.locale 'it'
|
||||||
|
|
||||||
|
interr = undefined
|
||||||
|
orario = undefined
|
||||||
|
|
||||||
|
dateformats = ['YYYY-MM-DD','DD-MM-YYYY',"DD MMMM YYYY", "DD MMMM","DD"]
|
||||||
|
|
||||||
|
fs.readFile './config/orario.json', (err, data) ->
|
||||||
|
try
|
||||||
|
orario = JSON.parse data
|
||||||
|
catch e
|
||||||
|
console.log e
|
||||||
|
orario = undefined
|
||||||
|
|
||||||
|
fs.readFile './config/interrogazioni.json', (err, data) ->
|
||||||
|
try
|
||||||
|
interr = JSON.parse data
|
||||||
|
catch e
|
||||||
|
console.log e
|
||||||
|
interr = undefined
|
||||||
|
interr.sort (a,b) ->
|
||||||
|
if moment(a.day,'YYYY-MM-DD').isBefore(b.day,'day')
|
||||||
|
return -1
|
||||||
|
if moment(a.day,'YYYY-MM-DD').isAfter(b.day,'day')
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
module.exports = (robot) ->
|
||||||
|
robot.respond /(?:che )?cosa abbiamo (?:per )?(domani|oggi)(?:\?)?/i, (res) ->
|
||||||
|
if res.match[1] is 'domani'
|
||||||
|
index = moment().add(1, 'days').weekday()
|
||||||
|
else index = moment().weekday()
|
||||||
|
if orario?[index]?
|
||||||
|
res.send orario[index].join ', '
|
||||||
|
else res.send 'non ho informazioni per domani'
|
||||||
|
|
||||||
|
robot.respond /(?:dimmi )?(?:l\')?orario(?: scolastico)?/i, (res) ->
|
||||||
|
unless orario?.push?
|
||||||
|
return res.send 'non conosco l\'orario scolastico :('
|
||||||
|
ris = orario.map (x,i) ->
|
||||||
|
moment().weekday(i).format('dddd')+': '+x.join(', ')
|
||||||
|
res.send 'Orario scolastico della 5IA\n'+ris.join('\n')
|
||||||
|
|
||||||
|
robot.respond /interrogat(?:o|i) (oggi|domani|il (.+))(?:\?)?/i, (res) ->
|
||||||
|
unless interr?.push?
|
||||||
|
return res.send 'non conosco gli interrogati :('
|
||||||
|
if res.match[1] is 'domani'
|
||||||
|
day = moment().add(1, 'days')
|
||||||
|
else if res.match[1] is 'oggi'
|
||||||
|
day = moment()
|
||||||
|
else
|
||||||
|
q = res.match[1].replace(/il|\?/i, '')
|
||||||
|
day = moment q, dateformats
|
||||||
|
ris = interr.filter (x) ->
|
||||||
|
moment(x.day).isSame day, 'day'
|
||||||
|
ris = ris.map (x) ->
|
||||||
|
'('+x.day+') '+x.materia+': '+x.list.join(', ')
|
||||||
|
res.send ris.join('\n') or 'nessun interrogato'
|
||||||
|
|
||||||
|
robot.respond 'interrogati', (res) ->
|
||||||
|
unless interr?.push?
|
||||||
|
res.send 'non conosco gli interrogati :('
|
||||||
|
ris = interr.map (x) ->
|
||||||
|
gg = moment(x.day, 'YYYY-MM-DD')
|
||||||
|
s = gg.format('dddd Do MMMM YYYY')+' - '+gg.fromNow()
|
||||||
|
'('+s+') '+x.materia+': '+x.list.join(', ')
|
||||||
|
res.send ris.join('\n') or 'nessun interrogato'
|
Loading…
Reference in New Issue
Block a user