asjon/test/coverage.json
2015-04-28 17:51:55 +02:00

3031 lines
82 KiB
JSON

{
"instrumentation": "node-jscoverage",
"sloc": 393,
"hits": 148,
"misses": 245,
"coverage": 37.659033078880405,
"files": [
{
"filename": "asjon-testing.coffee",
"coverage": 100,
"hits": 16,
"misses": 0,
"sloc": 16,
"source": {
"1": {
"source": "path = require \"path\"",
"coverage": 1
},
"2": {
"source": "",
"coverage": ""
},
"3": {
"source": "Robot = require(\"hubot/src/robot\")",
"coverage": 1
},
"4": {
"source": "TextMessage = require(\"hubot/src/message\").TextMessage",
"coverage": 1
},
"5": {
"source": "",
"coverage": ""
},
"6": {
"source": "before = (done) ->",
"coverage": 1
},
"7": {
"source": " process.env.TESTING_ASJON = 'true'",
"coverage": 4
},
"8": {
"source": " robot = new Robot null, \"mock-adapter\", no, 'asjon'",
"coverage": 4
},
"9": {
"source": " robot.adapter.on 'connected', ->",
"coverage": 4
},
"10": {
"source": " # Initialize mocked environment ",
"coverage": ""
},
"11": {
"source": " user = robot.brain.userForId \"1\", { name: 'mocha', room: '#mocha' }",
"coverage": 4
},
"12": {
"source": " adapter = robot.adapter",
"coverage": 4
},
"13": {
"source": " send = (s) -> robot.adapter.receive new TextMessage user, s",
"coverage": 4
},
"14": {
"source": " receive = (f) -> robot.adapter.on 'send', f",
"coverage": 4
},
"15": {
"source": " after = -> robot.shutdown()",
"coverage": 4
},
"16": {
"source": " clear = -> robot.adapter.removeAllListeners(); robot.httpListener = ->",
"coverage": 4
},
"17": {
"source": " # Done",
"coverage": ""
},
"18": {
"source": " done",
"coverage": 4
},
"19": {
"source": " robot: robot, user: user, send: send, receive: receive",
"coverage": ""
},
"20": {
"source": " TextMessage: TextMessage, Robot: Robot",
"coverage": ""
},
"21": {
"source": " adapter: adapter, after: after, clear: clear",
"coverage": ""
},
"22": {
"source": " robot.run()",
"coverage": 4
},
"23": {
"source": "",
"coverage": ""
},
"24": {
"source": "module.exports = before",
"coverage": 1
},
"25": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/agenda.coffee",
"coverage": 12.162162162162163,
"hits": 9,
"misses": 65,
"sloc": 74,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# si collega al registro elettronico e controlla l'agenda",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# \"cheerio\": \"0.19.0\"",
"coverage": ""
},
"6": {
"source": "# \"nightmare\": \"1.8.0\"",
"coverage": ""
},
"7": {
"source": "# \"moment\": \"2.10.2\"",
"coverage": ""
},
"8": {
"source": "#",
"coverage": ""
},
"9": {
"source": "# Configuration:",
"coverage": ""
},
"10": {
"source": "# REGISTRO_USERNAME - username per login al registro",
"coverage": ""
},
"11": {
"source": "# REGISTRO_PASSWORD - password per login al registro",
"coverage": ""
},
"12": {
"source": "#",
"coverage": ""
},
"13": {
"source": "# Commands:",
"coverage": ""
},
"14": {
"source": "# hubot agenda (per il) (domani|il (data)) - controlla i compiti assegnati il giorno dato e l'agenda per quel giorno",
"coverage": ""
},
"15": {
"source": "# hubot che compiti ci sono? - mostra i compiti assegnati durante l'ultima settimana",
"coverage": ""
},
"16": {
"source": "#",
"coverage": ""
},
"17": {
"source": "# Author:",
"coverage": ""
},
"18": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"19": {
"source": "#",
"coverage": ""
},
"20": {
"source": "",
"coverage": ""
},
"21": {
"source": "Nightmare = require 'nightmare'",
"coverage": 1
},
"22": {
"source": "cheerio = require 'cheerio'",
"coverage": 1
},
"23": {
"source": "moment = require 'moment'",
"coverage": 1
},
"24": {
"source": "",
"coverage": ""
},
"25": {
"source": "estraiCompiti = (compiti) ->",
"coverage": 1
},
"26": {
"source": " extractorCompiti = ->",
"coverage": 0
},
"27": {
"source": " col = $($('td',this).get(1)).text().trim()",
"coverage": 0
},
"28": {
"source": " arr = col.split(/(?:\\s+)Materia: /i)",
"coverage": 0
},
"29": {
"source": " if $('td',this).get(1)?",
"coverage": 0
},
"30": {
"source": " data: $($('td',this).get(0)).text().trim()",
"coverage": 0
},
"31": {
"source": " text: arr[0], materia: arr[1]",
"coverage": ""
},
"32": {
"source": " else {}",
"coverage": 0
},
"33": {
"source": " $ = cheerio.load compiti",
"coverage": 0
},
"34": {
"source": " return $('.result_table tr').map(extractorCompiti).get().filter (c) -> c.text?",
"coverage": 0
},
"35": {
"source": "",
"coverage": ""
},
"36": {
"source": "estraiAgenda = (agenda) ->",
"coverage": 1
},
"37": {
"source": " extractorAgenda = ->",
"coverage": 0
},
"38": {
"source": " if $('td',this).get(1)?",
"coverage": 0
},
"39": {
"source": " $($('td',this).get(1)).text().trim()",
"coverage": 0
},
"40": {
"source": " else \"(niente)\"",
"coverage": 0
},
"41": {
"source": " $ = cheerio.load agenda",
"coverage": 0
},
"42": {
"source": " tab = $('.result_table tr').map(extractorAgenda).get()",
"coverage": 0
},
"43": {
"source": " tab.splice 0, 2",
"coverage": 0
},
"44": {
"source": " return tab",
"coverage": 0
},
"45": {
"source": "",
"coverage": ""
},
"46": {
"source": "downloadAgenda = (day, cb) ->",
"coverage": 1
},
"47": {
"source": " agenda = \"\"; compiti = \"\"",
"coverage": 0
},
"48": {
"source": " loadHtml = -> document.body.innerHTML",
"coverage": 0
},
"49": {
"source": " saveAgenda = (data) -> agenda = data",
"coverage": 0
},
"50": {
"source": " saveCompiti = (data) -> compiti = data",
"coverage": 0
},
"51": {
"source": " dayurl = moment(day,'YYYY-MM-DD').format('YYYY-M-D')",
"coverage": 0
},
"52": {
"source": " n = new Nightmare()",
"coverage": 0
},
"53": {
"source": " .goto('https://galilei-cr-sito.registroelettronico.com/login/')",
"coverage": ""
},
"54": {
"source": " .type('#username',process.env.REGISTRO_USERNAME)",
"coverage": ""
},
"55": {
"source": " .type('#password',process.env.REGISTRO_PASSWORD)",
"coverage": ""
},
"56": {
"source": " .click('#btnLogin').wait()",
"coverage": ""
},
"57": {
"source": " if process.env.REGISTRO_ID_STUDENTE",
"coverage": 0
},
"58": {
"source": " n.goto('https://galilei-cr-sito.registroelettronico.com/select-student/'+process.env.REGISTRO_ID_STUDENTE+'/')",
"coverage": 0
},
"59": {
"source": " n.goto('https://galilei-cr-sito.registroelettronico.com/agenda/?d='+dayurl)",
"coverage": 0
},
"60": {
"source": " .evaluate(loadHtml, saveAgenda)",
"coverage": ""
},
"61": {
"source": " .goto('https://galilei-cr-sito.registroelettronico.com/tasks/')",
"coverage": ""
},
"62": {
"source": " .evaluate(loadHtml, saveCompiti)",
"coverage": ""
},
"63": {
"source": " .run (err,nightmare) ->",
"coverage": ""
},
"64": {
"source": " if err then console.log err",
"coverage": 0
},
"65": {
"source": " if agenda.length > 0",
"coverage": 0
},
"66": {
"source": " tab = estraiAgenda agenda",
"coverage": 0
},
"67": {
"source": " comp = estraiCompiti compiti",
"coverage": 0
},
"68": {
"source": " cb tab, comp",
"coverage": 0
},
"69": {
"source": " else []",
"coverage": 0
},
"70": {
"source": "",
"coverage": ""
},
"71": {
"source": "getCompiti = (cb) ->",
"coverage": 1
},
"72": {
"source": " compiti = ''",
"coverage": 0
},
"73": {
"source": " loadHtml = -> document.body.innerHTML",
"coverage": 0
},
"74": {
"source": " saveCompiti = (data) -> compiti = data",
"coverage": 0
},
"75": {
"source": " n = new Nightmare()",
"coverage": 0
},
"76": {
"source": " n.goto('https://galilei-cr-sito.registroelettronico.com/login/')",
"coverage": 0
},
"77": {
"source": " n.type('#username',process.env.REGISTRO_USERNAME)",
"coverage": 0
},
"78": {
"source": " n.type('#password',process.env.REGISTRO_PASSWORD)",
"coverage": 0
},
"79": {
"source": " n.click('#btnLogin').wait()",
"coverage": 0
},
"80": {
"source": " if process.env.REGISTRO_ID_STUDENTE",
"coverage": 0
},
"81": {
"source": " n.goto('https://galilei-cr-sito.registroelettronico.com/select-student/'+process.env.REGISTRO_ID_STUDENTE+'/')",
"coverage": 0
},
"82": {
"source": " n.goto('https://galilei-cr-sito.registroelettronico.com/tasks/')",
"coverage": 0
},
"83": {
"source": " n.evaluate(loadHtml, saveCompiti)",
"coverage": 0
},
"84": {
"source": " n.run (err,nightmare) -> cb estraiCompiti compiti",
"coverage": 0
},
"85": {
"source": "",
"coverage": ""
},
"86": {
"source": "cosaCePerIl = (day,res) ->",
"coverage": 1
},
"87": {
"source": " unless process.env.REGISTRO_USERNAME and process.env.REGISTRO_PASSWORD",
"coverage": 0
},
"88": {
"source": " return res.send 'non dispongo delle credenziali per il registro :('",
"coverage": 0
},
"89": {
"source": " res.send 'aspetta che guardo l\\'agenda per il '+day+' (potrei metterci fino a 3 minuti)'",
"coverage": 0
},
"90": {
"source": " downloadAgenda day, (ag,comp) ->",
"coverage": 0
},
"91": {
"source": " if ag.length is 0 and comp.length is 0",
"coverage": 0
},
"92": {
"source": " res.send \"non c'è niente segnato sull'agenda per il \"+day",
"coverage": 0
},
"93": {
"source": " else",
"coverage": ""
},
"94": {
"source": " c = comp.filter (x) -> x.data is moment(day,'YYYY-MM-DD').format('DD-MM-YYYY')",
"coverage": 0
},
"95": {
"source": " c = c.map (x) -> x.materia+': '+x.text",
"coverage": 0
},
"96": {
"source": " res.send \"Agenda del #{day}: \"+ag.concat(c).join(', ')",
"coverage": 0
},
"97": {
"source": "",
"coverage": ""
},
"98": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"99": {
"source": " robot.respond /(?:guarda l')?agenda (?:per )?doma(?:ni)?/i, (res) ->",
"coverage": 0
},
"100": {
"source": " cosaCePerIl moment().add(1, 'days').format('YYYY-MM-DD'), res",
"coverage": 0
},
"101": {
"source": " robot.respond /(?:guarda l')?agenda (?:per il )?(\\d+-\\d+-\\d+)/i, (res) ->",
"coverage": 0
},
"102": {
"source": " cosaCePerIl res.match[1], res",
"coverage": 0
},
"103": {
"source": " robot.respond /(?:che )?compiti(?: ci sono)?(?:\\?)?/i, (res) ->",
"coverage": 0
},
"104": {
"source": " res.send 'controllo compiti... (potrei metterci fino a 3 minuti)'",
"coverage": 0
},
"105": {
"source": " getCompiti (compiti) ->",
"coverage": 0
},
"106": {
"source": " # tengo solo quelli per il futuro",
"coverage": ""
},
"107": {
"source": " compiti = compiti.filter (c) ->",
"coverage": 0
},
"108": {
"source": " moment(c.data,'DD-MM-YYYY').isAfter(moment().subtract(1,'weeks'))",
"coverage": 0
},
"109": {
"source": " # trasformo in stringa",
"coverage": ""
},
"110": {
"source": " compiti = compiti.map (c) ->",
"coverage": 0
},
"111": {
"source": " [c.data,c.materia,c.text].join ' | '",
"coverage": 0
},
"112": {
"source": " res.send compiti.join '\\n'",
"coverage": 0
},
"113": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/circolari.coffee",
"coverage": 93.33333333333333,
"hits": 42,
"misses": 3,
"sloc": 45,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# si collega al sito della scuola e legge le circolari",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# \"cheerio\": \"0.19.0\"",
"coverage": ""
},
"6": {
"source": "# ",
"coverage": ""
},
"7": {
"source": "# Configuration:",
"coverage": ""
},
"8": {
"source": "# None",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Commands:",
"coverage": ""
},
"11": {
"source": "# hubot mostrami le (ultime (n)) circolari - stampa la lista delle ultime circolari",
"coverage": ""
},
"12": {
"source": "# hubot linkami la circolare (numero/n/n°) (n) - linka una circolare precisa",
"coverage": ""
},
"13": {
"source": "#",
"coverage": ""
},
"14": {
"source": "# Author:",
"coverage": ""
},
"15": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"16": {
"source": "#",
"coverage": ""
},
"17": {
"source": "",
"coverage": ""
},
"18": {
"source": "cheerio = require('cheerio')",
"coverage": 1
},
"19": {
"source": "",
"coverage": ""
},
"20": {
"source": "parseHtml = (htmlData,done) ->",
"coverage": 1
},
"21": {
"source": " $ = cheerio.load htmlData",
"coverage": 3
},
"22": {
"source": " tab = $('tr').map (i) ->",
"coverage": 3
},
"23": {
"source": " # console.log($('td',this).html())",
"coverage": ""
},
"24": {
"source": " # console.log($(this,'td').length)",
"coverage": ""
},
"25": {
"source": " link = \"\"; destinatario = \"\"",
"coverage": 552
},
"26": {
"source": " l = $('td',this).map (j) ->",
"coverage": 552
},
"27": {
"source": " # console.log($(this).html())",
"coverage": ""
},
"28": {
"source": " if $('a',this).get(0)?",
"coverage": 3302
},
"29": {
"source": " #console.log($('a',this).get(0))",
"coverage": ""
},
"30": {
"source": " if $('a',this).get(0).attribs?.href?",
"coverage": 550
},
"31": {
"source": " link = 'http://galileicrema.it' + $('a',this).get(0).attribs.href",
"coverage": 550
},
"32": {
"source": " item = $(this).text().trim()",
"coverage": 3302
},
"33": {
"source": " # console.log(i,j,item)",
"coverage": ""
},
"34": {
"source": " # console.log(item.length)",
"coverage": ""
},
"35": {
"source": " if(j == 5)",
"coverage": 3302
},
"36": {
"source": " destinatario = item.split('\\n\\n\\t\\t\\t\\t\\t')",
"coverage": 550
},
"37": {
"source": " # if(destinatario[0] === \"Tutti\") destinatario = [\"ATA\",\"Docenti\",\"Studenti\"]",
"coverage": ""
},
"38": {
"source": " return item",
"coverage": 3302
},
"39": {
"source": " l = l.get()",
"coverage": 552
},
"40": {
"source": " obj =",
"coverage": 552
},
"41": {
"source": " protocollo: l[0],",
"coverage": ""
},
"42": {
"source": " mittente: l[1],",
"coverage": ""
},
"43": {
"source": " titolo: l[2],",
"coverage": ""
},
"44": {
"source": " oggetto: l[3],",
"coverage": ""
},
"45": {
"source": " data: l[4],",
"coverage": ""
},
"46": {
"source": " destinatario: destinatario,",
"coverage": ""
},
"47": {
"source": " link: link",
"coverage": ""
},
"48": {
"source": " return obj",
"coverage": 552
},
"49": {
"source": " tab = tab.get()",
"coverage": 3
},
"50": {
"source": " tab.splice 0, 1",
"coverage": 3
},
"51": {
"source": " done null, tab",
"coverage": 3
},
"52": {
"source": "",
"coverage": ""
},
"53": {
"source": "downloadCircolari = (robot, callback) ->",
"coverage": 1
},
"54": {
"source": " robot.http(\"http://galileicrema.it/Intraitis/comunicazioni/ComVis.asp?PerChi=Tutti\")",
"coverage": 3
},
"55": {
"source": " .get() (err, res, body) ->",
"coverage": ""
},
"56": {
"source": " callback err, body",
"coverage": 3
},
"57": {
"source": "",
"coverage": ""
},
"58": {
"source": "diffCircolari = (oldObj,newObj) ->",
"coverage": 1
},
"59": {
"source": " diff = newObj.length - oldObj.length",
"coverage": 0
},
"60": {
"source": " newObj.slice(0,diff)",
"coverage": 0
},
"61": {
"source": "",
"coverage": ""
},
"62": {
"source": "parseCircolari = (err,data,callback) ->",
"coverage": 1
},
"63": {
"source": " if err",
"coverage": 3
},
"64": {
"source": " console.log(err)",
"coverage": 0
},
"65": {
"source": " else",
"coverage": ""
},
"66": {
"source": " parseHtml data, (err,res) -> callback res",
"coverage": 3
},
"67": {
"source": "",
"coverage": ""
},
"68": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"69": {
"source": " robot.respond /(?:mostrami|dimmi|fammi vedere|quali sono) (?:le(?: ultime)? )?([0-9]+ )?circolari/i, (res) ->",
"coverage": 1
},
"70": {
"source": " if res.match[1] is 0 then return",
"coverage": 3
},
"71": {
"source": " res.send \"sto controllando le circolari...\"",
"coverage": 3
},
"72": {
"source": " num = 10",
"coverage": 3
},
"73": {
"source": " if not isNaN(res.match[1])",
"coverage": 3
},
"74": {
"source": " num = parseInt res.match[1]",
"coverage": 2
},
"75": {
"source": " downloadCircolari robot, (a,b) ->",
"coverage": 3
},
"76": {
"source": " parseCircolari a, b, (x) ->",
"coverage": 3
},
"77": {
"source": " list = x.slice 0, (num or 5)",
"coverage": 3
},
"78": {
"source": " msg = list.map (c) ->",
"coverage": 3
},
"79": {
"source": " ['('+c.protocollo.split('/')[0]+')','('+c.data+')',c.titolo].join(' ')",
"coverage": 7
},
"80": {
"source": " res.send msg.join('\\n') or 'errore'",
"coverage": 3
},
"81": {
"source": "",
"coverage": ""
},
"82": {
"source": " robot.respond /linkami (?:la )?circolare (?:(?:n(?:°)?(?: )?)|numero )?(\\d+)/i, (res) ->",
"coverage": 1
},
"83": {
"source": " base = \"http://galileicrema.it/Intraitis/documenti/comunicazioni/2014/Circolare\"",
"coverage": 1
},
"84": {
"source": " res.send base+res.match[1]+'.pdf'",
"coverage": 1
},
"85": {
"source": "",
"coverage": ""
},
"86": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/github.coffee",
"coverage": 10.344827586206897,
"hits": 3,
"misses": 26,
"sloc": 29,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# interazioni tra asjon e github",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Requires:",
"coverage": ""
},
"5": {
"source": "# \"github\": \"0.2.4\"",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Commands:",
"coverage": ""
},
"8": {
"source": "# asjon mostra le issue - mostra le issue aperte su fazo96/asjon",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Author:",
"coverage": ""
},
"11": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"12": {
"source": "",
"coverage": ""
},
"13": {
"source": "GitHubAPI = require 'github'",
"coverage": 1
},
"14": {
"source": "github = new GitHubAPI version: '3.0.0'",
"coverage": 1
},
"15": {
"source": "",
"coverage": ""
},
"16": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"17": {
"source": " if process.env.AUTO_INFORM_ON_START",
"coverage": 0
},
"18": {
"source": " r = room: process.env.AUTO_INFORM_ON_START.replace(':','#')",
"coverage": 0
},
"19": {
"source": " robot.send r, 'asjon avviato e operativo!'",
"coverage": 0
},
"20": {
"source": "",
"coverage": ""
},
"21": {
"source": " robot.router.post '/hubot/githubhook/:room/:name?', (req, res) ->",
"coverage": 0
},
"22": {
"source": " res.send 200",
"coverage": 0
},
"23": {
"source": " dest = name: req.params.name, room: req.params.room.replace(':','#')",
"coverage": 0
},
"24": {
"source": " robot.emit 'githubhook', req.body, req.params",
"coverage": 0
},
"25": {
"source": " s = 'Branch '+req.body.ref+' aggiornato!\\n'",
"coverage": 0
},
"26": {
"source": " cm = req.body.commits.map (c) ->",
"coverage": 0
},
"27": {
"source": " [c.committer.username,c.message].join ' -> '",
"coverage": 0
},
"28": {
"source": " robot.send dest, s+cm.join('\\n')",
"coverage": 0
},
"29": {
"source": "",
"coverage": ""
},
"30": {
"source": " robot.respond /(?:(?:mostra(?:mi)?|fammi vedere) )?(?:le )?issue(?:s)?/i, (res) ->",
"coverage": 0
},
"31": {
"source": " msg = state: 'open', user: 'fazo96', repo: 'asjon', sort: 'updated'",
"coverage": 0
},
"32": {
"source": " res.send 'controllo issues...'",
"coverage": 0
},
"33": {
"source": " github.issues.repoIssues msg, (err,data) ->",
"coverage": 0
},
"34": {
"source": " if err then return res.send err",
"coverage": 0
},
"35": {
"source": " r = data.map (i) ->",
"coverage": 0
},
"36": {
"source": " labels = i.labels.map((x) -> x.name).join ', '",
"coverage": 0
},
"37": {
"source": " if labels is '' then labels = 'nessuno'",
"coverage": 0
},
"38": {
"source": " [\"#\"+i.number,i.title,\"By: \"+i.user.login,'Tags: '+labels].join(' | ')",
"coverage": 0
},
"39": {
"source": " res.send r.join '\\n'",
"coverage": 0
},
"40": {
"source": "",
"coverage": ""
},
"41": {
"source": " robot.respond /linkami (?:la )?issue (?:(?:n(?:°)?(?: )?)|numero )?(\\d+)/i, (res) ->",
"coverage": 0
},
"42": {
"source": " base = 'http://github.com/fazo96/asjon/issues/'",
"coverage": 0
},
"43": {
"source": " res.send base+res.match[1]",
"coverage": 0
},
"44": {
"source": "",
"coverage": ""
},
"45": {
"source": " robot.respond /linkami (?:la )?repo (\\w+\\/\\w+)/i, (res) ->",
"coverage": 0
},
"46": {
"source": " res.send 'https://github.com/'+res.match[1]",
"coverage": 0
},
"47": {
"source": "",
"coverage": ""
},
"48": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/internamento.coffee",
"coverage": 2.7027027027027026,
"hits": 1,
"misses": 36,
"sloc": 37,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# permette di internare persone nel campo di Diliberti",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Configuration:",
"coverage": ""
},
"5": {
"source": "# None",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Commands:",
"coverage": ""
},
"8": {
"source": "# hubot interna <nome> - interna una persona",
"coverage": ""
},
"9": {
"source": "# hubot libera <nome> - libera una persona",
"coverage": ""
},
"10": {
"source": "# hubot lista/mostrami (gli) internati - mostra la lista di internati",
"coverage": ""
},
"11": {
"source": "#",
"coverage": ""
},
"12": {
"source": "# Author:",
"coverage": ""
},
"13": {
"source": "# Ravinder Pal Singh",
"coverage": ""
},
"14": {
"source": "#",
"coverage": ""
},
"15": {
"source": "",
"coverage": ""
},
"16": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"17": {
"source": " robot.respond /interna (.+)/i, (res) ->",
"coverage": 0
},
"18": {
"source": " mem = robot.brain.get('internati') or {}",
"coverage": 0
},
"19": {
"source": " name = res.match[1].toLowerCase()",
"coverage": 0
},
"20": {
"source": " exp1 = ['ho sbattuto dentro', 'come vuoi, sbattiamo dentro', 'è la tua fine']",
"coverage": 0
},
"21": {
"source": " if mem[name]?",
"coverage": 0
},
"22": {
"source": " if mem[name].da",
"coverage": 0
},
"23": {
"source": " intern = mem[name].da.name",
"coverage": 0
},
"24": {
"source": " res.send 'Mi dispiace ma '+name+' è già stato internato su ordine di '+intern",
"coverage": 0
},
"25": {
"source": " else res.send 'Mi dispiace ma '+name+' è già stato internato...'",
"coverage": 0
},
"26": {
"source": " else",
"coverage": ""
},
"27": {
"source": " if name.match /(?:dili(?:bert(?:i)?)?)|(?:ros(?:y|ario))|dre/i",
"coverage": 0
},
"28": {
"source": " # Diliberti",
"coverage": ""
},
"29": {
"source": " res.send 'non posso internare il mio padrone...'",
"coverage": 0
},
"30": {
"source": " else if name.match /fa(?:zo|soli)/i",
"coverage": 0
},
"31": {
"source": " # Fasoli",
"coverage": ""
},
"32": {
"source": " res.send 'ciccio, io internerei te al posto suo'",
"coverage": 0
},
"33": {
"source": " else if name.match /as(?:sa|jon|sion(?:e|i))/i",
"coverage": 0
},
"34": {
"source": " # Asjon",
"coverage": ""
},
"35": {
"source": " res.send 'ma sei scemo????'",
"coverage": 0
},
"36": {
"source": " else",
"coverage": ""
},
"37": {
"source": " res.send res.random(exp1)+' '+name",
"coverage": 0
},
"38": {
"source": " # Salvo chi ha internato",
"coverage": ""
},
"39": {
"source": " mem[name] = { da: res.message.user }",
"coverage": 0
},
"40": {
"source": " console.log res.message.user, mem[name]",
"coverage": 0
},
"41": {
"source": " robot.brain.set 'internati', mem",
"coverage": 0
},
"42": {
"source": "",
"coverage": ""
},
"43": {
"source": " robot.respond /libera (.+)/i, (res) ->",
"coverage": 0
},
"44": {
"source": " mem = robot.brain.get('internati') or {}",
"coverage": 0
},
"45": {
"source": " m = res.match[1].toLowerCase()",
"coverage": 0
},
"46": {
"source": " boh = ['sorry non è qui','troppo tardi','ti piacerebbe, eh?', 'scordatelo']",
"coverage": 0
},
"47": {
"source": " if mem[m]?",
"coverage": 0
},
"48": {
"source": " res.send 'ho liberato '+m+' ma ricordate che potete sbatterlo dentro quando volete ;)'",
"coverage": 0
},
"49": {
"source": " delete mem[m]",
"coverage": 0
},
"50": {
"source": " robot.brain.set 'internati', mem",
"coverage": 0
},
"51": {
"source": " else res.send res.random boh",
"coverage": 0
},
"52": {
"source": "",
"coverage": ""
},
"53": {
"source": " robot.respond /internati-dump/i, (res) ->",
"coverage": 0
},
"54": {
"source": " res.send JSON.stringify robot.brain.get('internati')",
"coverage": 0
},
"55": {
"source": "",
"coverage": ""
},
"56": {
"source": " robot.respond /(?:(?:(?:dimmi|mostrami) )|(?:lista ))?(?:gli )?internat(?:i|o)(?:\\?)?/i, (res) ->",
"coverage": 0
},
"57": {
"source": " m = robot.brain.get 'internati'",
"coverage": 0
},
"58": {
"source": " if m isnt null",
"coverage": 0
},
"59": {
"source": " r = ['ho internato', 'ho preso', 'ho catturato', 'sbattuto dentro']",
"coverage": 0
},
"60": {
"source": " res.send 'negli ultimi giorni '+res.random(r)+' '+(i for i of m).join(', ')",
"coverage": 0
},
"61": {
"source": " else res.send res.random ['sorry, nessun prigioniero...', 'nessuno. mandatemi subito qualcuno']",
"coverage": 0
},
"62": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/memoria.coffee",
"coverage": 82.75862068965517,
"hits": 48,
"misses": 10,
"sloc": 58,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# permette di salvare e recuperare nozioni",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# \"moment\": \"2.10.2\"",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Configuration:",
"coverage": ""
},
"8": {
"source": "# None",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Commands:",
"coverage": ""
},
"11": {
"source": "# hubot ricordati che ... è/sono ... - salva un ricordo",
"coverage": ""
},
"12": {
"source": "# hubot memoria/a cosa stai pensando? - stampa la lista delle nozioni",
"coverage": ""
},
"13": {
"source": "# hubot che cos'è/quand'è/quali sono/... ... - richiama un ricordo",
"coverage": ""
},
"14": {
"source": "#",
"coverage": ""
},
"15": {
"source": "# Author:",
"coverage": ""
},
"16": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"17": {
"source": "#",
"coverage": ""
},
"18": {
"source": "",
"coverage": ""
},
"19": {
"source": "moment = require 'moment'",
"coverage": 1
},
"20": {
"source": "moment.locale 'it'",
"coverage": 1
},
"21": {
"source": "",
"coverage": ""
},
"22": {
"source": "dateFormatsA = ['YYYY-MM-DD','DD-MM-YYYY',\"DD MMMM YYYY\", \"DD MMMM\",\"DD\"]",
"coverage": 1
},
"23": {
"source": "",
"coverage": ""
},
"24": {
"source": "toDate = (d) ->",
"coverage": 1
},
"25": {
"source": " dat = d.replace /(?:l'|il )/i, ''",
"coverage": 13
},
"26": {
"source": " moment dat, dateFormatsA",
"coverage": 13
},
"27": {
"source": "",
"coverage": ""
},
"28": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"29": {
"source": " robot.respond /ricorda(?:ti)? (?:che )?(.+?) ([=è]|sono) (.+)/i, (res) ->",
"coverage": 2
},
"30": {
"source": " mem = robot.brain.get('memoria') or {}",
"coverage": 5
},
"31": {
"source": " name = res.match[1].toLowerCase().replace('?',''); definition = res.match[3].replace('?','')",
"coverage": 5
},
"32": {
"source": " r = if res.match[2] is 'sono' then 'fossero' else 'fosse'",
"coverage": 5
},
"33": {
"source": " # Evita il bug nel caso manca il soggeto ('ricorda che è/sono ...')",
"coverage": ""
},
"34": {
"source": " if name is 'che'",
"coverage": 5
},
"35": {
"source": " if res.match[2] is 'è' then return res.send 'ma COSA è '+definition",
"coverage": 0
},
"36": {
"source": " name = res.message.user.name.toLowerCase()",
"coverage": 0
},
"37": {
"source": " r = 'fosse'",
"coverage": 0
},
"38": {
"source": " if mem[name]?",
"coverage": 5
},
"39": {
"source": " res.send 'pensavo che '+name+' '+r+' '+mem[name]+'. Mi ricorderò che invece è '+definition",
"coverage": 3
},
"40": {
"source": " else",
"coverage": ""
},
"41": {
"source": " res.send 'non sapevo che '+name+' '+r+' '+definition+'. Me lo ricorderò'",
"coverage": 2
},
"42": {
"source": " mem[name] = definition",
"coverage": 5
},
"43": {
"source": " robot.brain.set 'memoria', mem",
"coverage": 5
},
"44": {
"source": "",
"coverage": ""
},
"45": {
"source": " robot.respond /dimentica(?:ti)? (.+)/i, (res) ->",
"coverage": 2
},
"46": {
"source": " mem = robot.brain.get('memoria') or {}",
"coverage": 1
},
"47": {
"source": " m = res.match[1].toLowerCase()",
"coverage": 1
},
"48": {
"source": " nonso = ['non so cosa sia','BZBZ 404-NOT-FOUND','non mi fa ne caldo ne freddo','se sapessi cos\\'è magari']",
"coverage": 1
},
"49": {
"source": " if mem[m]?",
"coverage": 1
},
"50": {
"source": " res.send 'in caso cambi idea, sappi che ricordavo \"'+mem[m]+'\" riguardo a '+m",
"coverage": 1
},
"51": {
"source": " delete mem[m]",
"coverage": 1
},
"52": {
"source": " robot.brain.set 'memoria', mem # necessary?",
"coverage": 1
},
"53": {
"source": " else res.send res.random nonso",
"coverage": 0
},
"54": {
"source": "",
"coverage": ""
},
"55": {
"source": " robot.respond /memory-dump/i, (res) ->",
"coverage": 2
},
"56": {
"source": " res.send JSON.stringify robot.brain.get('memoria')",
"coverage": 1
},
"57": {
"source": "",
"coverage": ""
},
"58": {
"source": " robot.respond /(?:che )?(?:(?:(?:(?:(cos|qual|quand)(?:\\'| )?è)|(?:chi (sono|è)?)))|(?:quali|cosa) sono) ([^?]+)(?:\\?)?/i, (res) ->",
"coverage": 2
},
"59": {
"source": " query = undefined",
"coverage": 12
},
"60": {
"source": " # Estrazione query (quand,cos,qual,chi...)",
"coverage": ""
},
"61": {
"source": " if res.match[2] then query = res.match[2] or res.match[1]",
"coverage": 12
},
"62": {
"source": " else if res.match[3] and res.match[1] then query = res.match[1]",
"coverage": 9
},
"63": {
"source": " if query? then query = query.replace '?', ''",
"coverage": 12
},
"64": {
"source": " # Estrazione argomento della query",
"coverage": ""
},
"65": {
"source": " arg = (res.match[3] or res.match[2] or res.match[1]).toLowerCase().replace('?','')",
"coverage": 12
},
"66": {
"source": " # Se l'argomento è una richiesta di circolari skippo",
"coverage": ""
},
"67": {
"source": " # console.log query, arg",
"coverage": ""
},
"68": {
"source": " if arg.match /^le (?:ultime )?(?:\\d+ )?circolari(?:\\?)?$/i",
"coverage": 12
},
"69": {
"source": " # non rispondo",
"coverage": ""
},
"70": {
"source": " return",
"coverage": 1
},
"71": {
"source": " # Controllo se l'argomento è data",
"coverage": ""
},
"72": {
"source": " data = toDate arg",
"coverage": 11
},
"73": {
"source": " if data.isValid() and arg.match(/^(il |l')/i) and (query is 'quand' or query is 'cos')",
"coverage": 11
},
"74": {
"source": " # chiesto una data",
"coverage": ""
},
"75": {
"source": " res.send arg+' è '+data.format('dddd Do MMMM YYYY')+' ovvero '+data.fromNow()",
"coverage": 1
},
"76": {
"source": " else",
"coverage": ""
},
"77": {
"source": " # chiesto qualcosa che non è una data",
"coverage": ""
},
"78": {
"source": " mem = robot.brain.get('memoria') or {}",
"coverage": 10
},
"79": {
"source": " verbo = if query is 'è' or query is 'sono' then query",
"coverage": 10
},
"80": {
"source": " if query is 'cos' or query is 'quand' then verbo = 'è'",
"coverage": 10
},
"81": {
"source": " if query is 'qual' then verbo = 'è' else if !query? then verbo = 'sono'",
"coverage": 10
},
"82": {
"source": " if mem[arg]",
"coverage": 10
},
"83": {
"source": " # controllo se è salvata una data nell'argomento chiesto",
"coverage": ""
},
"84": {
"source": " odata = toDate mem[arg]",
"coverage": 2
},
"85": {
"source": " if odata.isValid() and mem[arg].match(/^(il |l')/i) and query is 'quand'",
"coverage": 2
},
"86": {
"source": " # nella memoria era salvata una data",
"coverage": ""
},
"87": {
"source": " res.send arg+' è '+odata.format('dddd Do MMMM YYYY')+' ovvero '+odata.fromNow()",
"coverage": 0
},
"88": {
"source": " else res.send arg+' '+verbo+' '+mem[arg]",
"coverage": 2
},
"89": {
"source": " else res.send res.random ['boh','mistero','se qualcuno me lo spiegasse magari','BZBZ 404-NOT-FOUND']",
"coverage": 8
},
"90": {
"source": "",
"coverage": ""
},
"91": {
"source": " robot.respond /(?:mostrami la tua )?memoria|(?:a )?cosa (?:stai|ti|hai) (?:pensando|ricordi|imparato)(?:\\?)?/i, (res) ->",
"coverage": 2
},
"92": {
"source": " m = robot.brain.get 'memoria'",
"coverage": 0
},
"93": {
"source": " if m isnt null",
"coverage": 0
},
"94": {
"source": " r = ['ho studiato', 'ho imparato', 'ho appreso', 'sono venuto a conoscenza di']",
"coverage": 0
},
"95": {
"source": " res.send 'nel corso della mia vita '+res.random(r)+' '+(i for i of m).sort().join(', ')",
"coverage": 0
},
"96": {
"source": " else res.send res.random ['non so niente...', 'ignoranza proprio']",
"coverage": 0
},
"97": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/meteo.coffee",
"coverage": 14.285714285714285,
"hits": 2,
"misses": 12,
"sloc": 14,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# utilità per il meteo",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# \"moment\":\"2.10.2\"",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Configuration:",
"coverage": ""
},
"8": {
"source": "# None",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Commands:",
"coverage": ""
},
"11": {
"source": "# hubot che tempo fa/c'è (a crema)? - guarda il cielo e risponde con informazioni sul meteo di crema",
"coverage": ""
},
"12": {
"source": "# ",
"coverage": ""
},
"13": {
"source": "# Author:",
"coverage": ""
},
"14": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"15": {
"source": "",
"coverage": ""
},
"16": {
"source": "moment = require 'moment'",
"coverage": 1
},
"17": {
"source": "",
"coverage": ""
},
"18": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"19": {
"source": " robot.respond /che tempo(?: c'è| fa)?(?: a crema)?(?:\\?)?/i, (res) ->",
"coverage": 0
},
"20": {
"source": " url = 'http://api.openweathermap.org/data/2.5/weather?id=3177841&lang=it&units=metric'",
"coverage": 0
},
"21": {
"source": " robot.http(url)",
"coverage": 0
},
"22": {
"source": " .get() (err, r, body) ->",
"coverage": ""
},
"23": {
"source": " try",
"coverage": 0
},
"24": {
"source": " body = JSON.parse body",
"coverage": 0
},
"25": {
"source": " catch e",
"coverage": ""
},
"26": {
"source": " return res.send 'Errore nel guardare il cielo.'",
"coverage": 0
},
"27": {
"source": " alba = moment.unix(body.sys.sunrise).format('H:MM')",
"coverage": 0
},
"28": {
"source": " tramonto = moment.unix(body.sys.sunset).format('H:MM')",
"coverage": 0
},
"29": {
"source": " m = body.weather[0].description+' con '+body.main.humidity",
"coverage": 0
},
"30": {
"source": " m += '% di umidità. Temperatura: '+Math.round(body.main.temp)+'°C. '",
"coverage": 0
},
"31": {
"source": " m += \"l'alba è alle \"+alba+\" mentre il tramonto alle \"+tramonto",
"coverage": 0
},
"32": {
"source": " res.send 'Meteo per Crema: '+m+'.'",
"coverage": 0
},
"33": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/misc.coffee",
"coverage": 1.6666666666666667,
"hits": 1,
"misses": 59,
"sloc": 60,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# piccole cose e easter egg di Asjon",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# None",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Configuration:",
"coverage": ""
},
"8": {
"source": "# None",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Commands:",
"coverage": ""
},
"11": {
"source": "# grazie/bravo asjon - ringrazia asjon",
"coverage": ""
},
"12": {
"source": "# hubot ringraziamenti - chiedi ad asjon quante volte è stato ringraziato",
"coverage": ""
},
"13": {
"source": "# hubot sei ... - giudica asjon",
"coverage": ""
},
"14": {
"source": "# hubot come ti hanno chiamato? - chiedi ad asjon come è stato giudicato",
"coverage": ""
},
"15": {
"source": "# hubot saluta <utente> - saluta l'utente",
"coverage": ""
},
"16": {
"source": "# hubot come va - chiede ad asjon come sta",
"coverage": ""
},
"17": {
"source": "# ciao asjon - saluta asjon",
"coverage": ""
},
"18": {
"source": "#",
"coverage": ""
},
"19": {
"source": "# Author:",
"coverage": ""
},
"20": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"21": {
"source": "# Ravinder Pal Singh",
"coverage": ""
},
"22": {
"source": "# Leonardo Magon",
"coverage": ""
},
"23": {
"source": "# Gabriele Della Torre",
"coverage": ""
},
"24": {
"source": "#",
"coverage": ""
},
"25": {
"source": "",
"coverage": ""
},
"26": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"27": {
"source": " # Ringraziamenti",
"coverage": ""
},
"28": {
"source": " ringr = ['prego :)', \"non c'è di che\", 'faccio solo il mio lavoro', 'no problemo amigo', 'non fate complimenti ;)']",
"coverage": 0
},
"29": {
"source": " complim = ['bravo', 'grande', 'grandissimo', 'bella' ]",
"coverage": 0
},
"30": {
"source": " stato = ['tutto bene zio' , 'bene dai' , 'sono triste', 'si va avanti']",
"coverage": 0
},
"31": {
"source": " grazie = (res) ->",
"coverage": 0
},
"32": {
"source": " robot.brain.set 'ringraziato', (robot.brain.get('ringraziato') or 0) + 1",
"coverage": 0
},
"33": {
"source": " res.send res.random ringr",
"coverage": 0
},
"34": {
"source": " robot.hear /(?:grazie|bravo) (?:asjon|assa|assion(?:i|e))/i, grazie",
"coverage": 0
},
"35": {
"source": " robot.respond /grazie/i, grazie",
"coverage": 0
},
"36": {
"source": " robot.respond /ringraziamenti/i, (res) ->",
"coverage": 0
},
"37": {
"source": " res.send 'voi teneroni mi avete ringraziato ' + (robot.brain.get('ringraziato') or 0) + ' volte :)'",
"coverage": 0
},
"38": {
"source": " # Richiami",
"coverage": ""
},
"39": {
"source": " robot.respond /sei (?:(?:proprio|davvero|veramente|molto|un|una) )?(.+)/i, (res) ->",
"coverage": 0
},
"40": {
"source": " nomi = robot.brain.get('nomi') or {}",
"coverage": 0
},
"41": {
"source": " nomi[res.match[1]] ?= 0",
"coverage": 0
},
"42": {
"source": " nomi[res.match[1]] += 1",
"coverage": 0
},
"43": {
"source": " robot.brain.set 'nomi', nomi",
"coverage": 0
},
"44": {
"source": " robot.respond /come ti hanno chiamato/i, (res) ->",
"coverage": 0
},
"45": {
"source": " a = robot.brain.get('nomi') or {}",
"coverage": 0
},
"46": {
"source": " l = []",
"coverage": 0
},
"47": {
"source": " for i of a",
"coverage": 0
},
"48": {
"source": " l.push a[i]+' volt'+(if a[i] is 1 then 'a' else 'e')+' '+i",
"coverage": 0
},
"49": {
"source": " res.send 'mi hanno chiamato '+l.join(', ')",
"coverage": 0
},
"50": {
"source": " # Altro",
"coverage": ""
},
"51": {
"source": " robot.respond /saluta (.+)/i, (res) ->",
"coverage": 0
},
"52": {
"source": " res.send 'ciao ' + res.match[1]",
"coverage": 0
},
"53": {
"source": " robot.respond /spaca botilia/i, (res) ->",
"coverage": 0
},
"54": {
"source": " res.send 'AMAZO FAMILIA'",
"coverage": 0
},
"55": {
"source": " robot.respond /come va/i, (res)->",
"coverage": 0
},
"56": {
"source": " res.send res.random(stato)+'. tu?'",
"coverage": 0
},
"57": {
"source": " robot.hear /trogu/i, (res) ->",
"coverage": 0
},
"58": {
"source": " res.send 'comprate le prevendite da Trogu!!!'",
"coverage": 0
},
"59": {
"source": " robot.hear /sarte/i, (res) ->",
"coverage": 0
},
"60": {
"source": " res.send 'gesùùùù!!!'",
"coverage": 0
},
"61": {
"source": " robot.hear /migno/i, (res) ->",
"coverage": 0
},
"62": {
"source": " res.send 'il migno viene dal Molise... che non esiste... ahahah'",
"coverage": 0
},
"63": {
"source": " robot.hear /friz/i, (res)->",
"coverage": 0
},
"64": {
"source": " res.send 'Ehm... praticamente...'",
"coverage": 0
},
"65": {
"source": " robot.hear /dilda/i, (res)->",
"coverage": 0
},
"66": {
"source": " res.send 'oplààààà'",
"coverage": 0
},
"67": {
"source": " robot.hear /^gg$/i, (res)->",
"coverage": 0
},
"68": {
"source": " res.send 'wp'",
"coverage": 0
},
"69": {
"source": " robot.hear /bravo (.+)/i, (res)->",
"coverage": 0
},
"70": {
"source": " unless res.match[1].match /asjon|assa|assion|assioni(?:i|e)/i",
"coverage": 0
},
"71": {
"source": " res.send res.random(complim)+' '+res.match[1]",
"coverage": 0
},
"72": {
"source": " robot.respond /dove sei/i, (res) ->",
"coverage": 0
},
"73": {
"source": " robot.http('http://canihazip.com/s')",
"coverage": 0
},
"74": {
"source": " .get() (err, r, body) ->",
"coverage": ""
},
"75": {
"source": " res.send 'dovrei essere a ' + body",
"coverage": 0
},
"76": {
"source": " robot.respond /con chi stai parlando/i, (res) ->",
"coverage": 0
},
"77": {
"source": " console.log res.message.user, res.message.room",
"coverage": 0
},
"78": {
"source": " if res.message.user.name is res.message.room",
"coverage": 0
},
"79": {
"source": " res.send 'sto parlando con te, '+res.message.user.name",
"coverage": 0
},
"80": {
"source": " else",
"coverage": ""
},
"81": {
"source": " res.send 'sto parlando in '+res.message.room+', '+res.message.user.name",
"coverage": 0
},
"82": {
"source": " robot.respond /ti amo/i, (res) ->",
"coverage": 0
},
"83": {
"source": " res.send 'anche io ti amo '+(res.message.user.name+' ' or '')+'<3'",
"coverage": 0
},
"84": {
"source": " robot.respond /ti odio/i, (res) ->",
"coverage": 0
},
"85": {
"source": " res.send 'ma cosa ho fatto di male '+(res.message.user.name or '')+'? :('",
"coverage": 0
},
"86": {
"source": " robot.hear /(?:ehi|ciao|(?:bella(?: li)?)) (?:asjon|assa|assion(?:i|e))/i, (res) ->",
"coverage": 0
},
"87": {
"source": " console.log res.match",
"coverage": 0
},
"88": {
"source": " saluti = ['ciao', 'bella', 'è arrivato', 'eccolooo', 'dimmi', 'weeee', 'ehilà']",
"coverage": 0
},
"89": {
"source": " res.send res.random(saluti)+' '+res.message.user.name+'!'",
"coverage": 0
},
"90": {
"source": " robot.respond /secret-kill-code/i, (res) -> process.exit 0",
"coverage": 0
},
"91": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/shell.coffee",
"coverage": 53.48837209302325,
"hits": 23,
"misses": 20,
"sloc": 43,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# abilità di asjon di usare la shell *nix",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Requires:",
"coverage": ""
},
"5": {
"source": "# None",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Commands:",
"coverage": ""
},
"8": {
"source": "# asjon run/esegui/shell git/npm args...",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Author:",
"coverage": ""
},
"11": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"12": {
"source": "",
"coverage": ""
},
"13": {
"source": "cp = require 'child_process'",
"coverage": 1
},
"14": {
"source": "",
"coverage": ""
},
"15": {
"source": "nope = ['BZBZ 400-BAD-REQUEST', 'BZBZ DOES-NOT-COMPUTE', 'BZBZ ADMIN-NOT-DETECTED', 'BZBZ IS-NOT-AUTHORIZED', 'BZBZ ACCESS-DENIED']",
"coverage": 1
},
"16": {
"source": "",
"coverage": ""
},
"17": {
"source": "isFromAdmin = (res) ->",
"coverage": 1
},
"18": {
"source": " res.message.user.room is process.env.ADMIN_ROOM?.replace(':','#') or res.robot.adapterName is 'shell'",
"coverage": 6
},
"19": {
"source": "",
"coverage": ""
},
"20": {
"source": "runCmd = (cmd,res,cb) ->",
"coverage": 1
},
"21": {
"source": " if res? then res.send 'Operazione in corso: '+cmd",
"coverage": 5
},
"22": {
"source": " if process.env.TESTING_ASJON",
"coverage": 5
},
"23": {
"source": " # Fingi di eseguire l'operazione",
"coverage": ""
},
"24": {
"source": " if res? then res.send 'Operazione \"completata\": '+cmd",
"coverage": 5
},
"25": {
"source": " else cp.exec cmd, (err,stdout,stderr) ->",
"coverage": 0
},
"26": {
"source": " if res?",
"coverage": 0
},
"27": {
"source": " if err",
"coverage": 0
},
"28": {
"source": " res.send 'Operazione fallita:\\n'+stdout+stderr",
"coverage": 0
},
"29": {
"source": " else",
"coverage": ""
},
"30": {
"source": " res.send 'Operazione completata:\\n'+stdout",
"coverage": 0
},
"31": {
"source": " if cb? then cb err,stdout,stderr",
"coverage": 0
},
"32": {
"source": "",
"coverage": ""
},
"33": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"34": {
"source": " robot.respond /aggiornati|scarica (?:gli )?aggiornamenti/i, (res) ->",
"coverage": 1
},
"35": {
"source": " if !isFromAdmin(res) then return res.send res.random nope",
"coverage": 1
},
"36": {
"source": " runCmd 'git pull && npm install', res",
"coverage": 1
},
"37": {
"source": "",
"coverage": ""
},
"38": {
"source": " robot.respond /(?:controlla gli )?aggiornamenti/i, (res) ->",
"coverage": 1
},
"39": {
"source": " if !isFromAdmin(res) then return res.send res.random nope",
"coverage": 3
},
"40": {
"source": " runCmd 'git fetch && git status', res",
"coverage": 2
},
"41": {
"source": "",
"coverage": ""
},
"42": {
"source": " robot.respond /(?:installa (?:le )?)?dipendenze/i, (res) ->",
"coverage": 1
},
"43": {
"source": " if !isFromAdmin(res) then return res.send res.random nope",
"coverage": 1
},
"44": {
"source": " runCmd 'npm install', res",
"coverage": 1
},
"45": {
"source": "",
"coverage": ""
},
"46": {
"source": " robot.respond /(?:esegui (?:i )?)?test/i, (res) ->",
"coverage": 1
},
"47": {
"source": " if !isFromAdmin(res) then return res.send res.random nope",
"coverage": 1
},
"48": {
"source": " runCmd 'npm test', res",
"coverage": 1
},
"49": {
"source": "",
"coverage": ""
},
"50": {
"source": " # Run tests on boot and report to ADMIN",
"coverage": ""
},
"51": {
"source": " if process.env.AUTO_RUN_TESTS and process.env.ADMIN_ROOM",
"coverage": 1
},
"52": {
"source": " dest = room: process.env.ADMIN_ROOM.replace(':','#')",
"coverage": 0
},
"53": {
"source": " robot.send dest, 'Operazione in corso: npm test'",
"coverage": 0
},
"54": {
"source": " runCmd 'npm test', null, (err,stdout,stderr) ->",
"coverage": 0
},
"55": {
"source": " if err",
"coverage": 0
},
"56": {
"source": " robot.send dest, 'ATTENZIONE: TEST FAILURE\\n'+stdout+stderr",
"coverage": 0
},
"57": {
"source": " else",
"coverage": ""
},
"58": {
"source": " robot.send dest, 'Test superati con successo:\\n'+stdout",
"coverage": 0
},
"59": {
"source": "",
"coverage": ""
},
"60": {
"source": " robot.on 'githubhook', (data,params) ->",
"coverage": 1
},
"61": {
"source": " if data.ref is 'refs/heads/master' and process.env.AUTO_KILL_ON_UPDATE",
"coverage": 0
},
"62": {
"source": " runCmd 'git pull && npm install', null, ->",
"coverage": 0
},
"63": {
"source": " dest = name: params.name, room: params.room.replace(':','#')",
"coverage": 0
},
"64": {
"source": " robot.send dest, 'riavvio in 5 SECONDI'",
"coverage": 0
},
"65": {
"source": " reboot = ->",
"coverage": 0
},
"66": {
"source": " console.log 'AUTO IMPICCAGIONE IN CORSO!'",
"coverage": 0
},
"67": {
"source": " process.exit 0",
"coverage": 0
},
"68": {
"source": " setTimeout reboot, 5000",
"coverage": 0
},
"69": {
"source": "",
"coverage": ""
},
"70": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/tempo.coffee",
"coverage": 50,
"hits": 2,
"misses": 2,
"sloc": 4,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# utilità varie per gli orari e le date",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# \"moment\": \"2.10.2\"",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Configuration:",
"coverage": ""
},
"8": {
"source": "# None",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Commands:",
"coverage": ""
},
"11": {
"source": "# hubot che ore sono? - stampa informazioni su questo momento",
"coverage": ""
},
"12": {
"source": "#",
"coverage": ""
},
"13": {
"source": "# Author:",
"coverage": ""
},
"14": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"15": {
"source": "",
"coverage": ""
},
"16": {
"source": "moment = require 'moment'",
"coverage": 1
},
"17": {
"source": "",
"coverage": ""
},
"18": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"19": {
"source": " robot.respond /che ore sono(?:\\?)?/i, (res) ->",
"coverage": 0
},
"20": {
"source": " res.send moment().format('dddd Do MMMM YYYY H:MM:SS')",
"coverage": 0
},
"21": {
"source": "",
"coverage": ""
}
}
},
{
"filename": "scripts/wolfram.coffee",
"coverage": 7.6923076923076925,
"hits": 1,
"misses": 12,
"sloc": 13,
"source": {
"1": {
"source": "# Description:",
"coverage": ""
},
"2": {
"source": "# accede a wolfram alpha",
"coverage": ""
},
"3": {
"source": "#",
"coverage": ""
},
"4": {
"source": "# Dependencies:",
"coverage": ""
},
"5": {
"source": "# \"wolfram\":\"0.3.1\"",
"coverage": ""
},
"6": {
"source": "#",
"coverage": ""
},
"7": {
"source": "# Configuration:",
"coverage": ""
},
"8": {
"source": "# WOLFRAM_API_KEY - self explanatory",
"coverage": ""
},
"9": {
"source": "#",
"coverage": ""
},
"10": {
"source": "# Commands",
"coverage": ""
},
"11": {
"source": "# hubot wolfram/wfa/quanto fa/compute ... - pone la domanda a Wolfram Alpha",
"coverage": ""
},
"12": {
"source": "#",
"coverage": ""
},
"13": {
"source": "# Author:",
"coverage": ""
},
"14": {
"source": "# Enrico Fasoli (fazo96)",
"coverage": ""
},
"15": {
"source": "#",
"coverage": ""
},
"16": {
"source": "",
"coverage": ""
},
"17": {
"source": "",
"coverage": ""
},
"18": {
"source": "module.exports = (robot) ->",
"coverage": 1
},
"19": {
"source": " if not process.env.WOLFRAM_API_KEY?",
"coverage": 0
},
"20": {
"source": " console.log 'NO WOLFRAM_API_KEY SET!'",
"coverage": 0
},
"21": {
"source": " return # no api key, no wolfy",
"coverage": 0
},
"22": {
"source": " wolfram = require('wolfram').createClient process.env.WOLFRAM_API_KEY",
"coverage": 0
},
"23": {
"source": " robot.respond /(?:quanto fa|compute|wfa|wolfram) (.+)/i, (res) ->",
"coverage": 0
},
"24": {
"source": " res.send 'contattando Wolfram Alpha...'",
"coverage": 0
},
"25": {
"source": " wolfram.query res.match[1], (err, result) ->",
"coverage": 0
},
"26": {
"source": " if err then return res.send err",
"coverage": 0
},
"27": {
"source": " parseSubPod = (subpod) -> subpod.value or subpod.image",
"coverage": 0
},
"28": {
"source": " parsePod = (pod) ->",
"coverage": 0
},
"29": {
"source": " '\\n=== ' + pod.title + '\\n' + pod.subpods.map(parseSubPod).join('\\n')",
"coverage": 0
},
"30": {
"source": " res.send (parsePod(pod) for pod in result).join('')",
"coverage": 0
},
"31": {
"source": "",
"coverage": ""
}
}
}
],
"stats": {
"suites": 4,
"tests": 20,
"passes": 20,
"pending": 0,
"failures": 0,
"start": "2015-04-28T13:55:48.144Z",
"end": "2015-04-28T13:55:48.839Z",
"duration": 695
},
"tests": [
{
"title": "should intercept hubot's HTTP calls",
"fullTitle": "hubot mock should intercept hubot's HTTP calls",
"duration": 12
},
{
"title": "dovrebbe contattare l'indirizzo corretto",
"fullTitle": "modulo circolari dovrebbe contattare l'indirizzo corretto",
"duration": 12
},
{
"title": "dovrebbe parsare correttamente le circolari",
"fullTitle": "modulo circolari dovrebbe parsare correttamente le circolari",
"duration": 305
},
{
"title": "dovrebbe accettare correttamente il numero di circolari da visualizzare",
"fullTitle": "modulo circolari dovrebbe accettare correttamente il numero di circolari da visualizzare",
"duration": 276
},
{
"title": "dovrebbe linkare correttamente il numero di circolari",
"fullTitle": "modulo circolari dovrebbe linkare correttamente il numero di circolari",
"duration": 0
},
{
"title": "risponde quando richiesto",
"fullTitle": "modulo memoria risponde quando richiesto",
"duration": 21
},
{
"title": "permette di memorizzare un ricordo",
"fullTitle": "modulo memoria permette di memorizzare un ricordo",
"duration": 0
},
{
"title": "permette di alterare un ricordo",
"fullTitle": "modulo memoria permette di alterare un ricordo",
"duration": 1
},
{
"title": "permette di eliminare un ricordo",
"fullTitle": "modulo memoria permette di eliminare un ricordo",
"duration": 0
},
{
"title": "permette di visualizzare una data",
"fullTitle": "modulo memoria permette di visualizzare una data",
"duration": 5
},
{
"title": "visualizza un argomento data solo se opportuno",
"fullTitle": "modulo memoria visualizza un argomento data solo se opportuno",
"duration": 1
},
{
"title": "visualizza un valore data solo se opportuno",
"fullTitle": "modulo memoria visualizza un valore data solo se opportuno",
"duration": 2
},
{
"title": "offre un memory dump per debugging",
"fullTitle": "modulo memoria offre un memory dump per debugging",
"duration": 1
},
{
"title": "non interferisce con \"circolari\"",
"fullTitle": "modulo memoria non interferisce con \"circolari\"",
"duration": 2
},
{
"title": "dovrebbe non eseguire i comandi se l'interlocutore non è autorizzato",
"fullTitle": "modulo shell dovrebbe non eseguire i comandi se l'interlocutore non è autorizzato",
"duration": 0
},
{
"title": "dovrebbe riconoscere la stanza autorizzata",
"fullTitle": "modulo shell dovrebbe riconoscere la stanza autorizzata",
"duration": 1
},
{
"title": "dovrebbe eseguire i comandi corretti per installare gli aggiornamenti",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per installare gli aggiornamenti",
"duration": 1
},
{
"title": "dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti",
"duration": 0
},
{
"title": "dovrebbe eseguire i comandi corretti per installare le dipendenze",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per installare le dipendenze",
"duration": 0
},
{
"title": "dovrebbe eseguire i comandi corretti per eseguire i test",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per eseguire i test",
"duration": 1
}
],
"failures": [],
"passes": [
{
"title": "should intercept hubot's HTTP calls",
"fullTitle": "hubot mock should intercept hubot's HTTP calls",
"duration": 12
},
{
"title": "dovrebbe contattare l'indirizzo corretto",
"fullTitle": "modulo circolari dovrebbe contattare l'indirizzo corretto",
"duration": 12
},
{
"title": "dovrebbe parsare correttamente le circolari",
"fullTitle": "modulo circolari dovrebbe parsare correttamente le circolari",
"duration": 305
},
{
"title": "dovrebbe accettare correttamente il numero di circolari da visualizzare",
"fullTitle": "modulo circolari dovrebbe accettare correttamente il numero di circolari da visualizzare",
"duration": 276
},
{
"title": "dovrebbe linkare correttamente il numero di circolari",
"fullTitle": "modulo circolari dovrebbe linkare correttamente il numero di circolari",
"duration": 0
},
{
"title": "risponde quando richiesto",
"fullTitle": "modulo memoria risponde quando richiesto",
"duration": 21
},
{
"title": "permette di memorizzare un ricordo",
"fullTitle": "modulo memoria permette di memorizzare un ricordo",
"duration": 0
},
{
"title": "permette di alterare un ricordo",
"fullTitle": "modulo memoria permette di alterare un ricordo",
"duration": 1
},
{
"title": "permette di eliminare un ricordo",
"fullTitle": "modulo memoria permette di eliminare un ricordo",
"duration": 0
},
{
"title": "permette di visualizzare una data",
"fullTitle": "modulo memoria permette di visualizzare una data",
"duration": 5
},
{
"title": "visualizza un argomento data solo se opportuno",
"fullTitle": "modulo memoria visualizza un argomento data solo se opportuno",
"duration": 1
},
{
"title": "visualizza un valore data solo se opportuno",
"fullTitle": "modulo memoria visualizza un valore data solo se opportuno",
"duration": 2
},
{
"title": "offre un memory dump per debugging",
"fullTitle": "modulo memoria offre un memory dump per debugging",
"duration": 1
},
{
"title": "non interferisce con \"circolari\"",
"fullTitle": "modulo memoria non interferisce con \"circolari\"",
"duration": 2
},
{
"title": "dovrebbe non eseguire i comandi se l'interlocutore non è autorizzato",
"fullTitle": "modulo shell dovrebbe non eseguire i comandi se l'interlocutore non è autorizzato",
"duration": 0
},
{
"title": "dovrebbe riconoscere la stanza autorizzata",
"fullTitle": "modulo shell dovrebbe riconoscere la stanza autorizzata",
"duration": 1
},
{
"title": "dovrebbe eseguire i comandi corretti per installare gli aggiornamenti",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per installare gli aggiornamenti",
"duration": 1
},
{
"title": "dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti",
"duration": 0
},
{
"title": "dovrebbe eseguire i comandi corretti per installare le dipendenze",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per installare le dipendenze",
"duration": 0
},
{
"title": "dovrebbe eseguire i comandi corretti per eseguire i test",
"fullTitle": "modulo shell dovrebbe eseguire i comandi corretti per eseguire i test",
"duration": 1
}
]
}