package edu.gricar.service;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
import org.htmlcleaner.XPatherException;
import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
public class Service2 {
public TagNode xmlCleaner(String url) {
CleanerProperties props = new CleanerProperties();
props.setTranslateSpecialEntities(true);
props.setTransResCharsToNCR(true);
props.setOmitComments(true);
TagNode tagNode;
try {
tagNode = new HtmlCleaner(props).clean(new URL(url));
return tagNode;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
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 String Parser(String kraj) throws Exception{
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");
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");
System.out.println(info[0].getText() + "\t" + info[5].getText().toString().replace("°", "�") + "\t" + info[1].getText() + "\t" + img_url[img_url.length-1]);
vreme[i] = new Vreme(info[0].getText().toString(), info[5].getText().toString().replace("°", "�"), info[3].getText().toString().replace("°", "�"), info[1].getText().toString(), img_url[img_url.length-1]);
}
Translate.setKey("FFFA78669F3D3DBACCEC690DFA60E95A5F8D86FF");
//vreme[1].setOpis(Translate.execute(vreme[1].getOpis().toString(), Language.ENGLISH, Language.SLOVENIAN));
String prevod = Translate.execute(vreme[1].getOpis().toString(), Language.SLOVENIAN);
System.out.println(prevod);
vreme[1].setOpis(prevod);
return vreme[1].getSlika().toString() + ";" + vreme[1].getRealfeel().toString() + ";" + vreme[1].getOpis().toString();
}
public Service2() throws Exception{
getVreme();
}
public static void main(String [] args) throws Exception{
new Service2();
}
public String getVreme() throws Exception{
return Parser("mozirje");
}
}