1 package cz.frantovo.nekurak.ext;
3 import cz.frantovo.nekurak.vyjimky.TexyVyjimka;
4 import java.io.BufferedReader;
5 import java.io.IOException;
6 import java.io.InputStreamReader;
7 import java.io.OutputStreamWriter;
9 import java.net.URLConnection;
10 import java.net.URLEncoder;
11 import java.util.logging.Level;
12 import java.util.logging.Logger;
15 * Neprovádí vlastní interpretaci Texy syntaxe, ale volá HTTP službu napsanou v PHP.
16 * TODO: použít webové služby, nebo něco lepšího než ruční práci s URL.
21 /** TODO: parametrizovatelnost */
22 private static final String URL_SLUZBY = "http://nekurak.net/texy/http/";
23 private static final String KODOVANI = "UTF-8";
24 private static final Logger log = Logger.getLogger(Texy.class.getSimpleName());
26 public String preved(String text) throws TexyVyjimka {
27 OutputStreamWriter wr = null;
28 BufferedReader rd = null;
30 URL url = new URL(URL_SLUZBY);
31 URLConnection spojeni = url.openConnection();
32 spojeni.setDoOutput(true);
35 wr = new OutputStreamWriter(spojeni.getOutputStream());
36 wr.write(URLEncoder.encode(text, KODOVANI));
39 /** Přijmeme odpověď */
40 rd = new BufferedReader(new InputStreamReader(spojeni.getInputStream(), KODOVANI));
41 StringBuilder vysledek = new StringBuilder();
43 while ((radka = rd.readLine()) != null) {
44 vysledek.append(radka);
47 return vysledek.toString();
48 } catch (Exception e) {
49 throw new TexyVyjimka("Chyba při zpracovávání textu: " + text, e);
53 } catch (IOException e) {
54 log.log(Level.WARNING, "Selhalo zavírání OutputStreamWriteru", e);
58 } catch (IOException e) {
59 log.log(Level.WARNING, "Selhalo zavírání BufferedReaderu", e);