80 lines
1.7 KiB
Java

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<String> 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;
}
}