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>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
@ -7,29 +7,33 @@ import xyz.thastertyn.Types.Options;
|
||||
|
||||
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=")
|
||||
.header("Connection", "keep-alive")
|
||||
.cookie("XSRF-TOKEN", XSRF_TOKEN)
|
||||
.cookie("JSESSIONID", jidelnaJSESSIONID)
|
||||
.get();
|
||||
// Document obedy = Jsoup.connect("https://objednavky.jidelnasokolska.cz/faces/secured/month.jsp?terminal=false&keyboard=&printer=")
|
||||
// .header("Connection", "keep-alive")
|
||||
// .cookie("XSRF-TOKEN", XSRF_TOKEN)
|
||||
// .cookie("JSESSIONID", jidelnaJSESSIONID)
|
||||
// .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
|
||||
public Options[] getOptions() {
|
||||
|
@ -67,7 +67,7 @@ public class Rozvrh extends JecnaScrape {
|
||||
{
|
||||
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(" ");
|
||||
HashSet<String> set = new HashSet<>(Arrays.asList(split));
|
||||
String pr = String.join("/", set);
|
||||
|
@ -9,6 +9,7 @@ import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import xyz.thastertyn.Types.Choice;
|
||||
import xyz.thastertyn.Types.FinalMark;
|
||||
import xyz.thastertyn.Types.Option;
|
||||
import xyz.thastertyn.Types.Options;
|
||||
import xyz.thastertyn.Types.Predmet;
|
||||
@ -16,8 +17,6 @@ import xyz.thastertyn.Types.Znamka;
|
||||
|
||||
public class Znamky extends JecnaScrape {
|
||||
|
||||
private boolean wasDownloaded;
|
||||
|
||||
// schoolYear, schoolYearId
|
||||
private ArrayList<Predmet> predmety;
|
||||
|
||||
@ -74,7 +73,7 @@ public class Znamky extends JecnaScrape {
|
||||
predmety.add(new Predmet(jmenoPredmetu));
|
||||
}else{
|
||||
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"))
|
||||
@ -95,6 +94,8 @@ public class Znamky extends JecnaScrape {
|
||||
predmety.get(subjectIndex).addZnamka(new Znamka(znamka, jeMala, textZnamky));
|
||||
}
|
||||
|
||||
predmety.get(subjectIndex).calculateFinalMark();
|
||||
|
||||
subjectIndex++;
|
||||
}
|
||||
|
||||
@ -115,8 +116,6 @@ public class Znamky extends JecnaScrape {
|
||||
boolean isDefault = e.hasAttr("selected");
|
||||
schoolHalfYearOptions.addOption(new Option(e.text(), e.attr("value"), isDefault));
|
||||
}
|
||||
|
||||
wasDownloaded = true;
|
||||
}
|
||||
|
||||
public ArrayList<Predmet> getPredmety()
|
||||
@ -128,12 +127,4 @@ public class Znamky extends JecnaScrape {
|
||||
{
|
||||
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() {
|
||||
return isDefault;
|
||||
}
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
@ -4,52 +4,49 @@ import java.util.ArrayList;
|
||||
|
||||
public class Predmet {
|
||||
|
||||
private ArrayList<Znamka> znamky = new ArrayList<>();
|
||||
private String jmenoPredmetu = "";
|
||||
private ArrayList<Znamka> marks = new ArrayList<>();
|
||||
private String subjectName = "";
|
||||
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.vyslednaZnamka = vyslednaZnamka;
|
||||
this.subjectName = subjectName;
|
||||
this.finalMark = finalMark;
|
||||
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)
|
||||
{
|
||||
return vyslednaZnamka;
|
||||
}
|
||||
|
||||
if(znamky.isEmpty())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int total = marks
|
||||
.stream()
|
||||
.mapToInt((z) -> z.getZnamka() * z.getVaha())
|
||||
.sum();
|
||||
|
||||
int celkem = znamky
|
||||
.stream()
|
||||
.mapToInt((z) -> z.getZnamka() * z.getVaha())
|
||||
.sum();
|
||||
|
||||
int vahy = znamky
|
||||
int weight = marks
|
||||
.stream()
|
||||
.mapToInt((z) -> z.getVaha())
|
||||
.sum();
|
||||
|
||||
return (double) celkem / vahy;
|
||||
double finalMark = ((double) total / weight);
|
||||
|
||||
this.finalMark = new FinalMark(finalMark);
|
||||
}
|
||||
|
||||
public FinalMark getFinalMark()
|
||||
{
|
||||
return finalMark;
|
||||
}
|
||||
|
||||
public boolean isFinal()
|
||||
@ -57,13 +54,14 @@ public class Predmet {
|
||||
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.Panel;
|
||||
|
||||
import xyz.thastertyn.Types.FinalMark;
|
||||
import xyz.thastertyn.Types.Predmet;
|
||||
import xyz.thastertyn.Types.Znamka;
|
||||
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(5, new SimpleTheme(ANSI.BLACK, NEDOSTATECNY));
|
||||
colors.put(-1, new SimpleTheme(ANSI.WHITE, NEHODNOCEN));
|
||||
colors.put(-2, new SimpleTheme(ANSI.WHITE, NEHODNOCEN));
|
||||
|
||||
// Sloupec pro jmena predmetu
|
||||
Panel jmemaPredmetu = new Panel()
|
||||
@ -89,33 +91,26 @@ public class Znamky extends JecnaContent {
|
||||
.setLayoutManager(new LinearLayout(Direction.HORIZONTAL))
|
||||
.addTo(znamky);
|
||||
|
||||
if(predmet.getZnamky().isEmpty())
|
||||
if(predmet.getMarks().isEmpty())
|
||||
{
|
||||
jednotliveZnamky.addComponent(new Label(""));
|
||||
}
|
||||
|
||||
for(Znamka znamka : predmet.getZnamky())
|
||||
for(Znamka znamka : predmet.getMarks())
|
||||
{
|
||||
Label znamkaLabel = new Label(znamka.getText());
|
||||
znamkaLabel.setTheme(colors.get(znamka.getZnamka()));
|
||||
jednotliveZnamky.addComponent(znamkaLabel);
|
||||
}
|
||||
|
||||
double prumer = predmet.getVyslednaZnamka();
|
||||
String prumerAsString;
|
||||
FinalMark finalMark = predmet.getFinalMark();
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -18,13 +18,13 @@ import xyz.thastertyn.UserInterface.Listeners.ContentResetListener;
|
||||
public class EscapeDialog extends DialogWindow {
|
||||
|
||||
private WindowBasedTextGUI textGUI;
|
||||
private ContentResetListener listener;
|
||||
private ContentResetListener resetListener;
|
||||
|
||||
public EscapeDialog(WindowBasedTextGUI textGUI, ContentResetListener listener)
|
||||
public EscapeDialog(WindowBasedTextGUI textGUI, ContentResetListener resetListener)
|
||||
{
|
||||
super("Escape Menu");
|
||||
this.textGUI = textGUI;
|
||||
this.listener = listener;
|
||||
this.resetListener = resetListener;
|
||||
|
||||
Panel mainPanel = new Panel()
|
||||
.setLayoutManager(new GridLayout(1)
|
||||
@ -55,7 +55,7 @@ public class EscapeDialog extends DialogWindow {
|
||||
LocalCredentials.getInstance().deleteCredentials();
|
||||
LoginController controller = new LoginController(textGUI);
|
||||
controller.loginUsingGui();
|
||||
listener.reset();
|
||||
resetListener.reset();
|
||||
}
|
||||
|
||||
public void onLogout()
|
||||
@ -63,7 +63,7 @@ public class EscapeDialog extends DialogWindow {
|
||||
close();
|
||||
LoginController controller = new LoginController(textGUI);
|
||||
controller.loginUsingGui();
|
||||
listener.reset();
|
||||
resetListener.reset();
|
||||
}
|
||||
|
||||
public void onExit()
|
||||
|
Loading…
x
Reference in New Issue
Block a user