package edu.gricar.brezskrbnik.vreme;
import java.net.URL;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
import org.htmlcleaner.XPatherException;
import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
import edu.gricar.brezskrbnik.ApplicationBrezskrbnik;
public class AccuParser {
ApplicationBrezskrbnik app;
public TagNode xmlCleaner(String url) {
try {
HtmlCleaner cleaner = new HtmlCleaner();
TagNode root = cleaner.clean(new URL(url));
return root;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param node HTML5 node
* @param XPathExpression
* @return HTML5 subnode
*/
private TagNode[] findInfo(TagNode node, String XPathExpression) {
TagNode[] description_node = null;
Object[] object = null;
try {
object = node.evaluateXPath(XPathExpression);
description_node = new TagNode[object.length];
for(int i=0; i<object.length; i++){
description_node[i] = (TagNode) object[i];
}
} catch (XPatherException e) {
e.printStackTrace();
}
return description_node;
}
public AccuParser(ApplicationBrezskrbnik app){
try {
String kraj = ActivityVreme.kraj;
kraj = kraj.replace(" ", "-");
kraj = kraj.replace("�", "c");
kraj = kraj.replace("�", "z");
kraj = kraj.replace("�", "s");
kraj = kraj.replace("�", "c");
kraj = kraj.replace("�", "z");
kraj = kraj.replace("�", "s");
Translate.setKey("FFFA78669F3D3DBACCEC690DFA60E95A5F8D86FF");
TagNode stran = xmlCleaner("http://www.accuweather.com/en-us/si/" + kraj + "/" + kraj + "/forecast.aspx");
TagNode[] all = findInfo(stran, "//div[@id='content_640']//div[@class='fltLeft'][1]//div[@style='margin-bottom: 10px;']");
Vreme[] vreme = new Vreme[all.length];
for(int i=0; i<all.length; i++){
String[] img_url = findInfo(all[i], "//div[@class='ForecastIcon']//img")[0].getAttributeByName("src").toString().split("/");
TagNode[] info = findInfo(all[i], "//span");
vreme[i] = new Vreme(info[0].getText().toString(), info[5].getText().toString().replace("°", "�"), info[3].getText().toString().replace("°", "�"), Translate.execute(info[1].getText().toString(), Language.SLOVENIAN) , img_url[img_url.length-1]);
}
app.setVreme(vreme);
}
catch (Exception e) {
e.printStackTrace();
}
}
}