FSProtokollLinker/src/com/kallendorf/fsplugin/fsprotokolle/FSProtokollHelper.java
2022-11-09 23:36:08 +01:00

58 lines
2.1 KiB
Java

package com.kallendorf.fsplugin.fsprotokolle;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Scanner;
public class FSProtokollHelper {
final static String MATHEBAU_PROTKOLLE = "https://mathebau.de/protokolle/";
public static String[] getProtokollNames() {
String content = null;
URLConnection connection = null;
try {
connection = new URL(MATHEBAU_PROTKOLLE).openConnection();
Scanner scanner = new Scanner(connection.getInputStream());
scanner.useDelimiter("\\Z");
content = scanner.next();
scanner.close();
} catch (Exception ex) {
ex.printStackTrace();
}
String[] protokolle = Arrays.stream(content.split(System.lineSeparator()))
.filter(l -> l.startsWith("<a href=\"fs-protokoll-"))
.map(l -> l.split("\"")[1])
.toArray(String[]::new);
return protokolle;
}
public static String[] getProtokollNamesCurrent() {
int year = Calendar.getInstance().get(Calendar.YEAR);
String yearString = String.valueOf(year);
String[] allProtokolls = getProtokollNames();
String[] currentProtokolls = Arrays.stream(allProtokolls)
.filter(t -> t.split("-")[2].equals(yearString))
.toArray(String[]::new);
return currentProtokolls;
}
public static int[] parseDate(String protokollTitle) {
// fs-protokoll-2020-12-16_A-Teil_en.pdf
String[] parts = protokollTitle.split("-");
return new int[] { Integer.parseInt(parts[2]), Integer.parseInt(parts[3]), Integer.parseInt(parts[4]) };
}
public static String verboseTitleString(String protokollTitle) {
int[] dateParts = parseDate(protokollTitle);
return String.format("Protokoll der Sitzung vom %2d.%2d.%4d", dateParts[2], dateParts[1], dateParts[0]);
}
public static String getDownloadLink(String protokollTitle) {
return MATHEBAU_PROTKOLLE + protokollTitle;
}
}