Remove deprecated modules
This commit is contained in:
parent
b4889339aa
commit
41b6b9b179
@ -9,6 +9,5 @@
|
|||||||
"hubot-rules",
|
"hubot-rules",
|
||||||
"hubot-shipit",
|
"hubot-shipit",
|
||||||
"hubot-bitcoin",
|
"hubot-bitcoin",
|
||||||
"hubot-youtube",
|
"hubot-youtube"
|
||||||
"hubot-9gag"
|
|
||||||
]
|
]
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
[
|
|
||||||
"aww.coffee",
|
|
||||||
"base64.coffee",
|
|
||||||
"chuck-norris.coffee",
|
|
||||||
"google.coffee",
|
|
||||||
"lyrics.coffee",
|
|
||||||
"stallman.coffee",
|
|
||||||
"hackernews.coffee"
|
|
||||||
]
|
|
@ -14,7 +14,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",
|
||||||
"hubot-9gag": "^0.2.0",
|
|
||||||
"hubot-bitcoin": "^1.0.3",
|
"hubot-bitcoin": "^1.0.3",
|
||||||
"hubot-diagnostics": "0.0.1",
|
"hubot-diagnostics": "0.0.1",
|
||||||
"hubot-google-images": "^0.1.4",
|
"hubot-google-images": "^0.1.4",
|
||||||
@ -32,12 +31,9 @@
|
|||||||
"hubot-youtube": "^0.1.2",
|
"hubot-youtube": "^0.1.2",
|
||||||
"moment": "^2.10.2",
|
"moment": "^2.10.2",
|
||||||
"needle": "^0.10.0",
|
"needle": "^0.10.0",
|
||||||
"nightmare": "^1.8.0",
|
|
||||||
"nock": "^1.7.1",
|
"nock": "^1.7.1",
|
||||||
"nodepie": "^0.6.7",
|
|
||||||
"soupselect": "^0.2.0",
|
"soupselect": "^0.2.0",
|
||||||
"valid-url": "^1.0.9",
|
"valid-url": "^1.0.9"
|
||||||
"weak": "^0.4.0"
|
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
# Description:
|
|
||||||
# si collega al registro elettronico e controlla l'agenda
|
|
||||||
#
|
|
||||||
# Dependencies:
|
|
||||||
# "cheerio": "0.19.0"
|
|
||||||
# "nightmare": "1.8.0"
|
|
||||||
# "moment": "2.10.2"
|
|
||||||
#
|
|
||||||
# Configuration:
|
|
||||||
# REGISTRO_USERNAME - username per login al registro
|
|
||||||
# REGISTRO_PASSWORD - password per login al registro
|
|
||||||
#
|
|
||||||
# Commands:
|
|
||||||
# hubot agenda (per il) (domani|il (data)) - controlla i compiti assegnati il giorno dato e l'agenda per quel giorno
|
|
||||||
# hubot che compiti ci sono? - mostra i compiti assegnati durante l'ultima settimana
|
|
||||||
#
|
|
||||||
# Author:
|
|
||||||
# Enrico Fasoli (fazo96)
|
|
||||||
#
|
|
||||||
|
|
||||||
Nightmare = require 'nightmare'
|
|
||||||
cheerio = require 'cheerio'
|
|
||||||
moment = require 'moment'
|
|
||||||
|
|
||||||
estraiCompiti = (compiti) ->
|
|
||||||
extractorCompiti = ->
|
|
||||||
col = $($('td',this).get(1)).text().trim()
|
|
||||||
arr = col.split(/(?:\s+)Materia: /i)
|
|
||||||
if $('td',this).get(1)?
|
|
||||||
data: $($('td',this).get(0)).text().trim()
|
|
||||||
text: arr[0], materia: arr[1]
|
|
||||||
else {}
|
|
||||||
$ = cheerio.load compiti
|
|
||||||
return $('.result_table tr').map(extractorCompiti).get().filter (c) -> c.text?
|
|
||||||
|
|
||||||
estraiAgenda = (agenda) ->
|
|
||||||
extractorAgenda = ->
|
|
||||||
if $('td',this).get(1)?
|
|
||||||
$($('td',this).get(1)).text().trim()
|
|
||||||
else "(niente)"
|
|
||||||
$ = cheerio.load agenda
|
|
||||||
tab = $('.result_table tr').map(extractorAgenda).get()
|
|
||||||
tab.splice 0, 2
|
|
||||||
return tab
|
|
||||||
|
|
||||||
downloadAgenda = (day, cb) ->
|
|
||||||
agenda = ""; compiti = ""
|
|
||||||
loadHtml = -> document.body.innerHTML
|
|
||||||
saveAgenda = (data) -> agenda = data
|
|
||||||
saveCompiti = (data) -> compiti = data
|
|
||||||
dayurl = moment(day,'YYYY-MM-DD').format('YYYY-M-D')
|
|
||||||
n = new Nightmare()
|
|
||||||
.goto('https://galilei-cr-sito.registroelettronico.com/login/')
|
|
||||||
.type('#username',process.env.REGISTRO_USERNAME)
|
|
||||||
.type('#password',process.env.REGISTRO_PASSWORD)
|
|
||||||
.click('#btnLogin').wait()
|
|
||||||
if process.env.REGISTRO_ID_STUDENTE
|
|
||||||
n.goto('https://galilei-cr-sito.registroelettronico.com/select-student/'+process.env.REGISTRO_ID_STUDENTE+'/')
|
|
||||||
n.goto('https://galilei-cr-sito.registroelettronico.com/agenda/?d='+dayurl)
|
|
||||||
.evaluate(loadHtml, saveAgenda)
|
|
||||||
.goto('https://galilei-cr-sito.registroelettronico.com/tasks/')
|
|
||||||
.evaluate(loadHtml, saveCompiti)
|
|
||||||
.run (err,nightmare) ->
|
|
||||||
if err then console.log err
|
|
||||||
if agenda.length > 0
|
|
||||||
tab = estraiAgenda agenda
|
|
||||||
comp = estraiCompiti compiti
|
|
||||||
cb tab, comp
|
|
||||||
else []
|
|
||||||
|
|
||||||
getCompiti = (cb) ->
|
|
||||||
compiti = ''
|
|
||||||
loadHtml = -> document.body.innerHTML
|
|
||||||
saveCompiti = (data) -> compiti = data
|
|
||||||
n = new Nightmare()
|
|
||||||
n.goto('https://galilei-cr-sito.registroelettronico.com/login/')
|
|
||||||
n.type('#username',process.env.REGISTRO_USERNAME)
|
|
||||||
n.type('#password',process.env.REGISTRO_PASSWORD)
|
|
||||||
n.click('#btnLogin').wait()
|
|
||||||
if process.env.REGISTRO_ID_STUDENTE
|
|
||||||
n.goto('https://galilei-cr-sito.registroelettronico.com/select-student/'+process.env.REGISTRO_ID_STUDENTE+'/')
|
|
||||||
n.goto('https://galilei-cr-sito.registroelettronico.com/tasks/')
|
|
||||||
n.evaluate(loadHtml, saveCompiti)
|
|
||||||
n.run (err,nightmare) -> cb estraiCompiti compiti
|
|
||||||
|
|
||||||
cosaCePerIl = (day,res) ->
|
|
||||||
unless process.env.REGISTRO_USERNAME and process.env.REGISTRO_PASSWORD
|
|
||||||
return res.send 'non dispongo delle credenziali per il registro :('
|
|
||||||
res.send 'aspetta che guardo l\'agenda per il '+day+' (potrei metterci fino a 3 minuti)'
|
|
||||||
downloadAgenda day, (ag,comp) ->
|
|
||||||
if ag.length is 0 and comp.length is 0
|
|
||||||
res.send "non c'è niente segnato sull'agenda per il "+day
|
|
||||||
else
|
|
||||||
c = comp.filter (x) -> x.data is moment(day,'YYYY-MM-DD').format('DD-MM-YYYY')
|
|
||||||
c = c.map (x) -> x.materia+': '+x.text
|
|
||||||
res.send "Agenda del #{day}: "+ag.concat(c).join(', ')
|
|
||||||
|
|
||||||
module.exports = (robot) ->
|
|
||||||
robot.respond /(?:guarda l')?agenda (?:per )?doma(?:ni)?/i, (res) ->
|
|
||||||
cosaCePerIl moment().add(1, 'days').format('YYYY-MM-DD'), res
|
|
||||||
robot.respond /(?:guarda l')?agenda (?:per il )?(\d+-\d+-\d+)/i, (res) ->
|
|
||||||
cosaCePerIl res.match[1], res
|
|
||||||
robot.respond /(?:che )?compiti(?: ci sono)?(?:\?)?/i, (res) ->
|
|
||||||
res.send 'controllo compiti... (potrei metterci fino a 3 minuti)'
|
|
||||||
getCompiti (compiti) ->
|
|
||||||
# tengo solo quelli per il futuro
|
|
||||||
compiti = compiti.filter (c) ->
|
|
||||||
moment(c.data,'DD-MM-YYYY').isAfter(moment().subtract(1,'weeks'))
|
|
||||||
# trasformo in stringa
|
|
||||||
compiti = compiti.map (c) ->
|
|
||||||
[c.data,c.materia,c.text].join ' | '
|
|
||||||
res.send compiti.join '\n'
|
|
@ -1,85 +0,0 @@
|
|||||||
# Description:
|
|
||||||
# si collega al sito della scuola e legge le circolari
|
|
||||||
#
|
|
||||||
# Dependencies:
|
|
||||||
# "cheerio": "0.19.0"
|
|
||||||
#
|
|
||||||
# Configuration:
|
|
||||||
# None
|
|
||||||
#
|
|
||||||
# Commands:
|
|
||||||
# hubot mostrami le (ultime (n)) circolari - stampa la lista delle ultime circolari
|
|
||||||
# hubot linkami la circolare (numero/n/n°) (n) - linka una circolare precisa
|
|
||||||
#
|
|
||||||
# Author:
|
|
||||||
# Enrico Fasoli (fazo96)
|
|
||||||
#
|
|
||||||
|
|
||||||
cheerio = require('cheerio')
|
|
||||||
|
|
||||||
parseHtml = (htmlData,done) ->
|
|
||||||
$ = cheerio.load htmlData
|
|
||||||
tab = $('tr').map (i) ->
|
|
||||||
# console.log($('td',this).html())
|
|
||||||
# console.log($(this,'td').length)
|
|
||||||
link = ""; destinatario = ""
|
|
||||||
l = $('td',this).map (j) ->
|
|
||||||
# console.log($(this).html())
|
|
||||||
if $('a',this).get(0)?
|
|
||||||
#console.log($('a',this).get(0))
|
|
||||||
if $('a',this).get(0).attribs?.href?
|
|
||||||
link = 'http://galileicrema.it' + $('a',this).get(0).attribs.href
|
|
||||||
item = $(this).text().trim()
|
|
||||||
# console.log(i,j,item)
|
|
||||||
# console.log(item.length)
|
|
||||||
if(j == 5)
|
|
||||||
destinatario = item.split('\n\n\t\t\t\t\t')
|
|
||||||
# if(destinatario[0] === "Tutti") destinatario = ["ATA","Docenti","Studenti"]
|
|
||||||
return item
|
|
||||||
l = l.get()
|
|
||||||
obj =
|
|
||||||
protocollo: l[0],
|
|
||||||
mittente: l[1],
|
|
||||||
titolo: l[2],
|
|
||||||
oggetto: l[3],
|
|
||||||
data: l[4],
|
|
||||||
destinatario: destinatario,
|
|
||||||
link: link
|
|
||||||
return obj
|
|
||||||
tab = tab.get()
|
|
||||||
tab.splice 0, 1
|
|
||||||
done null, tab
|
|
||||||
|
|
||||||
downloadCircolari = (robot, callback) ->
|
|
||||||
robot.http("http://galileicrema.it/Intraitis/comunicazioni/ComVis.asp?PerChi=Tutti")
|
|
||||||
.get() (err, res, body) ->
|
|
||||||
callback err, body
|
|
||||||
|
|
||||||
diffCircolari = (oldObj,newObj) ->
|
|
||||||
diff = newObj.length - oldObj.length
|
|
||||||
newObj.slice(0,diff)
|
|
||||||
|
|
||||||
parseCircolari = (err,data,callback) ->
|
|
||||||
if err
|
|
||||||
console.log(err)
|
|
||||||
else
|
|
||||||
parseHtml data, (err,res) -> callback res
|
|
||||||
|
|
||||||
module.exports = (robot) ->
|
|
||||||
robot.respond /(?:mostrami|dimmi|fammi vedere|quali sono) (?:le(?: ultime)? )?([0-9]+ )?circolari/i, (res) ->
|
|
||||||
if res.match[1] is 0 then return
|
|
||||||
res.send "sto controllando le circolari..."
|
|
||||||
num = 10
|
|
||||||
if not isNaN(res.match[1])
|
|
||||||
num = parseInt res.match[1]
|
|
||||||
downloadCircolari robot, (a,b) ->
|
|
||||||
parseCircolari a, b, (x) ->
|
|
||||||
list = x.slice 0, (num or 5)
|
|
||||||
msg = list.map (c) ->
|
|
||||||
['('+c.protocollo.split('/')[0]+')','('+c.data+')',c.titolo].join(' ')
|
|
||||||
res.send msg.join('\n') or 'errore'
|
|
||||||
|
|
||||||
robot.respond /linkami (?:la )?circolare (?:(?:n(?:°)?(?: )?)|numero )?(\d+)/i, (res) ->
|
|
||||||
base = "http://galileicrema.it/Intraitis/documenti/comunicazioni/2014/Circolare"
|
|
||||||
res.send base+res.match[1]+'.pdf'
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user