diff --git a/external-scripts.json b/external-scripts.json index 464dd95..a077202 100644 --- a/external-scripts.json +++ b/external-scripts.json @@ -9,6 +9,5 @@ "hubot-rules", "hubot-shipit", "hubot-bitcoin", - "hubot-youtube", - "hubot-9gag" + "hubot-youtube" ] diff --git a/hubot-scripts.json b/hubot-scripts.json deleted file mode 100644 index 888decf..0000000 --- a/hubot-scripts.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - "aww.coffee", - "base64.coffee", - "chuck-norris.coffee", - "google.coffee", - "lyrics.coffee", - "stallman.coffee", - "hackernews.coffee" -] diff --git a/package.json b/package.json index a96156b..b030410 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ "github": "^0.2.4", "htmlparser": "^1.7.7", "hubot": "^2.12.0", - "hubot-9gag": "^0.2.0", "hubot-bitcoin": "^1.0.3", "hubot-diagnostics": "0.0.1", "hubot-google-images": "^0.1.4", @@ -32,12 +31,9 @@ "hubot-youtube": "^0.1.2", "moment": "^2.10.2", "needle": "^0.10.0", - "nightmare": "^1.8.0", "nock": "^1.7.1", - "nodepie": "^0.6.7", "soupselect": "^0.2.0", - "valid-url": "^1.0.9", - "weak": "^0.4.0" + "valid-url": "^1.0.9" }, "scripts": { "coverage-html": "mkdir -p coverage && mocha test/ --require coffee-coverage/register --compilers coffee:coffee-script/register -R html-cov scripts/ > coverage/coverage.html", diff --git a/scripts/agenda.coffee b/scripts/agenda.coffee deleted file mode 100644 index 39d1659..0000000 --- a/scripts/agenda.coffee +++ /dev/null @@ -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' diff --git a/scripts/circolari.coffee b/scripts/circolari.coffee deleted file mode 100644 index 6bdc193..0000000 --- a/scripts/circolari.coffee +++ /dev/null @@ -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' -