Added Option to Show not running trains on certain days

This commit is contained in:
genuineparts 2025-02-16 21:15:44 +01:00
parent 43d4e43d99
commit e7a8f8987d
4 changed files with 33 additions and 10 deletions

View file

@ -9,6 +9,8 @@ apiserver {
bgcolormain = "black"
textcolormain = "red"
textcolorupdate = "grey"
textcolornotrun = "orange"
bgcolornotrun = "black"
monitors {
monitor1 {
@ -18,6 +20,7 @@ apiserver {
Station = ""
FinalStop = ""
maxjourneys = 1
notRunningDays = []
}
monitor2 {
Title = ""
@ -26,6 +29,7 @@ apiserver {
Station = ""
FinalStop = ""
maxjourneys = 1
notRunningDays = []
}
monitor3 {
Title = ""
@ -34,6 +38,7 @@ apiserver {
Station = ""
FinalStop = ""
maxjourneys = 1
notRunningDays = []
}
monitor4 {
Title = ""
@ -42,6 +47,7 @@ apiserver {
Station = ""
FinalStop = ""
maxjourneys = 1
notRunningDays = []
}
}
}

View file

@ -17,7 +17,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
public class Main {
private static final String version = "0.4";
private static final String version = "0.5";
private static final HashMap<String, Integer> data = new HashMap<>();
public static Settings conf;
static OebbCheck check = new OebbCheck();
@ -66,10 +66,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"))));
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"))));
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"))));
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"))));
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")));
time = System.currentTimeMillis();
}
@ -160,14 +160,19 @@ public class Main {
private static void makeLabel(JSONObject Monitor, int zeit){
if(zeit != 0){
Monitor.put("color",conf.getString("textcolordelay"));
Monitor.put("background",conf.getString("bgcolordelay"));
if(zeit > 0 && zeit < 9999){
Monitor.put("data",zeit);
}else if(zeit == 9999){
} else if(zeit == 9999) {
Monitor.put("data","AUSFALL!");
}else{
} else if(zeit == -1) {
Monitor.put("data","Fehler!");
} else {
Monitor.put("data","Fährt heute nicht");
Monitor.put("color",conf.getString("textcolornotrun"));
Monitor.put("background",conf.getString("bgcolornotrun"));
}
Monitor.put("background",conf.getString("bgcolordelay"));
} else {
Monitor.put("color",conf.getString("textcolor"));
Monitor.put("data","On time");

View file

@ -12,22 +12,28 @@ 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;
public class OebbCheck {
public static final Logger LOG = LoggerFactory.getLogger(OebbCheck.class);
Calendar now = Calendar.getInstance();
public OebbCheck(){
}
/*
Returns the Delay in Minutes for a given StationID, Departure Time, final stop and Train type(i.e. REX 3, S 2....)
Returns -2 if no connection was found and the Weekday is in notRunningDay
Returns -1 if no connection was found
Returns 0 for no delay
>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) {
public int getStatus(String Station, String Time, String FinalStop, String TrainType, String maxjourneys, List<Integer> notRunningDays) {
JSONArray journeys = null;
now.setTime(new Date());
try {
journeys = getData(Station, Time, maxjourneys);
} catch (URISyntaxException e) {
@ -50,7 +56,11 @@ public class OebbCheck {
}
}
}
return -1;
if(notRunningDays.contains(now.get(Calendar.DAY_OF_WEEK))){
return -2;
} else {
return -1;
}
}
return -1;
}

View file

@ -49,4 +49,6 @@ public class Settings {
public List<String> getStringList(String key){
return config.getStringList(key);
}
public List<Integer> getIntList(String key){ return config.getIntList(key); }
}