80 lines
1.7 KiB
Java
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;
|
|
}
|
|
}
|