.
675 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Pronote API Java client
2 |
3 | Un client pour [l'API Pronote](https://github.com/Litarvan/pronote-api) en Java
4 |
5 | ## Import
6 |
7 | ### Gradle
8 |
9 | ```groovy
10 | repositories {
11 | maven {
12 | url 'https://litarvan.github.io/maven'
13 | }
14 | }
15 |
16 | dependencies {
17 | implementation 'fr.litarvan:pronote-api:1.0.0'
18 | }
19 | ```
20 |
21 | ### Maven
22 |
23 | ```xml
24 |
25 | fr.litarvan
26 | pronote-api
27 | 1.0.0
28 |
29 |
30 | ```
31 |
32 | ## Utilisation
33 |
34 | La requête login est optionnelle, si elle n'est pas faite, la requête fetch la fera au passage.
35 |
36 | Une erreur RequestException peut être lâchée par les deux fonctions en cas d'erreur de connexion ou de lecture.
37 | Si une erreur autre que "Mauvais identifiants" est renvoyée, merci d'ouvrir une issue sur l'API Pronote.
38 |
39 | ```java
40 | PronoteAPI api = new PronoteAPI("http://127.0.0.1:21727/");
41 |
42 | try {
43 | api.login(new LoginRequest("username", "password", "pronote url", "cas");
44 | } catch (RequestException e) {
45 | ... // Mauvais identifiants
46 | }
47 |
48 | FetchResponse response = api.fetch(new FetchResponse("username", "password", "pronote url", "cas");
49 | System.out.println(String.format("Welcome %s !", response.getName()));
50 | ```
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'java'
3 | id 'maven-publish'
4 | }
5 |
6 | group 'fr.litarvan'
7 | version '1.0.0'
8 |
9 | sourceCompatibility = 1.8
10 |
11 | repositories {
12 | mavenCentral()
13 | }
14 |
15 | dependencies {
16 | implementation 'com.google.code.gson:gson:2.8.6'
17 | }
18 |
19 | jar {
20 | from 'LICENSE'
21 | }
22 |
23 | task javadocJar(type: Jar) {
24 | classifier = 'javadoc'
25 | from javadoc
26 | }
27 |
28 | task sourcesJar(type: Jar) {
29 | classifier = 'sources'
30 | from sourceSets.main.allSource
31 | }
32 |
33 | artifacts {
34 | archives javadocJar, sourcesJar
35 | }
36 |
37 | publishing {
38 | publications {
39 | maven(MavenPublication) {
40 | groupId group
41 | artifactId archivesBaseName
42 | version = version
43 |
44 | from components.java
45 |
46 | artifact sourcesJar {
47 | classifier 'sources'
48 | }
49 |
50 | artifact javadocJar
51 | }
52 | }
53 |
54 | repositories {
55 | maven {
56 | url "$buildDir/repo"
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Litarvan/pronote-api-client-java/c0bdd30184dc58f586114f7f29a4c0d471b74b95/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Attempt to set APP_HOME
10 | # Resolve links: $0 may be a link
11 | PRG="$0"
12 | # Need this for relative symlinks.
13 | while [ -h "$PRG" ] ; do
14 | ls=`ls -ld "$PRG"`
15 | link=`expr "$ls" : '.*-> \(.*\)$'`
16 | if expr "$link" : '/.*' > /dev/null; then
17 | PRG="$link"
18 | else
19 | PRG=`dirname "$PRG"`"/$link"
20 | fi
21 | done
22 | SAVED="`pwd`"
23 | cd "`dirname \"$PRG\"`/" >/dev/null
24 | APP_HOME="`pwd -P`"
25 | cd "$SAVED" >/dev/null
26 |
27 | APP_NAME="Gradle"
28 | APP_BASE_NAME=`basename "$0"`
29 |
30 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31 | DEFAULT_JVM_OPTS='"-Xmx64m"'
32 |
33 | # Use the maximum available, or set MAX_FD != -1 to use that value.
34 | MAX_FD="maximum"
35 |
36 | warn () {
37 | echo "$*"
38 | }
39 |
40 | die () {
41 | echo
42 | echo "$*"
43 | echo
44 | exit 1
45 | }
46 |
47 | # OS specific support (must be 'true' or 'false').
48 | cygwin=false
49 | msys=false
50 | darwin=false
51 | nonstop=false
52 | case "`uname`" in
53 | CYGWIN* )
54 | cygwin=true
55 | ;;
56 | Darwin* )
57 | darwin=true
58 | ;;
59 | MINGW* )
60 | msys=true
61 | ;;
62 | NONSTOP* )
63 | nonstop=true
64 | ;;
65 | esac
66 |
67 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68 |
69 | # Determine the Java command to use to start the JVM.
70 | if [ -n "$JAVA_HOME" ] ; then
71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72 | # IBM's JDK on AIX uses strange locations for the executables
73 | JAVACMD="$JAVA_HOME/jre/sh/java"
74 | else
75 | JAVACMD="$JAVA_HOME/bin/java"
76 | fi
77 | if [ ! -x "$JAVACMD" ] ; then
78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79 |
80 | Please set the JAVA_HOME variable in your environment to match the
81 | location of your Java installation."
82 | fi
83 | else
84 | JAVACMD="java"
85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86 |
87 | Please set the JAVA_HOME variable in your environment to match the
88 | location of your Java installation."
89 | fi
90 |
91 | # Increase the maximum file descriptors if we can.
92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
93 | MAX_FD_LIMIT=`ulimit -H -n`
94 | if [ $? -eq 0 ] ; then
95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96 | MAX_FD="$MAX_FD_LIMIT"
97 | fi
98 | ulimit -n $MAX_FD
99 | if [ $? -ne 0 ] ; then
100 | warn "Could not set maximum file descriptor limit: $MAX_FD"
101 | fi
102 | else
103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104 | fi
105 | fi
106 |
107 | # For Darwin, add options to specify how the application appears in the dock
108 | if $darwin; then
109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110 | fi
111 |
112 | # For Cygwin, switch paths to Windows format before running java
113 | if $cygwin ; then
114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116 | JAVACMD=`cygpath --unix "$JAVACMD"`
117 |
118 | # We build the pattern for arguments to be converted via cygpath
119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 | SEP=""
121 | for dir in $ROOTDIRSRAW ; do
122 | ROOTDIRS="$ROOTDIRS$SEP$dir"
123 | SEP="|"
124 | done
125 | OURCYGPATTERN="(^($ROOTDIRS))"
126 | # Add a user-defined pattern to the cygpath arguments
127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 | fi
130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 | i=0
132 | for arg in "$@" ; do
133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135 |
136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 | else
139 | eval `echo args$i`="\"$arg\""
140 | fi
141 | i=$((i+1))
142 | done
143 | case $i in
144 | (0) set -- ;;
145 | (1) set -- "$args0" ;;
146 | (2) set -- "$args0" "$args1" ;;
147 | (3) set -- "$args0" "$args1" "$args2" ;;
148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 | esac
155 | fi
156 |
157 | # Escape application args
158 | save () {
159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160 | echo " "
161 | }
162 | APP_ARGS=$(save "$@")
163 |
164 | # Collect all arguments for the java command, following the shell quoting and substitution rules
165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166 |
167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169 | cd "$(dirname "$0")"
170 | fi
171 |
172 | exec "$JAVACMD" "$@"
173 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS="-Xmx64m"
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'pronote-api'
2 |
3 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/FetchRequest.java:
--------------------------------------------------------------------------------
1 | package fr.litarvan.pronote;
2 |
3 | public class FetchRequest extends Request
4 | {
5 | public FetchRequest(String username, String password, String url)
6 | {
7 | super("login", username, password, url, "none");
8 | }
9 |
10 | public FetchRequest(String username, String password, String url, String cas)
11 | {
12 | super("fetch", username, password, url, cas);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/FetchResponse.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote;
18 |
19 | import fr.litarvan.pronote.data.*;
20 |
21 | public class FetchResponse extends Response
22 | {
23 | private String studentClass;
24 | private String name;
25 | private String avatar;
26 |
27 | private Period[] periods;
28 |
29 | private Week[] timetable;
30 |
31 | private String[][] menu;
32 |
33 | private Marks[] marks;
34 | private Homework[] homeworks;
35 | private Report[] reports;
36 | private Absences[] absences;
37 |
38 | private CompleteFileUpload[] files;
39 | private Info[] infos;
40 |
41 | public FetchResponse()
42 | {
43 | }
44 |
45 | public FetchResponse(String studentClass, String name, String avatar, Period[] periods, Week[] timetable, String[][] menu, Marks[] marks, Homework[] homeworks, Report[] reports, Absences[] absences, CompleteFileUpload[] files, Info[] infos)
46 | {
47 | this.studentClass = studentClass;
48 | this.name = name;
49 | this.avatar = avatar;
50 | this.periods = periods;
51 | this.timetable = timetable;
52 | this.menu = menu;
53 | this.marks = marks;
54 | this.homeworks = homeworks;
55 | this.reports = reports;
56 | this.absences = absences;
57 | this.files = files;
58 | this.infos = infos;
59 | }
60 |
61 | public String getStudentClass()
62 | {
63 | return studentClass;
64 | }
65 |
66 | public String getName()
67 | {
68 | return name;
69 | }
70 |
71 | public String getAvatar()
72 | {
73 | return avatar;
74 | }
75 |
76 | public Period[] getPeriods()
77 | {
78 | return periods;
79 | }
80 |
81 | public Week[] getTimetable()
82 | {
83 | return timetable;
84 | }
85 |
86 | public String[][] getMenu()
87 | {
88 | return menu;
89 | }
90 |
91 | public Marks[] getMarks()
92 | {
93 | return marks;
94 | }
95 |
96 | public Homework[] getHomeworks()
97 | {
98 | return homeworks;
99 | }
100 |
101 | public Report[] getReports()
102 | {
103 | return reports;
104 | }
105 |
106 | public Absences[] getAbsences()
107 | {
108 | return absences;
109 | }
110 |
111 | public CompleteFileUpload[] getFiles()
112 | {
113 | return files;
114 | }
115 |
116 | public Info[] getInfos()
117 | {
118 | return infos;
119 | }
120 | }
121 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/LoginRequest.java:
--------------------------------------------------------------------------------
1 | package fr.litarvan.pronote;
2 |
3 | public class LoginRequest extends Request
4 | {
5 | public LoginRequest(String username, String password, String url)
6 | {
7 | super("login", username, password, url, "none");
8 | }
9 |
10 | public LoginRequest(String username, String password, String url, String cas)
11 | {
12 | super("login", username, password, url, cas);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/LoginResponse.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote;
18 |
19 | public class LoginResponse extends Response
20 | {
21 | public LoginResponse()
22 | {
23 | }
24 |
25 | public LoginResponse(String error)
26 | {
27 | this.error = error;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/PronoteAPI.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote;
18 |
19 | import com.google.gson.Gson;
20 |
21 | import java.io.BufferedReader;
22 | import java.io.DataOutputStream;
23 | import java.io.IOException;
24 | import java.io.InputStreamReader;
25 | import java.net.HttpURLConnection;
26 | import java.net.URL;
27 | import java.nio.charset.StandardCharsets;
28 |
29 | /**
30 | * Pronote API
31 | *
32 | * You must have an API server setup.
33 | * Then, use it like this :
34 | *
35 | * PronoteAPI api = new PronoteAPI("http://127.0.0.1:21727/");
36 | *
37 | * try {
38 | * api.login(new LoginRequest("username", "password", "pronote url", "cas");
39 | * } catch (RequestException e) {
40 | * // ...
41 | * }
42 | *
43 | * FetchResponse response = api.fetch(new FetchResponse("username", "password", "pronote url", "cas");
44 | * System.out.println(String.format("Welcome %s !", response.getName()));
45 | *
46 | *
47 | * The "cas" field is optional, it is necessary only if your Pronote server redirects you to a regional-specific
48 | * interface to login, then chose the right one (ex: "ac-lyon"), see the API server README.
49 | *
50 | * @author Adrien 'Litarvan' Navratil
51 | * @version 1.0.0
52 | * @since 1.0.0
53 | */
54 | public class PronoteAPI
55 | {
56 | public static final String VERSION = "1.0.0";
57 | private static final Gson gson = new Gson();
58 |
59 | private String url;
60 |
61 | /**
62 | * @param url URL of the API server
63 | */
64 | public PronoteAPI(String url)
65 | {
66 | this.url = url;
67 | }
68 |
69 | /**
70 | * Login the user (does not fetch any data).
71 | * This request is optional, doing fetch without "login" will first do login
72 | *
73 | * @param request The request data
74 | *
75 | * @return Nothing
76 | *
77 | * @throws IOException If the HTTP connection or I/O failed
78 | * @throws RequestException If the "error" field is not empty, throw an exception with its content
79 | */
80 | public LoginResponse login(LoginRequest request) throws IOException, RequestException
81 | {
82 | return request(request, LoginResponse.class);
83 | }
84 |
85 | /**
86 | * Fetch the data. If login wasn't done before, login the user first
87 | *
88 | * @param request The request data
89 | *
90 | * @return The fetched data (some fields can be empty if not present on the server)
91 | *
92 | * @throws IOException If the HTTP connection or I/O failed
93 | * @throws RequestException If the "error" field is not empty, throw an exception with its content. If this happen on a fetch
94 | * request with login having been done, it means there's an issue with the API. Please open an issue on Github.
95 | */
96 | public FetchResponse fetch(FetchRequest request) throws IOException, RequestException
97 | {
98 | return request(request, FetchResponse.class);
99 | }
100 |
101 | private R request(Object request, Class> responseClass) throws IOException, RequestException
102 | {
103 | URL url = new URL(this.url);
104 | HttpURLConnection connection = (HttpURLConnection) url.openConnection();
105 |
106 | connection.setDoInput(true);
107 | connection.setDoOutput(true);
108 |
109 | connection.setRequestMethod("POST");
110 | connection.setRequestProperty("Content-Type", "application/json");
111 |
112 | try (DataOutputStream out = new DataOutputStream(connection.getOutputStream()))
113 | {
114 | out.write(gson.toJson(request).getBytes(StandardCharsets.UTF_8));
115 | }
116 |
117 | StringBuilder content = new StringBuilder();
118 |
119 | try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)))
120 | {
121 | String line;
122 |
123 | while ((line = in.readLine()) != null)
124 | {
125 | content.append(line).append(System.lineSeparator());
126 | }
127 | }
128 |
129 | connection.disconnect();
130 |
131 | R response = (R) gson.fromJson(content.toString(), responseClass);
132 | if (response.getError() != null)
133 | {
134 | throw new RequestException(new Exception(response.getError()));
135 | }
136 |
137 | return response;
138 | }
139 |
140 | public String getUrl()
141 | {
142 | return url;
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/Request.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote;
18 |
19 | public abstract class Request
20 | {
21 | private String type;
22 | private String username;
23 | private String password;
24 | private String url;
25 | private String cas;
26 |
27 | public Request(String type, String username, String password, String url, String cas)
28 | {
29 | this.type = type;
30 | this.username = username;
31 | this.password = password;
32 | this.url = url;
33 | this.cas = cas;
34 | }
35 |
36 | public String getType() {
37 | return type;
38 | }
39 |
40 | public String getUsername()
41 | {
42 | return username;
43 | }
44 |
45 | public String getPassword()
46 | {
47 | return password;
48 | }
49 |
50 | public String getUrl()
51 | {
52 | return url;
53 | }
54 |
55 | public String getCas()
56 | {
57 | return cas;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/RequestException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote;
18 |
19 | public class RequestException extends Exception
20 | {
21 | public RequestException(String message)
22 | {
23 | super(message);
24 | }
25 |
26 | public RequestException(Throwable cause)
27 | {
28 | super(cause);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/Response.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote;
18 |
19 | public abstract class Response
20 | {
21 | protected String error;
22 |
23 | public String getError()
24 | {
25 | return error;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Absence.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Absence
20 | {
21 | private long from;
22 | private long to;
23 | private boolean solved;
24 | private boolean justified;
25 | private String reason;
26 |
27 | public Absence()
28 | {
29 | }
30 |
31 | public Absence(long from, long to, boolean solved, boolean justified, String reason)
32 | {
33 | this.from = from;
34 | this.to = to;
35 | this.solved = solved;
36 | this.justified = justified;
37 | this.reason = reason;
38 | }
39 |
40 | public long getFrom()
41 | {
42 | return from;
43 | }
44 |
45 | public long getTo()
46 | {
47 | return to;
48 | }
49 |
50 | public boolean isSolved()
51 | {
52 | return solved;
53 | }
54 |
55 | public boolean isJustified()
56 | {
57 | return justified;
58 | }
59 |
60 | public String getReason()
61 | {
62 | return reason;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Absences.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Absences
20 | {
21 | private int period;
22 | private Absence[] absences;
23 |
24 | public Absences()
25 | {
26 | }
27 |
28 | public Absences(int period, Absence[] absences)
29 | {
30 | this.period = period;
31 | this.absences = absences;
32 | }
33 |
34 | public int getPeriod()
35 | {
36 | return period;
37 | }
38 |
39 | public Absence[] getAbsences()
40 | {
41 | return absences;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Average.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Average
20 | {
21 | private String subject;
22 | private float value;
23 |
24 | public Average()
25 | {
26 | }
27 |
28 | public Average(String subject, float value)
29 | {
30 | this.subject = subject;
31 | this.value = value;
32 | }
33 |
34 | public String getSubject()
35 | {
36 | return subject;
37 | }
38 |
39 | public float getValue()
40 | {
41 | return value;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Averages.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Averages
20 | {
21 | private float student;
22 | private float studentClass;
23 | private int period;
24 |
25 | public Averages()
26 | {
27 | }
28 |
29 | public Averages(float student, float studentClass, int period)
30 | {
31 | this.student = student;
32 | this.studentClass = studentClass;
33 | this.period = period;
34 | }
35 |
36 | public float getStudent()
37 | {
38 | return student;
39 | }
40 |
41 | public float getStudentClass()
42 | {
43 | return studentClass;
44 | }
45 |
46 | public int getPeriod()
47 | {
48 | return period;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/CompleteFileUpload.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class CompleteFileUpload extends FileUpload
20 | {
21 | private long time;
22 | private String subject;
23 |
24 | public CompleteFileUpload()
25 | {
26 | super();
27 | }
28 |
29 | public CompleteFileUpload(String name, String url, long time, String subject)
30 | {
31 | super(name, url);
32 |
33 | this.time = time;
34 | this.subject = subject;
35 | }
36 |
37 | public long getTime()
38 | {
39 | return time;
40 | }
41 |
42 | public String getSubject()
43 | {
44 | return subject;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/FileUpload.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class FileUpload
20 | {
21 | private String name;
22 | private String url;
23 |
24 | public FileUpload()
25 | {
26 | }
27 |
28 | public FileUpload(String name, String url)
29 | {
30 | this.name = name;
31 | this.url = url;
32 | }
33 |
34 | public String getName()
35 | {
36 | return name;
37 | }
38 |
39 | public String getUrl()
40 | {
41 | return url;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Homework.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Homework
20 | {
21 | private String subject;
22 | private String content;
23 | private long since;
24 | private long until;
25 | private boolean toGive;
26 | private FileUpload[] files;
27 |
28 | public Homework()
29 | {
30 | }
31 |
32 | public Homework(String subject, String content, long since, long until, boolean toGive, FileUpload[] files)
33 | {
34 | this.subject = subject;
35 | this.content = content;
36 | this.since = since;
37 | this.until = until;
38 | this.toGive = toGive;
39 | this.files = files;
40 | }
41 |
42 | public String getSubject()
43 | {
44 | return subject;
45 | }
46 |
47 | public String getContent()
48 | {
49 | return content;
50 | }
51 |
52 | public long getSince()
53 | {
54 | return since;
55 | }
56 |
57 | public long getUntil()
58 | {
59 | return until;
60 | }
61 |
62 | public boolean isToGive()
63 | {
64 | return toGive;
65 | }
66 |
67 | public FileUpload[] getFiles()
68 | {
69 | return files;
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Info.java:
--------------------------------------------------------------------------------
1 | package fr.litarvan.pronote.data;
2 |
3 | public class Info
4 | {
5 | private long time;
6 | private String title;
7 | private String teacher;
8 | private String content;
9 | private FileUpload[] files;
10 |
11 | public Info()
12 | {
13 | }
14 |
15 | public Info(long time, String title, String teacher, String content, FileUpload[] files)
16 | {
17 | this.time = time;
18 | this.title = title;
19 | this.teacher = teacher;
20 | this.content = content;
21 | this.files = files;
22 | }
23 |
24 | public long getTime()
25 | {
26 | return time;
27 | }
28 |
29 | public String getTitle()
30 | {
31 | return title;
32 | }
33 |
34 | public String getTeacher()
35 | {
36 | return teacher;
37 | }
38 |
39 | public String getContent()
40 | {
41 | return content;
42 | }
43 |
44 | public FileUpload[] getFiles()
45 | {
46 | return files;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Lesson.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Lesson
20 | {
21 | private String subject;
22 | private String teacher;
23 | private String room;
24 |
25 | private long from;
26 | private long to;
27 |
28 | private boolean away;
29 | private boolean cancelled;
30 |
31 | public Lesson()
32 | {
33 | }
34 |
35 | public Lesson(String subject, String teacher, String room, long from, long to, boolean away, boolean cancelled)
36 | {
37 | this.subject = subject;
38 | this.teacher = teacher;
39 | this.room = room;
40 | this.from = from;
41 | this.to = to;
42 | this.away = away;
43 | this.cancelled = cancelled;
44 | }
45 |
46 | public String getSubject()
47 | {
48 | return subject;
49 | }
50 |
51 | public String getTeacher()
52 | {
53 | return teacher;
54 | }
55 |
56 | public String getRoom()
57 | {
58 | return room;
59 | }
60 |
61 | public long getFrom()
62 | {
63 | return from;
64 | }
65 |
66 | public long getTo()
67 | {
68 | return to;
69 | }
70 |
71 | public boolean isAway()
72 | {
73 | return away;
74 | }
75 |
76 | public boolean isCancelled()
77 | {
78 | return cancelled;
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Mark.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | import java.util.Calendar;
20 |
21 | public class Mark
22 | {
23 | private String subject;
24 | private String title;
25 | private float value;
26 | private boolean away;
27 | private float max;
28 | private float average;
29 | private float higher;
30 | private float lower;
31 | private float coefficient;
32 | private int period;
33 | private long time;
34 |
35 | public Mark()
36 | {
37 | }
38 |
39 | public Mark(String subject, String title, float value, boolean away, float max, float average, float higher, float lower, float coefficient, int period, long time)
40 | {
41 | this.subject = subject;
42 | this.title = title;
43 | this.value = value;
44 | this.away = away;
45 | this.max = max;
46 | this.average = average;
47 | this.higher = higher;
48 | this.lower = lower;
49 | this.coefficient = coefficient;
50 | this.period = period;
51 | this.time = time;
52 | }
53 |
54 | public String getSubject()
55 | {
56 | return subject;
57 | }
58 |
59 | public String getTitle()
60 | {
61 | return title;
62 | }
63 |
64 | public float getValue()
65 | {
66 | return value;
67 | }
68 |
69 | public boolean isAway()
70 | {
71 | return away;
72 | }
73 |
74 | public float getMax()
75 | {
76 | return max;
77 | }
78 |
79 | public float getAverage()
80 | {
81 | return average;
82 | }
83 |
84 | public float getHigher()
85 | {
86 | return higher;
87 | }
88 |
89 | public float getLower()
90 | {
91 | return lower;
92 | }
93 |
94 | public float getCoefficient()
95 | {
96 | return coefficient;
97 | }
98 |
99 | public int getPeriod()
100 | {
101 | return period;
102 | }
103 |
104 | public long getTime()
105 | {
106 | return time;
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Marks.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Marks
20 | {
21 | private int period;
22 | private SubjectMarks[] marks;
23 | private Averages averages;
24 |
25 | public Marks()
26 | {
27 | }
28 |
29 | public Marks(int period, SubjectMarks[] marks, Averages averages)
30 | {
31 | this.period = period;
32 | this.marks = marks;
33 | this.averages = averages;
34 | }
35 |
36 | public int getPeriod()
37 | {
38 | return period;
39 | }
40 |
41 | public SubjectMarks[] getMarks()
42 | {
43 | return marks;
44 | }
45 |
46 | public Averages getAverages()
47 | {
48 | return averages;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Period.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Period
20 | {
21 | private int id;
22 | private String name;
23 | private boolean isDefault;
24 | private long from;
25 | private long to;
26 |
27 | public Period()
28 | {
29 | }
30 |
31 | public Period(int id, String name, boolean isDefault, long from, long to)
32 | {
33 | this.id = id;
34 | this.name = name;
35 | this.isDefault = isDefault;
36 | this.from = from;
37 | this.to = to;
38 | }
39 |
40 | public int getId()
41 | {
42 | return id;
43 | }
44 |
45 | public String getName()
46 | {
47 | return name;
48 | }
49 |
50 | public boolean isDefault()
51 | {
52 | return isDefault;
53 | }
54 |
55 | public long getFrom()
56 | {
57 | return from;
58 | }
59 |
60 | public long getTo()
61 | {
62 | return to;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Reminder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Reminder
20 | {
21 | private String title;
22 | private String content;
23 | private String author;
24 | private long time;
25 |
26 | public Reminder()
27 | {
28 | }
29 |
30 | public Reminder(String title, String content, String author, long time)
31 | {
32 | this.title = title;
33 | this.content = content;
34 | this.author = author;
35 | this.time = time;
36 | }
37 |
38 | public String getTitle()
39 | {
40 | return title;
41 | }
42 |
43 | public String getContent()
44 | {
45 | return content;
46 | }
47 |
48 | public String getAuthor()
49 | {
50 | return author;
51 | }
52 |
53 | public long getTime()
54 | {
55 | return time;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Report.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Report
20 | {
21 | private int period;
22 | private ReportSubject[] subjects;
23 | private Averages averages;
24 | private Comment[] comments;
25 |
26 | public Report()
27 | {
28 | }
29 |
30 | public Report(int period, ReportSubject[] subjects, Averages averages, Comment[] comments)
31 | {
32 | this.period = period;
33 | this.subjects = subjects;
34 | this.averages = averages;
35 | this.comments = comments;
36 | }
37 |
38 | public int getPeriod()
39 | {
40 | return period;
41 | }
42 |
43 | public ReportSubject[] getSubjects()
44 | {
45 | return subjects;
46 | }
47 |
48 | public Averages getAverages()
49 | {
50 | return averages;
51 | }
52 |
53 | public Comment[] getComments()
54 | {
55 | return comments;
56 | }
57 |
58 | public static class ReportSubject
59 | {
60 | private String name;
61 | private float average;
62 | private float studentClassAverage;
63 | private float maxAverage;
64 | private float minAverage;
65 | private String comment;
66 | private float coefficient;
67 |
68 | public ReportSubject()
69 | {
70 | }
71 |
72 | public ReportSubject(String name, float average, float studentClassAverage, float maxAverage, float minAverage, String comment, float coefficient)
73 | {
74 | this.name = name;
75 | this.average = average;
76 | this.studentClassAverage = studentClassAverage;
77 | this.maxAverage = maxAverage;
78 | this.minAverage = minAverage;
79 | this.comment = comment;
80 | this.coefficient = coefficient;
81 | }
82 |
83 | public String getName()
84 | {
85 | return name;
86 | }
87 |
88 | public float getAverage()
89 | {
90 | return average;
91 | }
92 |
93 | public float getStudentClassAverage()
94 | {
95 | return studentClassAverage;
96 | }
97 |
98 | public float getMaxAverage()
99 | {
100 | return maxAverage;
101 | }
102 |
103 | public float getMinAverage()
104 | {
105 | return minAverage;
106 | }
107 |
108 | public String getComment()
109 | {
110 | return comment;
111 | }
112 |
113 | public float getCoefficient()
114 | {
115 | return coefficient;
116 | }
117 | }
118 |
119 | public static class Comment
120 | {
121 | private String title;
122 | private String value;
123 |
124 | public Comment()
125 | {
126 | }
127 |
128 | public Comment(String title, String value)
129 | {
130 | this.title = title;
131 | this.value = value;
132 | }
133 |
134 | public String getTitle()
135 | {
136 | return title;
137 | }
138 |
139 | public String getValue()
140 | {
141 | return value;
142 | }
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/SubjectMarks.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class SubjectMarks
20 | {
21 | private String name;
22 | private float average;
23 | private float studentClassAverage;
24 | private float maxAverage;
25 | private float minAverage;
26 | private Mark[] marks;
27 |
28 | public SubjectMarks()
29 | {
30 | }
31 |
32 | public SubjectMarks(String name, float average, float studentClassAverage, float maxAverage, float minAverage, Mark[] marks)
33 | {
34 | this.name = name;
35 | this.average = average;
36 | this.studentClassAverage = studentClassAverage;
37 | this.maxAverage = maxAverage;
38 | this.minAverage = minAverage;
39 | this.marks = marks;
40 | }
41 |
42 | public String getSubject()
43 | {
44 | return name;
45 | }
46 |
47 | public float getAverage()
48 | {
49 | return average;
50 | }
51 |
52 | public float getStudentClassAverage()
53 | {
54 | return studentClassAverage;
55 | }
56 |
57 | public float getMaxAverage()
58 | {
59 | return maxAverage;
60 | }
61 |
62 | public float getMinAverage()
63 | {
64 | return minAverage;
65 | }
66 |
67 | public Mark[] getMarks()
68 | {
69 | return marks;
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/src/main/java/fr/litarvan/pronote/data/Week.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2019 Adrien 'Litarvan' Navratil
3 | *
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * This program is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with this program. If not, see .
16 | */
17 | package fr.litarvan.pronote.data;
18 |
19 | public class Week
20 | {
21 | private long time;
22 | private Lesson[] content;
23 |
24 | public Week()
25 | {
26 | }
27 |
28 | public Week(long time, Lesson[] content)
29 | {
30 | this.time = time;
31 | this.content = content;
32 | }
33 |
34 | public long getTime()
35 | {
36 | return time;
37 | }
38 |
39 | public Lesson[] getContent()
40 | {
41 | return content;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------