asjon/scripts/circolari.coffee

78 lines
2.4 KiB
CoffeeScript
Raw Normal View History

2015-04-23 16:51:28 +02:00
cheerio = require('cheerio')
fs = require('fs')
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
# fs.writeFileSync('result.json',JSON.stringify(tab))
# console.log("saved file")
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)
circolari = []
parseCircolari = (err,data,callback) ->
if err
console.log(err)
else
parseHtml data, (err,res) ->
#console.log("Done!")
circolari = res
2015-04-24 09:18:49 +02:00
fs.writeFile 'circolari.json', JSON.stringify circolari
2015-04-23 16:51:28 +02:00
callback circolari
module.exports = (robot) ->
robot.respond /circolari/i, (res) ->
res.send 'controllo circolari...'
fs.exists 'circolari/circolari.json', (jsonExists) ->
if jsonExists
2015-04-24 09:18:49 +02:00
circolari = JSON.parse fs.readFileSync('circolari.json').toString()
2015-04-23 16:51:28 +02:00
res.send JSON.stringify circolari.slice 0,5
else
fs.exists 'circolari.html', (htmlExists) ->
if htmlExists
fs.readFile 'circolari/circolari.html', (a,b) -> parseCircolari a, b, (x) -> res.send JSON.stringify x.slice 0, 5
else
res.send "download circolari..."
downloadCircolari robot, (a,b) ->
res.send 'finito download...'
parseCircolari a, b, (x) ->
res.send 'invio...'
res.send JSON.stringify x.slice 0, 5