Changed to java 17, modified marks a bit
This commit is contained in:
parent
8e74a0b96e
commit
009bd97d4f
4
pom.xml
4
pom.xml
@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<maven.compiler.source>11</maven.compiler.source>
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
<maven.compiler.target>11</maven.compiler.target>
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -7,29 +7,33 @@ import xyz.thastertyn.Types.Options;
|
|||||||
|
|
||||||
public class Jidelna extends JecnaScrape {
|
public class Jidelna extends JecnaScrape {
|
||||||
|
|
||||||
try {
|
//public void foo()
|
||||||
|
//{
|
||||||
|
// try {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Document obedy = Jsoup.connect("https://objednavky.jidelnasokolska.cz/faces/secured/month.jsp?terminal=false&keyboard=&printer=")
|
// Document obedy = Jsoup.connect("https://objednavky.jidelnasokolska.cz/faces/secured/month.jsp?terminal=false&keyboard=&printer=")
|
||||||
.header("Connection", "keep-alive")
|
// .header("Connection", "keep-alive")
|
||||||
.cookie("XSRF-TOKEN", XSRF_TOKEN)
|
// .cookie("XSRF-TOKEN", XSRF_TOKEN)
|
||||||
.cookie("JSESSIONID", jidelnaJSESSIONID)
|
// .cookie("JSESSIONID", jidelnaJSESSIONID)
|
||||||
.get();
|
// .get();
|
||||||
|
|
||||||
System.out.println(obedy.toString());
|
// System.out.println(obedy.toString());
|
||||||
|
|
||||||
//#endregion
|
// //#endregion
|
||||||
|
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// // TO DO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } catch (SecurityException e)
|
||||||
|
// {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
// TO DO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (SecurityException e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Options[] getOptions() {
|
public Options[] getOptions() {
|
||||||
|
@ -67,7 +67,7 @@ public class Rozvrh extends JecnaScrape {
|
|||||||
{
|
{
|
||||||
String predmet = radkyRozvrhuHTML[i+1].get(j+1).select("span.subject").text();
|
String predmet = radkyRozvrhuHTML[i+1].get(j+1).select("span.subject").text();
|
||||||
|
|
||||||
// Predmety jako CEL jsou trikrat, staci ale jen jednou
|
// Subjects like CEL are thrice, even though everyone has them, make it single
|
||||||
String[] split = predmet.split(" ");
|
String[] split = predmet.split(" ");
|
||||||
HashSet<String> set = new HashSet<>(Arrays.asList(split));
|
HashSet<String> set = new HashSet<>(Arrays.asList(split));
|
||||||
String pr = String.join("/", set);
|
String pr = String.join("/", set);
|
||||||
|
@ -9,6 +9,7 @@ import org.jsoup.nodes.Element;
|
|||||||
import org.jsoup.select.Elements;
|
import org.jsoup.select.Elements;
|
||||||
|
|
||||||
import xyz.thastertyn.Types.Choice;
|
import xyz.thastertyn.Types.Choice;
|
||||||
|
import xyz.thastertyn.Types.FinalMark;
|
||||||
import xyz.thastertyn.Types.Option;
|
import xyz.thastertyn.Types.Option;
|
||||||
import xyz.thastertyn.Types.Options;
|
import xyz.thastertyn.Types.Options;
|
||||||
import xyz.thastertyn.Types.Predmet;
|
import xyz.thastertyn.Types.Predmet;
|
||||||
@ -16,8 +17,6 @@ import xyz.thastertyn.Types.Znamka;
|
|||||||
|
|
||||||
public class Znamky extends JecnaScrape {
|
public class Znamky extends JecnaScrape {
|
||||||
|
|
||||||
private boolean wasDownloaded;
|
|
||||||
|
|
||||||
// schoolYear, schoolYearId
|
// schoolYear, schoolYearId
|
||||||
private ArrayList<Predmet> predmety;
|
private ArrayList<Predmet> predmety;
|
||||||
|
|
||||||
@ -74,7 +73,7 @@ public class Znamky extends JecnaScrape {
|
|||||||
predmety.add(new Predmet(jmenoPredmetu));
|
predmety.add(new Predmet(jmenoPredmetu));
|
||||||
}else{
|
}else{
|
||||||
String vyslednaZnamka = radkyPredmetuHTML[i].get(2).select("a.scoreFinal").text();
|
String vyslednaZnamka = radkyPredmetuHTML[i].get(2).select("a.scoreFinal").text();
|
||||||
predmety.add(new Predmet(jmenoPredmetu, Integer.parseInt(vyslednaZnamka)));
|
predmety.add(new Predmet(jmenoPredmetu, FinalMark.fromValue(vyslednaZnamka)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for(Element znamkaElement : radkyPredmetuHTML[i].get(1).select("a.score"))
|
for(Element znamkaElement : radkyPredmetuHTML[i].get(1).select("a.score"))
|
||||||
@ -95,6 +94,8 @@ public class Znamky extends JecnaScrape {
|
|||||||
predmety.get(subjectIndex).addZnamka(new Znamka(znamka, jeMala, textZnamky));
|
predmety.get(subjectIndex).addZnamka(new Znamka(znamka, jeMala, textZnamky));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predmety.get(subjectIndex).calculateFinalMark();
|
||||||
|
|
||||||
subjectIndex++;
|
subjectIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,8 +116,6 @@ public class Znamky extends JecnaScrape {
|
|||||||
boolean isDefault = e.hasAttr("selected");
|
boolean isDefault = e.hasAttr("selected");
|
||||||
schoolHalfYearOptions.addOption(new Option(e.text(), e.attr("value"), isDefault));
|
schoolHalfYearOptions.addOption(new Option(e.text(), e.attr("value"), isDefault));
|
||||||
}
|
}
|
||||||
|
|
||||||
wasDownloaded = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Predmet> getPredmety()
|
public ArrayList<Predmet> getPredmety()
|
||||||
@ -128,12 +127,4 @@ public class Znamky extends JecnaScrape {
|
|||||||
{
|
{
|
||||||
return new Options[] {schoolYearOptions, schoolHalfYearOptions};
|
return new Options[] {schoolYearOptions, schoolHalfYearOptions};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return (wasDownloaded) ?
|
|
||||||
"All up and ready for use" :
|
|
||||||
"Nothing downloaded yet";
|
|
||||||
}
|
|
||||||
}
|
}
|
70
src/main/java/xyz/thastertyn/Types/FinalMark.java
Normal file
70
src/main/java/xyz/thastertyn/Types/FinalMark.java
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
package xyz.thastertyn.Types;
|
||||||
|
|
||||||
|
public class FinalMark{
|
||||||
|
public static final FinalMark VYBORNY = new FinalMark(1, "1");
|
||||||
|
public static final FinalMark CHVALITEBNY = new FinalMark(2, "2");
|
||||||
|
public static final FinalMark DOBRY = new FinalMark(3, "3");
|
||||||
|
public static final FinalMark DOSTATECNY = new FinalMark(4, "4");
|
||||||
|
public static final FinalMark NEDOSTATECNY = new FinalMark(5, "5");
|
||||||
|
|
||||||
|
public static final FinalMark NEHODNOCEN = new FinalMark(-1, "N");
|
||||||
|
public static final FinalMark NAPOMENUT_ZA_NEKLASIFIKACI = new FinalMark(-2, "N?");
|
||||||
|
|
||||||
|
public static final FinalMark UVOLNEN = new FinalMark(-3, "U");
|
||||||
|
|
||||||
|
public static final FinalMark NAPOMENUT_ZA_ZAOSTAVANI = new FinalMark(-4, "5?");
|
||||||
|
|
||||||
|
public static final FinalMark UNKNOWN = new FinalMark(-5, "?");
|
||||||
|
// #94701b
|
||||||
|
private double value;
|
||||||
|
private String stringValue;
|
||||||
|
|
||||||
|
private FinalMark(double value, String stringValue)
|
||||||
|
{
|
||||||
|
this.stringValue = stringValue;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FinalMark(double value)
|
||||||
|
{
|
||||||
|
this.value = value;
|
||||||
|
this.stringValue = String.format("%.2f", value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getValue()
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FinalMark fromValue(String value)
|
||||||
|
{
|
||||||
|
if(!value.matches("[0-9]"))
|
||||||
|
{
|
||||||
|
return switch (value) {
|
||||||
|
case "N" -> NEHODNOCEN;
|
||||||
|
case "N?" -> NAPOMENUT_ZA_NEKLASIFIKACI;
|
||||||
|
case "5?" -> NAPOMENUT_ZA_ZAOSTAVANI;
|
||||||
|
case "U" -> UVOLNEN;
|
||||||
|
default -> UNKNOWN;
|
||||||
|
};
|
||||||
|
}else{
|
||||||
|
int numericValue = Integer.parseInt(value);
|
||||||
|
|
||||||
|
return switch (numericValue) {
|
||||||
|
case 1 -> VYBORNY;
|
||||||
|
case 2 -> CHVALITEBNY;
|
||||||
|
case 3 -> DOBRY;
|
||||||
|
case 4 -> DOSTATECNY;
|
||||||
|
case 5 -> NEDOSTATECNY;
|
||||||
|
default -> UNKNOWN;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,9 +13,6 @@ public class Option {
|
|||||||
public boolean isDefault() {
|
public boolean isDefault() {
|
||||||
return isDefault;
|
return isDefault;
|
||||||
}
|
}
|
||||||
public String getText() {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
public String getValue() {
|
public String getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -4,52 +4,49 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public class Predmet {
|
public class Predmet {
|
||||||
|
|
||||||
private ArrayList<Znamka> znamky = new ArrayList<>();
|
private ArrayList<Znamka> marks = new ArrayList<>();
|
||||||
private String jmenoPredmetu = "";
|
private String subjectName = "";
|
||||||
private boolean isFinal = false;
|
private boolean isFinal = false;
|
||||||
|
|
||||||
private int vyslednaZnamka = 0;
|
private FinalMark finalMark = FinalMark.UNKNOWN;
|
||||||
|
|
||||||
public Predmet(String jmenoPredmetu)
|
public Predmet(String subjectName)
|
||||||
{
|
{
|
||||||
this.jmenoPredmetu = jmenoPredmetu;
|
this.subjectName = subjectName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Predmet(String jmenoPredmetu, int vyslednaZnamka)
|
public Predmet(String subjectName, FinalMark finalMark)
|
||||||
{
|
{
|
||||||
this.jmenoPredmetu = jmenoPredmetu;
|
this.subjectName = subjectName;
|
||||||
this.vyslednaZnamka = vyslednaZnamka;
|
this.finalMark = finalMark;
|
||||||
isFinal = true;
|
isFinal = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addZnamka(Znamka novaZnamka)
|
public void addZnamka(Znamka newMark)
|
||||||
{
|
{
|
||||||
znamky.add(novaZnamka);
|
marks.add(newMark);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getVyslednaZnamka()
|
public void calculateFinalMark()
|
||||||
{
|
{
|
||||||
if(vyslednaZnamka != 0)
|
int total = marks
|
||||||
{
|
|
||||||
return vyslednaZnamka;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(znamky.isEmpty())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int celkem = znamky
|
|
||||||
.stream()
|
.stream()
|
||||||
.mapToInt((z) -> z.getZnamka() * z.getVaha())
|
.mapToInt((z) -> z.getZnamka() * z.getVaha())
|
||||||
.sum();
|
.sum();
|
||||||
|
|
||||||
int vahy = znamky
|
int weight = marks
|
||||||
.stream()
|
.stream()
|
||||||
.mapToInt((z) -> z.getVaha())
|
.mapToInt((z) -> z.getVaha())
|
||||||
.sum();
|
.sum();
|
||||||
|
|
||||||
return (double) celkem / vahy;
|
double finalMark = ((double) total / weight);
|
||||||
|
|
||||||
|
this.finalMark = new FinalMark(finalMark);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FinalMark getFinalMark()
|
||||||
|
{
|
||||||
|
return finalMark;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFinal()
|
public boolean isFinal()
|
||||||
@ -57,13 +54,14 @@ public class Predmet {
|
|||||||
return isFinal;
|
return isFinal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getJmenoPredmetu()
|
public String getSubjectName()
|
||||||
{
|
{
|
||||||
return jmenoPredmetu;
|
return subjectName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Znamka> getZnamky()
|
public ArrayList<Znamka> getMarks()
|
||||||
{
|
{
|
||||||
return znamky;
|
return marks;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import com.googlecode.lanterna.gui2.LayoutData;
|
|||||||
import com.googlecode.lanterna.gui2.LinearLayout;
|
import com.googlecode.lanterna.gui2.LinearLayout;
|
||||||
import com.googlecode.lanterna.gui2.Panel;
|
import com.googlecode.lanterna.gui2.Panel;
|
||||||
|
|
||||||
|
import xyz.thastertyn.Types.FinalMark;
|
||||||
import xyz.thastertyn.Types.Predmet;
|
import xyz.thastertyn.Types.Predmet;
|
||||||
import xyz.thastertyn.Types.Znamka;
|
import xyz.thastertyn.Types.Znamka;
|
||||||
import xyz.thastertyn.UserInterface.Listeners.UpdateListener;
|
import xyz.thastertyn.UserInterface.Listeners.UpdateListener;
|
||||||
@ -64,6 +65,7 @@ public class Znamky extends JecnaContent {
|
|||||||
colors.put(4, new SimpleTheme(ANSI.BLACK, DOSTATECNY));
|
colors.put(4, new SimpleTheme(ANSI.BLACK, DOSTATECNY));
|
||||||
colors.put(5, new SimpleTheme(ANSI.BLACK, NEDOSTATECNY));
|
colors.put(5, new SimpleTheme(ANSI.BLACK, NEDOSTATECNY));
|
||||||
colors.put(-1, new SimpleTheme(ANSI.WHITE, NEHODNOCEN));
|
colors.put(-1, new SimpleTheme(ANSI.WHITE, NEHODNOCEN));
|
||||||
|
colors.put(-2, new SimpleTheme(ANSI.WHITE, NEHODNOCEN));
|
||||||
|
|
||||||
// Sloupec pro jmena predmetu
|
// Sloupec pro jmena predmetu
|
||||||
Panel jmemaPredmetu = new Panel()
|
Panel jmemaPredmetu = new Panel()
|
||||||
@ -89,33 +91,26 @@ public class Znamky extends JecnaContent {
|
|||||||
.setLayoutManager(new LinearLayout(Direction.HORIZONTAL))
|
.setLayoutManager(new LinearLayout(Direction.HORIZONTAL))
|
||||||
.addTo(znamky);
|
.addTo(znamky);
|
||||||
|
|
||||||
if(predmet.getZnamky().isEmpty())
|
if(predmet.getMarks().isEmpty())
|
||||||
{
|
{
|
||||||
jednotliveZnamky.addComponent(new Label(""));
|
jednotliveZnamky.addComponent(new Label(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
for(Znamka znamka : predmet.getZnamky())
|
for(Znamka znamka : predmet.getMarks())
|
||||||
{
|
{
|
||||||
Label znamkaLabel = new Label(znamka.getText());
|
Label znamkaLabel = new Label(znamka.getText());
|
||||||
znamkaLabel.setTheme(colors.get(znamka.getZnamka()));
|
znamkaLabel.setTheme(colors.get(znamka.getZnamka()));
|
||||||
jednotliveZnamky.addComponent(znamkaLabel);
|
jednotliveZnamky.addComponent(znamkaLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
double prumer = predmet.getVyslednaZnamka();
|
FinalMark finalMark = predmet.getFinalMark();
|
||||||
String prumerAsString;
|
|
||||||
|
|
||||||
if(predmet.isFinal())
|
|
||||||
{
|
|
||||||
prumerAsString = ((int) prumer) + "";
|
|
||||||
}else{
|
|
||||||
prumerAsString = String.format("%.2f", prumer);
|
|
||||||
}
|
|
||||||
|
|
||||||
Label vysl = new Label(prumerAsString);
|
Label vysl = new Label(finalMark.toString());
|
||||||
|
|
||||||
vysl.setTheme(colors.get((int) Math.round(prumer)));
|
vysl.setTheme(colors.get((int) Math.round(finalMark.getValue())));
|
||||||
|
|
||||||
jmemaPredmetu.addComponent(new Label(predmet.getJmenoPredmetu()));
|
jmemaPredmetu.addComponent(new Label(predmet.getSubjectName()));
|
||||||
vysledneZnamky.addComponent(vysl);
|
vysledneZnamky.addComponent(vysl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,13 @@ import xyz.thastertyn.UserInterface.Listeners.ContentResetListener;
|
|||||||
public class EscapeDialog extends DialogWindow {
|
public class EscapeDialog extends DialogWindow {
|
||||||
|
|
||||||
private WindowBasedTextGUI textGUI;
|
private WindowBasedTextGUI textGUI;
|
||||||
private ContentResetListener listener;
|
private ContentResetListener resetListener;
|
||||||
|
|
||||||
public EscapeDialog(WindowBasedTextGUI textGUI, ContentResetListener listener)
|
public EscapeDialog(WindowBasedTextGUI textGUI, ContentResetListener resetListener)
|
||||||
{
|
{
|
||||||
super("Escape Menu");
|
super("Escape Menu");
|
||||||
this.textGUI = textGUI;
|
this.textGUI = textGUI;
|
||||||
this.listener = listener;
|
this.resetListener = resetListener;
|
||||||
|
|
||||||
Panel mainPanel = new Panel()
|
Panel mainPanel = new Panel()
|
||||||
.setLayoutManager(new GridLayout(1)
|
.setLayoutManager(new GridLayout(1)
|
||||||
@ -55,7 +55,7 @@ public class EscapeDialog extends DialogWindow {
|
|||||||
LocalCredentials.getInstance().deleteCredentials();
|
LocalCredentials.getInstance().deleteCredentials();
|
||||||
LoginController controller = new LoginController(textGUI);
|
LoginController controller = new LoginController(textGUI);
|
||||||
controller.loginUsingGui();
|
controller.loginUsingGui();
|
||||||
listener.reset();
|
resetListener.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onLogout()
|
public void onLogout()
|
||||||
@ -63,7 +63,7 @@ public class EscapeDialog extends DialogWindow {
|
|||||||
close();
|
close();
|
||||||
LoginController controller = new LoginController(textGUI);
|
LoginController controller = new LoginController(textGUI);
|
||||||
controller.loginUsingGui();
|
controller.loginUsingGui();
|
||||||
listener.reset();
|
resetListener.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onExit()
|
public void onExit()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user