diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..fd4be7b
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 1c85357..3ddf86c 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -8,7 +8,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 02c01a5..f828215 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
be.jaud
OebbApi
- 0.5
+ 0.7
jar
ÖBB delay check and output for Info Orbs
@@ -29,9 +29,14 @@
ch.qos.logback
logback-classic
- 1.5.12
+ 1.5.13
-
+
+ de.fumix
+ holidays
+ 1.0.3
+
+
OebbApi
@@ -88,8 +93,8 @@
maven-compiler-plugin
3.13.0
- 21
- 21
+ 16
+ 16
diff --git a/src/main/java/be/jaud/Main.java b/src/main/java/be/jaud/Main.java
index 42acad6..b4ea9b6 100644
--- a/src/main/java/be/jaud/Main.java
+++ b/src/main/java/be/jaud/Main.java
@@ -12,12 +12,10 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.text.SimpleDateFormat;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
+import java.util.*;
import java.util.concurrent.TimeUnit;
public class Main {
- private static final String version = "0.6";
+ private static final String version = "0.7";
private static final HashMap data = new HashMap<>();
public static Settings conf;
static OebbCheck check = new OebbCheck();
@@ -66,10 +64,10 @@ public class Main {
}
private static void refresh() throws IOException {
- data.put(conf.getString("monitors.monitor1.DepartureTime"),check.getStatus(conf.getString("monitors.monitor1.Station"),conf.getString("monitors.monitor1.DepartureTime"), conf.getString("monitors.monitor1.FinalStop"),conf.getString("monitors.monitor1.TrainType"),String.valueOf(conf.getInt("monitors.monitor1.maxjourneys")), conf.getIntList("monitors.monitor1.notRunningDays")));
- data.put(conf.getString("monitors.monitor2.DepartureTime"),check.getStatus(conf.getString("monitors.monitor2.Station"),conf.getString("monitors.monitor2.DepartureTime"), conf.getString("monitors.monitor2.FinalStop"),conf.getString("monitors.monitor2.TrainType"),String.valueOf(conf.getInt("monitors.monitor2.maxjourneys")), conf.getIntList("monitors.monitor2.notRunningDays")));
- data.put(conf.getString("monitors.monitor3.DepartureTime"),check.getStatus(conf.getString("monitors.monitor3.Station"),conf.getString("monitors.monitor3.DepartureTime"), conf.getString("monitors.monitor3.FinalStop"),conf.getString("monitors.monitor3.TrainType"),String.valueOf(conf.getInt("monitors.monitor3.maxjourneys")), conf.getIntList("monitors.monitor3.notRunningDays")));
- data.put(conf.getString("monitors.monitor4.DepartureTime"),check.getStatus(conf.getString("monitors.monitor4.Station"),conf.getString("monitors.monitor4.DepartureTime"), conf.getString("monitors.monitor4.FinalStop"),conf.getString("monitors.monitor4.TrainType"),String.valueOf(conf.getInt("monitors.monitor4.maxjourneys")), conf.getIntList("monitors.monitor4.notRunningDays")));
+ data.put(conf.getString("monitors.monitor1.DepartureTime"),check.getStatus(conf.getString("monitors.monitor1.Station"),conf.getString("monitors.monitor1.DepartureTime"), conf.getString("monitors.monitor1.FinalStop"),conf.getString("monitors.monitor1.TrainType"),String.valueOf(conf.getInt("monitors.monitor1.maxjourneys")), conf.getStringList("monitors.monitor1.notRunningDays")));
+ data.put(conf.getString("monitors.monitor2.DepartureTime"),check.getStatus(conf.getString("monitors.monitor2.Station"),conf.getString("monitors.monitor2.DepartureTime"), conf.getString("monitors.monitor2.FinalStop"),conf.getString("monitors.monitor2.TrainType"),String.valueOf(conf.getInt("monitors.monitor2.maxjourneys")), conf.getStringList("monitors.monitor2.notRunningDays")));
+ data.put(conf.getString("monitors.monitor3.DepartureTime"),check.getStatus(conf.getString("monitors.monitor3.Station"),conf.getString("monitors.monitor3.DepartureTime"), conf.getString("monitors.monitor3.FinalStop"),conf.getString("monitors.monitor3.TrainType"),String.valueOf(conf.getInt("monitors.monitor3.maxjourneys")), conf.getStringList("monitors.monitor3.notRunningDays")));
+ data.put(conf.getString("monitors.monitor4.DepartureTime"),check.getStatus(conf.getString("monitors.monitor4.Station"),conf.getString("monitors.monitor4.DepartureTime"), conf.getString("monitors.monitor4.FinalStop"),conf.getString("monitors.monitor4.TrainType"),String.valueOf(conf.getInt("monitors.monitor4.maxjourneys")), conf.getStringList("monitors.monitor4.notRunningDays")));
time = System.currentTimeMillis();
}
diff --git a/src/main/java/be/jaud/OebbCheck.java b/src/main/java/be/jaud/OebbCheck.java
index 979e84b..36b7d39 100644
--- a/src/main/java/be/jaud/OebbCheck.java
+++ b/src/main/java/be/jaud/OebbCheck.java
@@ -1,5 +1,9 @@
package be.jaud;
+import de.fumix.holidays.config.Config;
+import de.fumix.holidays.config.Holiday;
+import de.fumix.holidays.config.Region;
+import de.fumix.holidays.impl.HolidaysImpl;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -13,9 +17,8 @@ import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.time.LocalDate;
+import java.util.*;
public class OebbCheck {
public static final Logger LOG = LoggerFactory.getLogger(OebbCheck.class);
@@ -32,7 +35,7 @@ public class OebbCheck {
>0 is the delay in Minutes
9999 means the Train has been cancelled
*/
- public int getStatus(String Station, String Time, String FinalStop, String TrainType, String maxjourneys, List notRunningDays) {
+ public int getStatus(String Station, String Time, String FinalStop, String TrainType, String maxjourneys, List notRunningDays) {
JSONArray journeys = null;
now.setTime(new Date());
try {
@@ -57,7 +60,11 @@ public class OebbCheck {
}
}
}
- if(notRunningDays.contains(now.get(Calendar.DAY_OF_WEEK))){
+ Config config = Config.fromResources();
+ final Region region = config.regionOf("AT").orElseThrow(() -> new IllegalArgumentException("Undefined region"));
+ final HolidaysImpl holidays = new HolidaysImpl(region);
+ Holiday dat= holidays.at(LocalDate.now()).orElse(null);
+ if(notRunningDays.contains(String.valueOf(now.get(Calendar.DAY_OF_WEEK))) || (dat != null && notRunningDays.contains("H"))){
return -2;
} else {
return -1;
diff --git a/src/main/java/be/jaud/Settings.java b/src/main/java/be/jaud/Settings.java
index caeaf92..f2e181e 100644
--- a/src/main/java/be/jaud/Settings.java
+++ b/src/main/java/be/jaud/Settings.java
@@ -39,7 +39,7 @@ public class Settings {
return config.getInt(key);
}
- //public List getStringList(String key){ return config.getStringList(key); }
-
public List getIntList(String key){ return config.getIntList(key); }
+
+ public List getStringList(String key){ return config.getStringList(key); }
}