CmdUtils.CreateCommand({
name: "tmb",
takes: {"codi_parada num_bus": noun_arb_text},
homepage: "http://www.mutsuda.com",
author: { name: "Masumi Mutsuda"},
license: "MPL",
description: "T'informa de quan arribaran els propers busos a les parades",
preview: function( pblock, parada)
{
var msg = 'Parada Bus"${paradaText}" el Bus ${busText}.';
var subs = {paradaText: parada.text};
var codiparada = parada.text.substring(0, 4);
var codibus = parada.text.substring(5);
var URL = "http://www.tmb.cat/ca_ES/tmbmulticanal/ibus/ibusweb/cercapercodi.jsp?parada="+codiparada+"&linia="+ codibus;
if (parada.text.length == 4)
{
var msg = obtenirContent(URL);
if (msg.indexOf("No existeix el codi de parada") > 0) pblock.innerHTML = "No existeix el codi parada";
else
{
var start = msg.indexOf("
");
var end = msg.indexOf("", start);
var show = msg.substring(start, end);
pblock.innerHTML = show+" | ";
}
}
},
execute: function( parada)
{
var codiparada = parada.text.substring(0, 4);
var codibus = parada.text.substring(5);
var URL = "http://www.tmb.cat/ca_ES/tmbmulticanal/ibus/ibusweb/cercapercodi.jsp?parada="+codiparada+"&linia="+ codibus;
var msg = obtenirContent(URL);
if (msg.indexOf("Línia i parada no coincidents") > 0) displayMessage("Línia i parada no coincidents");
else if (msg.indexOf("Temporalment sense previsions") > 0) displayMessage("Temporalment sense previsions");
else if (msg.indexOf("Consulteu les línies disponibles") > 0) displayMessage("Línia sense servei TMBiBus");
else if (codiparada.length < 4) displayMessage("El codi de parada té un format invàlid");
else if (codibus.length == 0) displayMessage("Has d'especificar una línia de bus");
else
{
var start = msg.indexOf("");
var end = msg.indexOf("", start);
start = msg.indexOf("Temps*");
var firststart= msg.indexOf("| ", start) + 19;
var firstend = msg.indexOf(" | ", firststart);
var proper1 = msg.substring(firststart, firstend);
var secondstart = msg.indexOf("", firstend) + 19;
var secondend = msg.indexOf(" | ", secondstart);
var proper2 = msg.substring(secondstart, secondend);
if (proper2.indexOf(" Temps")>=0) proper2="";
displayMessage(proper1 + "\n" + proper2);
}
}
});
function obtenirContent(URL)
{
var error=0;
var req = new XMLHttpRequest();
req.open("GET", URL, false);
req.onreadystatechange=function()
{
if (req.readyState==4)
{
if (req.status!=200)
{
error=1;
}
}
}
req.send(null);
var txt=req.responseText;
return txt;
}