package xyz.thastertyn.Scrape; import java.io.IOException; import java.net.UnknownHostException; import java.util.Arrays; import java.util.HashSet; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** * Jeden radek v rozvrhu */ public class Rozvrh { private String[][] rozvrh = new String[5][10]; /** * Stahne rozvrh z www.spsejecna.cz a dale ho zpracuje do formy * se kterou da pracovat * @param Jsessionid ze stranek * @throws UnknownHostException kdyz neni pripojeni k internetu * @throws IOException ostatni exceptiony nejsou dulezite, tak jsou zahrnuty v jednom */ public void downloadRozvrh() throws UnknownHostException, IOException { Document rozvrhDokumentHTML = Downloader.download("https://www.spsejecna.cz/timetable/class").get(); Elements[] radkyRozvrhuHTML = rozvrhDokumentHTML .select("table.timetable") .select("tr") .stream() .map(Element::children) .toArray(Elements[]::new); for(int i = 1; i < 6; i++) { for(int j = 1; j < 11; j++) { String predmet = radkyRozvrhuHTML[i].get(j).select("span.subject").text(); // Predmety jako CEL jsou trikrat, staci ale jen jednou String[] split = predmet.split(" "); HashSet set = new HashSet<>(Arrays.asList(split)); String pr = String.join("/", set); rozvrh[i-1][j-1] = pr; } } } public void setPredmet(String pr, int d, int i) { rozvrh[d][i] = pr; } public String[][] getRozvrh() { return rozvrh; } @Override public String toString() { String s = ""; for(String[] st : rozvrh) { s += ("| "); for(String str : st) { s += String.format("%-5s", str) + " | "; } s += "\n"; } return s; } }