Compare commits
214 Commits
Author | SHA1 | Date | |
---|---|---|---|
5a997dacb7 | |||
ed9458d9a5 | |||
3656d3161f | |||
d178c15d2f | |||
1f65b8465e | |||
6bb03b3be8 | |||
68b9847927 | |||
e1a83927c4 | |||
fc9981aa5d | |||
2d6610e05c | |||
316cd2f7f9 | |||
36785f019a | |||
4b78862486 | |||
20d0abba29 | |||
5add95ece1 | |||
575e244b3a | |||
8db73e9459 | |||
040857ba20 | |||
4b0f0de52c | |||
ba76453e45 | |||
824ed3f282 | |||
d27d069ce2 | |||
38aa26a3ff | |||
be807cb6c8 | |||
35f1fe8d61 | |||
2621e5680d | |||
475e7dd6a3 | |||
feb38b97e4 | |||
f773310cdb | |||
f21feabc49 | |||
ca23f92096 | |||
919680c766 | |||
722f8d691a | |||
4f0021919c | |||
1b7db4bfbb | |||
dcab8df4b9 | |||
cae4f140e6 | |||
1b30b00bb8 | |||
514d1e11aa | |||
66bd566526 | |||
e910c7a48e | |||
f8ee5cb062 | |||
c72c301039 | |||
5ba12cf8c6 | |||
82d7cf94e8 | |||
c365564a77 | |||
5526691cb6 | |||
1d7585071d | |||
11b6c00e4a | |||
c56cfec564 | |||
f305a7a599 | |||
ad9b6d42f0 | |||
297502056c | |||
52ed7dcb6c | |||
9fcf245ecd | |||
1b1f2ae3bb | |||
2f87779647 | |||
79093ca6f2 | |||
7f162441e2 | |||
4da812af39 | |||
43f6048c27 | |||
ffc2ef9a4e | |||
d3c13b8fc3 | |||
c78fb83774 | |||
941765a3a3 | |||
189830e0f4 | |||
2061d6408f | |||
e29886560e | |||
20d9313257 | |||
8476f0e62e | |||
a174ae998d | |||
c5bab52fa2 | |||
e6d60e670e | |||
c0ddd82e03 | |||
28f1430be0 | |||
840b21a213 | |||
65230a31ec | |||
c2bcbfaaa9 | |||
c3d354cd5b | |||
ed49eb4c9c | |||
7d1866c304 | |||
d2a736295a | |||
a9e788f7ff | |||
ea6a928cb4 | |||
b9ac592ea9 | |||
450ae4e124 | |||
ca504f6efc | |||
4e1fd6b2cf | |||
3ab15e0e00 | |||
504a73ee6c | |||
24e4870baf | |||
30388fffd7 | |||
04f386ea3d | |||
9c94305ba5 | |||
765eac5251 | |||
2d4ada6c9e | |||
5ee979447f | |||
229bfe8d22 | |||
175f2d7b57 | |||
247e81ba00 | |||
6fd70a0194 | |||
f96d0ebed9 | |||
900065d758 | |||
92baecbd0d | |||
48f96b5932 | |||
9a298833f5 | |||
11cc85e37c | |||
60c7316742 | |||
834ef7c297 | |||
7686228e01 | |||
7a3c0de7ad | |||
1f30deb36e | |||
c2b8f85ad9 | |||
9f04dbf60f | |||
24f59b45c3 | |||
cb7e70471b | |||
240e61df0e | |||
2b60f555e9 | |||
2f24b25399 | |||
533637d32a | |||
fd6c0b6c74 | |||
5e30c8e949 | |||
7f6f632b73 | |||
70879945f2 | |||
ab71dd3fde | |||
0a7f09077f | |||
745894f3a3 | |||
0211a7f0a0 | |||
837bce7286 | |||
b680cc4366 | |||
f35d9d4b93 | |||
27f6fc7e04 | |||
bb69d1b643 | |||
5cd8ed88c0 | |||
f2b7c0e781 | |||
357b2350cb | |||
a1f64baca4 | |||
6b07a56a1b | |||
b617957891 | |||
0e962c17c2 | |||
a90d5cb9c3 | |||
64b0919b7f | |||
0f5a801464 | |||
d7eac45e96 | |||
ef5d3aead9 | |||
5dcd4f9b72 | |||
c4792289ef | |||
4b93a76693 | |||
d44a1dbce1 | |||
083765b020 | |||
b8a31c3faf | |||
378aba9716 | |||
5a4b8b22f3 | |||
8725640168 | |||
dab1bd4ac6 | |||
11578aa735 | |||
b63e28f9a9 | |||
072c504d2b | |||
7b7be1eef1 | |||
81d177c270 | |||
8d014ab7e9 | |||
a06d114127 | |||
0e16519baf | |||
dde5775a41 | |||
e2003e2538 | |||
228f680e5d | |||
306092ce45 | |||
d4b172e022 | |||
b4c765b482 | |||
3f1fff6d96 | |||
b59008a90f | |||
74c0dda999 | |||
2288ceffb8 | |||
ffe8511e3f | |||
34205e4a8b | |||
ef648c7f8b | |||
3592946e6f | |||
859f8dc319 | |||
9c97962e89 | |||
a4445a8a97 | |||
3f54d13b6b | |||
5685e73e46 | |||
e9b357e92d | |||
62bc00cd68 | |||
54e6aee82e | |||
3000c077c4 | |||
7d5072b529 | |||
052d5e3911 | |||
0014b74c6b | |||
08dd316aee | |||
95caa21f2a | |||
cd6e14b13b | |||
2cf262130e | |||
23183c9d7a | |||
be8ee4c835 | |||
3105e9e53b | |||
8e855bd375 | |||
67f83a4d2f | |||
d7f0fcad30 | |||
f29689c6cd | |||
dd2c69601a | |||
bfaa3d196b | |||
ffd20c94dd | |||
1740047aea | |||
cb2d4a905d | |||
89350e5793 | |||
4ef3334bf7 | |||
cb6d39fe15 | |||
09a8cc38f9 | |||
3443b01b9a | |||
7dde13585c | |||
176d17e1ec | |||
119e38254a | |||
6fcf09e2b7 |
@ -1,5 +1,3 @@
|
||||
exclude:
|
||||
- /app/src/main/java/io/github/wulkanowy/data/db/dao/entities/.*
|
||||
component_depth: 1
|
||||
component_depth: 8
|
||||
languages:
|
||||
- java
|
||||
- kotlin
|
||||
|
@ -7,7 +7,7 @@ references:
|
||||
|
||||
container_config: &container_config
|
||||
docker:
|
||||
- image: circleci/android:api-26-alpha
|
||||
- image: circleci/android:api-28-alpha
|
||||
working_directory: *workspace_root
|
||||
environment:
|
||||
environment:
|
||||
@ -25,6 +25,8 @@ jobs:
|
||||
build:
|
||||
<<: *container_config
|
||||
steps:
|
||||
- run: |
|
||||
curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash
|
||||
- checkout
|
||||
- restore_cache:
|
||||
<<: *general_cache_key
|
||||
@ -33,10 +35,10 @@ jobs:
|
||||
command: ./gradlew dependencies --no-daemon --stacktrace --console=plain -PdisablePreDex || true
|
||||
- run:
|
||||
name: Initial build
|
||||
command: ./gradlew build assembleDebug -x test -x lint -x fabricGenerateResourcesRelease --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
- store_artifacts:
|
||||
path: ./app/build/outputs/apk/
|
||||
destination: apks/
|
||||
command: ./gradlew build -x test -x lint -x fabricGenerateResourcesRelease -x packageRelease --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
- run:
|
||||
name: Run FOSSA
|
||||
command: fossa --no-ansi || true
|
||||
- persist_to_workspace:
|
||||
root: *workspace_root
|
||||
paths:
|
||||
@ -78,11 +80,8 @@ jobs:
|
||||
name: Upload unit code coverage to codecov
|
||||
command: bash <(curl -s https://codecov.io/bash) -F app
|
||||
- store_artifacts:
|
||||
path: ./app/build/reports/tests/
|
||||
destination: tests_reports/
|
||||
- store_artifacts:
|
||||
path: ./app/build/reports/jacoco/jacocoTestDebugUnitTestReport/
|
||||
destination: coverage_reports/
|
||||
path: ./app/build/reports/
|
||||
destination: reports/
|
||||
- store_test_results:
|
||||
path: ./app/build/test-results
|
||||
- persist_to_workspace:
|
||||
@ -90,38 +89,13 @@ jobs:
|
||||
paths:
|
||||
- "./app/build/jacoco"
|
||||
|
||||
api-test:
|
||||
<<: *container_config
|
||||
steps:
|
||||
- *attach_workspace
|
||||
- restore_cache:
|
||||
<<: *general_cache_key
|
||||
- run:
|
||||
name: Run api tests
|
||||
command: ./gradlew :api:test :api:jacocoTestReport --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
- run:
|
||||
name: Upload code coverage to codecov
|
||||
command: bash <(curl -s https://codecov.io/bash) -F api
|
||||
- store_artifacts:
|
||||
path: ./api/build/reports/tests/
|
||||
destination: tests_reports/
|
||||
- store_artifacts:
|
||||
path: ./api/build/reports/jacoco/test/
|
||||
destination: coverage_reports/
|
||||
- store_test_results:
|
||||
path: ./api/build/test-results
|
||||
- persist_to_workspace:
|
||||
root: *workspace_root
|
||||
paths:
|
||||
- "./api/build/jacoco"
|
||||
|
||||
instrumented:
|
||||
<<: *container_config
|
||||
steps:
|
||||
- *attach_workspace
|
||||
- run:
|
||||
name: Setup emulator
|
||||
command: sdkmanager "system-images;android-19;google_apis;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-19;google_apis;armeabi-v7a"
|
||||
command: sdkmanager "system-images;android-19;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-19;default;armeabi-v7a"
|
||||
- run:
|
||||
name: Launch emulator
|
||||
command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator64-arm -avd test -noaudio -no-boot-anim -no-window -accel on
|
||||
@ -137,15 +111,13 @@ jobs:
|
||||
# unlock the emulator screen
|
||||
sleep 30
|
||||
adb shell input keyevent 82
|
||||
- run:
|
||||
name: Clean project
|
||||
command: ./gradlew clean --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
- run:
|
||||
name: Run instrumented tests
|
||||
command: ./gradlew createDebugCoverageReport --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
command: ./gradlew clean createDebugCoverageReport jacocoTestReport --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
- run:
|
||||
name: Collect logs from emulator
|
||||
command: adb logcat -d > ./app/build/reports/logcat_emulator.txt
|
||||
when: always
|
||||
- run:
|
||||
name: Upload code covarage to codecov
|
||||
command: bash <(curl -s https://codecov.io/bash) -F instrumented
|
||||
@ -170,32 +142,66 @@ jobs:
|
||||
command: ./gradlew jacocoTestReport --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
- run:
|
||||
name: Run sonarqube runner
|
||||
command: ./gradlew -x test -x lint sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=$CIRCLE_BRANCH --no-daemon --stacktrace --console=plain -PdisablePreDex
|
||||
command: if [ -z ${SONAR_HOST+x} ]; then echo "sonar scan skipped"; else ./gradlew -x test -x lint sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=$CIRCLE_BRANCH --no-daemon --stacktrace --console=plain -PdisablePreDex; fi
|
||||
command: "[[ -v CIRCLE_PR_NUMBER ]] && ./gradlew -x test -x lint sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=$CIRCLE_BRANCH --no-daemon --stacktrace --console=plain -PdisablePreDex || true"
|
||||
|
||||
deploy:
|
||||
<<: *container_config
|
||||
steps:
|
||||
- *attach_workspace
|
||||
- restore_cache:
|
||||
<<: *general_cache_key
|
||||
- run:
|
||||
name: Decrypt keys
|
||||
command: |
|
||||
gpg --yes --batch --passphrase=$SERVICES_ENCRYPT_KEY ./app/src/release/google-services.json.gpg
|
||||
openssl aes-256-cbc -d -in ./app/key-encrypted.p12 -k $ENCRYPT_KEY >> ./app/key.p12
|
||||
openssl aes-256-cbc -d -in ./app/upload-key-encrypted.jks -k $ENCRYPT_KEY >> ./app/upload-key.jks
|
||||
- run:
|
||||
name: Publish release
|
||||
command: ./gradlew publish --no-daemon --stacktrace --console=plain -PenableCrashlytics -PdisablePreDex
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
|
||||
build_check_tests:
|
||||
build-test-deploy:
|
||||
jobs:
|
||||
- build
|
||||
- build:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
- lint:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
requires:
|
||||
- build
|
||||
- app-test:
|
||||
requires:
|
||||
- build
|
||||
- api-test:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
requires:
|
||||
- build
|
||||
- instrumented:
|
||||
requires:
|
||||
- build
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
requires:
|
||||
- build
|
||||
- sonarcube:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
requires:
|
||||
- build
|
||||
- lint
|
||||
- app-test
|
||||
- api-test
|
||||
- instrumented
|
||||
- deploy:
|
||||
requires:
|
||||
- instrumented
|
||||
filters:
|
||||
tags:
|
||||
only: /\d+\.\d+\.\d+/
|
||||
branches:
|
||||
ignore: /.*/
|
||||
|
17
.github/ISSUE_TEMPLATE.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
## Co powinno się dziać
|
||||
|
||||
|
||||
## Co się dzieje
|
||||
|
||||
|
||||
## Jak to zrobić kolejny raz:
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
## Informacje o urządzeniu i dzienniku
|
||||
|
||||
- Wersja aplikacji:
|
||||
- Wersja Androida:
|
||||
- Adres URL dziennika:
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -33,7 +33,6 @@ local.properties
|
||||
.idea/vcs.xml
|
||||
.idea/workspace.xml
|
||||
.idea/caches/
|
||||
.idea/codeStyles/
|
||||
*.iml
|
||||
|
||||
# OS-specific files
|
||||
@ -44,3 +43,8 @@ local.properties
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
.idea/caches/
|
||||
app/key.p12
|
||||
app/upload-key.jks
|
||||
*.log
|
||||
.idea/assetWizardSettings.xml
|
||||
|
@ -1,4 +1,4 @@
|
||||
image: circleci/android:api-27-alpha
|
||||
image: circleci/android:api-28-alpha
|
||||
|
||||
before_script:
|
||||
- export GRADLE_USER_HOME=`pwd`/.gradle
|
||||
|
226
.idea/codeStyleSettings.xml
generated
226
.idea/codeStyleSettings.xml
generated
@ -1,226 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectCodeStyleSettingsManager">
|
||||
<option name="PER_PROJECT_SETTINGS">
|
||||
<value>
|
||||
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
|
||||
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
|
||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||
<value />
|
||||
</option>
|
||||
<option name="IMPORT_LAYOUT_TABLE">
|
||||
<value>
|
||||
<package name="android" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="com" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="junit" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="net" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="org" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="java" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="javax" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="true" />
|
||||
<emptyLine />
|
||||
</value>
|
||||
</option>
|
||||
<option name="RIGHT_MARGIN" value="100" />
|
||||
<AndroidXmlCodeStyleSettings>
|
||||
<option name="USE_CUSTOM_SETTINGS" value="true" />
|
||||
</AndroidXmlCodeStyleSettings>
|
||||
<Objective-C-extensions>
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" />
|
||||
<pair source="c" header="h" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
<XML>
|
||||
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:android</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:.*</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:id</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:name</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>name</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>style</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_width</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_height</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:width</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:height</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>.*</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
</value>
|
||||
</option>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
</component>
|
||||
</project>
|
172
.idea/codeStyles/Project.xml
generated
Normal file
172
.idea/codeStyles/Project.xml
generated
Normal file
@ -0,0 +1,172 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<option name="LINE_SEPARATOR" value=" " />
|
||||
<AndroidXmlCodeStyleSettings>
|
||||
<option name="USE_CUSTOM_SETTINGS" value="true" />
|
||||
</AndroidXmlCodeStyleSettings>
|
||||
<JetCodeStyleSettings>
|
||||
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
|
||||
<value>
|
||||
<package name="kotlinx.android.synthetic" withSubpackages="true" static="false" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
|
||||
<option name="CONTINUATION_INDENT_IN_PARAMETER_LISTS" value="false" />
|
||||
<option name="CONTINUATION_INDENT_IN_ARGUMENT_LISTS" value="false" />
|
||||
<option name="CONTINUATION_INDENT_FOR_EXPRESSION_BODIES" value="false" />
|
||||
<option name="CONTINUATION_INDENT_FOR_CHAINED_CALLS" value="false" />
|
||||
<option name="CONTINUATION_INDENT_IN_SUPERTYPE_LISTS" value="false" />
|
||||
<option name="CONTINUATION_INDENT_IN_IF_CONDITIONS" value="false" />
|
||||
<option name="CONTINUATION_INDENT_IN_ELVIS" value="false" />
|
||||
<option name="WRAP_ELVIS_EXPRESSIONS" value="0" />
|
||||
</JetCodeStyleSettings>
|
||||
<Objective-C-extensions>
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" fileNamingConvention="NONE" />
|
||||
<pair source="c" header="h" fileNamingConvention="NONE" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
<XML>
|
||||
<option name="XML_KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
|
||||
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:android</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:.*</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:id</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:name</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>name</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>style</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>ANDROID_ATTRIBUTE_ORDER</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>.*</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="kotlin">
|
||||
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="1" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
|
||||
<option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
|
||||
<option name="EXTENDS_LIST_WRAP" value="1" />
|
||||
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
</component>
|
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@ -8,7 +8,6 @@
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/api" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
|
68
.travis.yml
Normal file
68
.travis.yml
Normal file
@ -0,0 +1,68 @@
|
||||
language: android
|
||||
jdk: oraclejdk8
|
||||
|
||||
env:
|
||||
global:
|
||||
- ANDROID_API_LEVEL=28
|
||||
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.gradle/caches/
|
||||
- $HOME/.gradle/wrapper/
|
||||
|
||||
#branches:
|
||||
# only:
|
||||
# - master
|
||||
# - 0.7.x
|
||||
|
||||
android:
|
||||
licenses:
|
||||
- android-sdk-preview-license-.+
|
||||
- android-sdk-license-.+
|
||||
- google-gdk-license-.+
|
||||
components:
|
||||
- tools
|
||||
- platform-tools
|
||||
# The BuildTools version used by your project
|
||||
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
|
||||
# The SDK version used to compile your project
|
||||
- android-$ANDROID_API_LEVEL
|
||||
# Additional components
|
||||
- extra-google-google_play_services
|
||||
- extra-google-m2repository
|
||||
- extra-android-m2repository
|
||||
- addon-google_apis-google-$ANDROID_API_LEVEL
|
||||
# Android emulator
|
||||
- android-19
|
||||
- sys-img-armeabi-v7a-android-19
|
||||
|
||||
before_script:
|
||||
# Launch emulator before the execution
|
||||
- echo no | android create avd --force -n test -t android-19 --abi armeabi-v7a
|
||||
- emulator -avd test -no-audio -no-window &
|
||||
- android-wait-for-emulator
|
||||
- adb shell input keyevent 82 &
|
||||
- "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | sudo bash"
|
||||
|
||||
script:
|
||||
- ./gradlew dependencies --stacktrace --daemon
|
||||
- fossa --no-ansi || true
|
||||
- ./gradlew lint -x fabricGenerateResourcesRelease --stacktrace --daemon
|
||||
- ./gradlew test -x fabricGenerateResourcesRelease --stacktrace --daemon
|
||||
- ./gradlew createDebugCoverageReport --stacktrace --daemon
|
||||
- ./gradlew jacocoTestReport --stacktrace --daemon
|
||||
- if [ -z ${SONAR_HOST+x} ]; then echo "sonar scan skipped"; else
|
||||
git fetch --unshallow;
|
||||
./gradlew sonarqube -x test -x lint -x fabricGenerateResourcesRelease -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH} --stacktrace --daemon;
|
||||
fi
|
||||
- |
|
||||
if [ $TRAVIS_TAG ]; then
|
||||
gpg --yes --batch --passphrase=$SERVICES_ENCRYPT_KEY ./app/src/release/google-services.json.gpg;
|
||||
gpg --yes --batch --passphrase=$ENCRYPT_KEY ./app/key.p12.gpg;
|
||||
gpg --yes --batch --passphrase=$ENCRYPT_KEY ./app/upload-key.jks.gpg;
|
||||
./gradlew publish -PenableCrashlytics --stacktrace;
|
||||
fi
|
||||
|
||||
after_success:
|
||||
- bash <(curl -s https://codecov.io/bash)
|
17
README.md
17
README.md
@ -1,13 +1,22 @@
|
||||
# Wulkanowy
|
||||
|
||||
[](https://circleci.com/gh/wulkanowy/wulkanowy)
|
||||
[](https://travis-ci.com/wulkanowy/wulkanowy)
|
||||
[](https://www.bitrise.io/app/daeff1893f3c8128)
|
||||
[](https://codecov.io/gh/wulkanowy/wulkanowy)
|
||||
[](https://bettercodehub.com/)
|
||||
[](https://scrutinizer-ci.com/g/wulkanowy/wulkanowy/?branch=master)
|
||||
[](https://snyk.io/test/github/wulkanowy/wulkanowy?targetFile=app%2Fbuild.gradle)
|
||||
[](https://bintray.com/wulkanowy/wulkanowy/api)
|
||||
[](https://sonarcloud.io/dashboard?id=io.github.wulkanowy%3Aapp)
|
||||
[](https://app.fossa.com/projects/custom%2B5644%2Fgithub.com%2Fwulkanowy%2Fwulkanowy?ref=badge_shield)
|
||||
[](https://discord.gg/vccAQBr)
|
||||
|
||||
[Pobierz wersję rozwojową](https://bitrise-redirector.herokuapp.com/v0.1/apps/daeff1893f3c8128/builds/master/artifacts/app-debug-bitrise-signed.apk)
|
||||
[Pobierz wersję beta z Google Play](https://play.google.com/store/apps/details?id=io.github.wulkanowy&utm_source=vcs)
|
||||
|
||||
[Pobierz wersję DEV](https://bitrise-redirector.herokuapp.com/v0.1/apps/f841f20d8f8b1dc8/builds/master/artifacts/0)
|
||||
[(Więcej wersji DEV)](https://wulkanowy.github.io/dev.html)
|
||||
|
||||
Androidowy klient dziennika VULCAN UONET+.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[](https://app.fossa.com/projects/custom%2B5644%2Fgithub.com%2Fwulkanowy%2Fwulkanowy?ref=badge_large)
|
||||
|
117
api/build.gradle
117
api/build.gradle
@ -1,117 +0,0 @@
|
||||
apply plugin: 'java-library'
|
||||
apply plugin: 'org.sonarqube'
|
||||
apply plugin: 'jacoco'
|
||||
apply plugin: 'com.jfrog.bintray'
|
||||
apply plugin: 'com.github.dcendents.android-maven'
|
||||
|
||||
compileJava.options.encoding = "UTF-8"
|
||||
compileTestJava.options.encoding = "UTF-8"
|
||||
|
||||
ext {
|
||||
PUBLISH_GROUP_ID = GROUP_ID
|
||||
PUBLISH_ARTIFACT_ID = 'api'
|
||||
PUBLISH_VERSION = System.getenv('GIT_TAG')
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
events "passed", "skipped", "failed", "standardOut", "standardError"
|
||||
outputs.upToDateWhen {false}
|
||||
showStandardStreams = true
|
||||
}
|
||||
}
|
||||
|
||||
jacocoTestReport {
|
||||
reports {
|
||||
xml.enabled true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jsoup:jsoup:$jsoup"
|
||||
implementation "org.apache.commons:commons-lang3:$apacheLang"
|
||||
implementation "com.google.code.gson:gson:$gson"
|
||||
|
||||
testImplementation "junit:junit:$junit"
|
||||
testImplementation "org.mockito:mockito-core:$mockito"
|
||||
}
|
||||
|
||||
version = PUBLISH_VERSION
|
||||
group = GROUP_ID
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.projectName", GROUP_ID + ":api"
|
||||
property "sonar.projectKey", GROUP_ID + ":wulkanowy-api"
|
||||
}
|
||||
}
|
||||
|
||||
def siteUrl = 'https://github.com/wulkanowy/wulkanowy'
|
||||
def gitUrl = 'https://github.com/wulkanowy/wulkanowy.git'
|
||||
|
||||
bintray {
|
||||
user = System.getenv('BINTRAY_USER')
|
||||
key = System.getenv('BINTRAY_KEY')
|
||||
configurations = ['archives']
|
||||
pkg {
|
||||
repo = 'wulkanowy'
|
||||
name = 'api'
|
||||
userOrg = 'wulkanowy'
|
||||
licenses = ['Apache-2.0']
|
||||
vcsUrl = gitUrl
|
||||
labels = ['aar', 'android', 'wulkanowy', 'api']
|
||||
publicDownloadNumbers = true
|
||||
publish = true
|
||||
|
||||
version {
|
||||
name = PUBLISH_VERSION
|
||||
vcsTag = PUBLISH_VERSION
|
||||
released = new Date()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
install {
|
||||
repositories.mavenInstaller {
|
||||
pom {
|
||||
project {
|
||||
packaging 'aar'
|
||||
name 'Bintray publish Gradle aar'
|
||||
url siteUrl
|
||||
licenses {
|
||||
license {
|
||||
name 'The Apache Software License, Version 2.0'
|
||||
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id 'mklkj'
|
||||
name 'Mikołaj Pich'
|
||||
email 'm.pich@outlook.com'
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection gitUrl
|
||||
developerConnection gitUrl
|
||||
url siteUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task sourcesJar(type: Jar, dependsOn: classes) {
|
||||
classifier = 'sources'
|
||||
from sourceSets.main.allSource
|
||||
}
|
||||
|
||||
task javadocJar(type: Jar, dependsOn: javadoc) {
|
||||
classifier = 'javadoc'
|
||||
from javadoc.destinationDir
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives sourcesJar
|
||||
archives javadocJar
|
||||
}
|
@ -1,199 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.jsoup.Connection;
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.github.wulkanowy.api.login.Login;
|
||||
|
||||
public class Client {
|
||||
|
||||
private String protocol = "https";
|
||||
|
||||
private String host = "vulcan.net.pl";
|
||||
|
||||
private String email;
|
||||
|
||||
private String password;
|
||||
|
||||
private String symbol;
|
||||
|
||||
private Date lastSuccessRequest = null;
|
||||
|
||||
private Cookies cookies = new Cookies();
|
||||
|
||||
Client(String email, String password, String symbol) {
|
||||
this.email = email;
|
||||
this.password = password;
|
||||
this.symbol = symbol;
|
||||
|
||||
setFullEndpointInfo(email);
|
||||
}
|
||||
|
||||
private void setFullEndpointInfo(String info) {
|
||||
String[] creds = info.split("\\\\");
|
||||
|
||||
email = info;
|
||||
|
||||
if (creds.length > 2) {
|
||||
String[] url = creds[0].split("://");
|
||||
|
||||
protocol = url[0];
|
||||
host = url[1];
|
||||
email = creds[2];
|
||||
}
|
||||
}
|
||||
|
||||
private void login() throws IOException, VulcanException {
|
||||
if (isLoggedIn()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.cookies = new Cookies();
|
||||
this.symbol = new Login(this).login(email, password, symbol);
|
||||
}
|
||||
|
||||
private boolean isLoggedIn() {
|
||||
return getCookies().size() > 0 && lastSuccessRequest != null &&
|
||||
29 > TimeUnit.MILLISECONDS.toMinutes(new Date().getTime() - lastSuccessRequest.getTime());
|
||||
|
||||
}
|
||||
|
||||
public String getSymbol() {
|
||||
return symbol;
|
||||
}
|
||||
|
||||
public void setSymbol(String symbol) {
|
||||
this.symbol = symbol;
|
||||
}
|
||||
|
||||
public void addCookies(Map<String, String> items) {
|
||||
cookies.addItems(items);
|
||||
}
|
||||
|
||||
private Map<String, String> getCookies() {
|
||||
return cookies.getItems();
|
||||
}
|
||||
|
||||
String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
String getFilledUrl(String url) {
|
||||
return url
|
||||
.replace("{schema}", protocol)
|
||||
.replace("{host}", host.replace(":", "%253A"))
|
||||
.replace("{symbol}", symbol);
|
||||
}
|
||||
|
||||
public Document getPageByUrl(String url) throws IOException, VulcanException {
|
||||
return getPageByUrl(url, true, null);
|
||||
}
|
||||
|
||||
public Document getPageByUrl(String url, boolean loginBefore) throws IOException, VulcanException {
|
||||
return getPageByUrl(url, loginBefore, null);
|
||||
}
|
||||
|
||||
public Document getPageByUrl(String url, boolean loginBefore, Map<String, String> cookies) throws IOException, VulcanException {
|
||||
if (loginBefore) {
|
||||
login();
|
||||
}
|
||||
|
||||
if (null != cookies) {
|
||||
this.cookies.addItems(cookies);
|
||||
}
|
||||
|
||||
Connection.Response response = Jsoup.connect(getFilledUrl(url))
|
||||
.followRedirects(true)
|
||||
.cookies(getCookies())
|
||||
.execute();
|
||||
|
||||
this.cookies.addItems(response.cookies());
|
||||
|
||||
Document doc = checkForErrors(response.parse());
|
||||
|
||||
if (loginBefore) {
|
||||
lastSuccessRequest = new Date();
|
||||
}
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
public Document postPageByUrl(String url, String[][] params) throws IOException, VulcanException {
|
||||
Connection connection = Jsoup.connect(getFilledUrl(url));
|
||||
|
||||
for (String[] data : params) {
|
||||
connection.data(data[0], data[1]);
|
||||
}
|
||||
|
||||
Connection.Response response = connection
|
||||
.followRedirects(true)
|
||||
.method(Connection.Method.POST)
|
||||
.cookies(getCookies())
|
||||
.execute();
|
||||
|
||||
this.cookies.addItems(response.cookies());
|
||||
|
||||
return checkForErrors(response.parse());
|
||||
}
|
||||
|
||||
public String getJsonStringByUrl(String url) throws IOException, VulcanException {
|
||||
login();
|
||||
|
||||
Connection.Response response = Jsoup.connect(getFilledUrl(url))
|
||||
.followRedirects(true)
|
||||
.ignoreContentType(true)
|
||||
.cookies(getCookies())
|
||||
.execute();
|
||||
|
||||
this.cookies.addItems(response.cookies());
|
||||
|
||||
return response.body();
|
||||
}
|
||||
|
||||
public String postJsonStringByUrl(String url, String[][] params) throws IOException, VulcanException {
|
||||
login();
|
||||
|
||||
Connection connection = Jsoup.connect(getFilledUrl(url));
|
||||
|
||||
for (String[] data : params) {
|
||||
connection.data(data[0], data[1]);
|
||||
}
|
||||
|
||||
Connection.Response response = connection
|
||||
.followRedirects(true)
|
||||
.ignoreContentType(true)
|
||||
.method(Connection.Method.POST)
|
||||
.cookies(getCookies())
|
||||
.execute();
|
||||
|
||||
this.cookies.addItems(response.cookies());
|
||||
|
||||
return response.body();
|
||||
}
|
||||
|
||||
Document checkForErrors(Document doc) throws VulcanException {
|
||||
lastSuccessRequest = null;
|
||||
|
||||
String title = doc.select("title").text();
|
||||
if ("Przerwa techniczna".equals(title)) {
|
||||
throw new VulcanOfflineException(title);
|
||||
}
|
||||
|
||||
String singIn = doc.select(".loginButton").text();
|
||||
if ("Zaloguj się".equals(singIn)) {
|
||||
throw new NotLoggedInErrorException(singIn);
|
||||
}
|
||||
|
||||
if ("Błąd strony".equals(title)) {
|
||||
throw new VulcanException("Nieznany błąd");
|
||||
}
|
||||
|
||||
return doc;
|
||||
}
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
class Cookies {
|
||||
|
||||
private Map<String, String> jar = new HashMap<>();
|
||||
|
||||
Map<String, String> getItems() {
|
||||
return jar;
|
||||
}
|
||||
|
||||
void addItems(Map<String, String> items) {
|
||||
jar.putAll(items);
|
||||
}
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
public class Diary implements ParamItem {
|
||||
|
||||
private String id = "";
|
||||
|
||||
private String studentId = "";
|
||||
|
||||
private String name = "";
|
||||
|
||||
private boolean current = false;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public Diary setId(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getStudentId() {
|
||||
return studentId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Diary setStudentId(String studentId) {
|
||||
this.studentId = studentId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Diary setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCurrent() {
|
||||
return current;
|
||||
}
|
||||
|
||||
public Diary setCurrent(boolean current) {
|
||||
this.current = current;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
public class NotLoggedInErrorException extends VulcanException {
|
||||
|
||||
public NotLoggedInErrorException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
interface ParamItem {
|
||||
|
||||
ParamItem setId(String id);
|
||||
|
||||
ParamItem setStudentId(String id);
|
||||
|
||||
ParamItem setName(String name);
|
||||
|
||||
ParamItem setCurrent(boolean isCurrent);
|
||||
|
||||
boolean isCurrent();
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
public class Semester implements ParamItem {
|
||||
|
||||
private String id = "";
|
||||
|
||||
private String studentId = "";
|
||||
|
||||
private String name = "";
|
||||
|
||||
private boolean current = false;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public Semester setId(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getStudentId() {
|
||||
return studentId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Semester setStudentId(String studentId) {
|
||||
this.studentId = studentId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Semester setName(String number) {
|
||||
this.name = number;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCurrent() {
|
||||
return current;
|
||||
}
|
||||
|
||||
public Semester setCurrent(boolean current) {
|
||||
this.current = current;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public interface SnP {
|
||||
|
||||
String getSchoolID();
|
||||
|
||||
void setDiaryID(String id);
|
||||
|
||||
String getStudentID();
|
||||
|
||||
List<Student> getStudents() throws IOException, VulcanException;
|
||||
|
||||
StudentAndParent setUp() throws IOException, VulcanException;
|
||||
|
||||
String getRowDataChildValue(Element e, int index);
|
||||
|
||||
Document getSnPPageDocument(String url) throws IOException, VulcanException;
|
||||
|
||||
List<Diary> getDiaries() throws IOException, VulcanException;
|
||||
|
||||
List<Semester> getSemesters() throws IOException, VulcanException;
|
||||
|
||||
List<Semester> getSemesters(Document gradesPage);
|
||||
|
||||
<T> T getCurrent(List<? extends ParamItem> list);
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
public class Student implements ParamItem {
|
||||
|
||||
private String id = "";
|
||||
|
||||
private String name = "";
|
||||
|
||||
private boolean current = false;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public Student setId(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getStudentId() {
|
||||
return getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Student setStudentId(String studentId) {
|
||||
return setId(studentId);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Student setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCurrent() {
|
||||
return current;
|
||||
}
|
||||
|
||||
public Student setCurrent(boolean current) {
|
||||
this.current = current;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,199 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class StudentAndParent implements SnP {
|
||||
|
||||
private static final String START_PAGE_URL = "{schema}://uonetplus.{host}/{symbol}/Start.mvc/Index";
|
||||
|
||||
private static final String BASE_URL = "{schema}://uonetplus-opiekun.{host}/{symbol}/{ID}/";
|
||||
|
||||
private static final String GRADES_PAGE_URL = "Oceny/Wszystkie";
|
||||
|
||||
private Client client;
|
||||
|
||||
private String schoolID;
|
||||
|
||||
private String studentID;
|
||||
|
||||
private String diaryID;
|
||||
|
||||
StudentAndParent(Client client, String schoolID, String studentID, String diaryID) {
|
||||
this.client = client;
|
||||
this.schoolID = schoolID;
|
||||
this.studentID = studentID;
|
||||
this.diaryID = diaryID;
|
||||
}
|
||||
|
||||
public StudentAndParent setUp() throws IOException, VulcanException {
|
||||
if (null == getStudentID() || "".equals(getStudentID())) {
|
||||
Document doc = client.getPageByUrl(getSnpHomePageUrl());
|
||||
|
||||
Student student = getCurrent(getStudents(doc));
|
||||
studentID = student.getId();
|
||||
|
||||
Diary diary = getCurrent(getDiaries(doc));
|
||||
diaryID = diary.getId();
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSchoolID() {
|
||||
return schoolID;
|
||||
}
|
||||
|
||||
public String getStudentID() {
|
||||
return studentID;
|
||||
}
|
||||
|
||||
private String getBaseUrl() {
|
||||
return BASE_URL.replace("{ID}", getSchoolID());
|
||||
}
|
||||
|
||||
String getSnpHomePageUrl() throws IOException, VulcanException {
|
||||
if (null != getSchoolID()) {
|
||||
return getBaseUrl();
|
||||
}
|
||||
|
||||
// get url to uonetplus-opiekun.vulcan.net.pl
|
||||
Document startPage = client.getPageByUrl(START_PAGE_URL);
|
||||
Element studentTileLink = startPage.select(".panel.linkownia.pracownik.klient > a").first();
|
||||
|
||||
if (null == studentTileLink) {
|
||||
throw new NotLoggedInErrorException("You are probably not logged in. Force login");
|
||||
}
|
||||
|
||||
String snpPageUrl = studentTileLink.attr("href");
|
||||
|
||||
this.schoolID = getExtractedIdFromUrl(snpPageUrl);
|
||||
|
||||
return snpPageUrl;
|
||||
}
|
||||
|
||||
String getExtractedIdFromUrl(String snpPageUrl) throws NotLoggedInErrorException {
|
||||
String[] path = snpPageUrl.split(client.getHost())[1].split("/");
|
||||
|
||||
if (5 != path.length) {
|
||||
throw new NotLoggedInErrorException("You are probably not logged in");
|
||||
}
|
||||
|
||||
return path[2];
|
||||
}
|
||||
|
||||
public String getRowDataChildValue(Element e, int index) {
|
||||
return e.select(".daneWiersz .wartosc").get(index - 1).text();
|
||||
}
|
||||
|
||||
public void setDiaryID(String id) {
|
||||
this.diaryID = id;
|
||||
}
|
||||
|
||||
public Document getSnPPageDocument(String url) throws IOException, VulcanException {
|
||||
Map<String, String> cookies = new HashMap<>();
|
||||
cookies.put("idBiezacyDziennik", diaryID);
|
||||
cookies.put("idBiezacyUczen", studentID);
|
||||
client.addCookies(cookies);
|
||||
|
||||
Document doc = client.getPageByUrl(getBaseUrl() + url, true, cookies);
|
||||
|
||||
if ("Witryna ucznia i rodzica – Strona główna".equals(doc.select("title").first().text())) {
|
||||
throw new VulcanException("Sesja została nieprawidłowo zainicjowana");
|
||||
}
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
public List<Diary> getDiaries() throws IOException, VulcanException {
|
||||
return getDiaries(client.getPageByUrl(getBaseUrl()));
|
||||
}
|
||||
|
||||
private List<Diary> getDiaries(Document doc) throws IOException, VulcanException {
|
||||
return getList(doc.select("#dziennikDropDownList option"), Diary.class);
|
||||
}
|
||||
|
||||
public List<Student> getStudents() throws IOException, VulcanException {
|
||||
return getStudents(client.getPageByUrl(getBaseUrl()));
|
||||
}
|
||||
|
||||
private List<Student> getStudents(Document doc) throws IOException, VulcanException {
|
||||
return getList(doc.select("#uczenDropDownList option"), Student.class);
|
||||
}
|
||||
|
||||
public List<Semester> getSemesters() throws IOException, VulcanException {
|
||||
return getSemesters(getSnPPageDocument(GRADES_PAGE_URL));
|
||||
}
|
||||
|
||||
public List<Semester> getSemesters(Document gradesPage) {
|
||||
Elements semesterOptions = gradesPage.select("#okresyKlasyfikacyjneDropDownList option");
|
||||
|
||||
List<Semester> semesters = new ArrayList<>();
|
||||
|
||||
for (Element e : semesterOptions) {
|
||||
Semester semester = new Semester()
|
||||
.setId(e.text())
|
||||
.setName(e.attr("value"));
|
||||
|
||||
if (isCurrent(e)) {
|
||||
semester.setCurrent(true);
|
||||
}
|
||||
|
||||
semesters.add(semester);
|
||||
}
|
||||
|
||||
return semesters;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <T> List<T> getList(Elements options, Class<? extends ParamItem> type) throws IOException, VulcanException {
|
||||
List<T> list = new ArrayList<>();
|
||||
|
||||
for (Element e : options) {
|
||||
URL url = new URL(e.val());
|
||||
try {
|
||||
ParamItem item = type.newInstance()
|
||||
.setId(url.getQuery().split("=")[1])
|
||||
.setName(e.text());
|
||||
|
||||
if (isCurrent(e)) {
|
||||
item.setCurrent(true);
|
||||
}
|
||||
if (item instanceof Diary) {
|
||||
item.setStudentId(getStudentID());
|
||||
}
|
||||
|
||||
list.add((T) item);
|
||||
} catch (Exception ex) {
|
||||
throw new VulcanException("Error while trying to parse params list", ex);
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T getCurrent(List<? extends ParamItem> list) {
|
||||
ParamItem current = null;
|
||||
for (ParamItem s : list) {
|
||||
if (s.isCurrent()) {
|
||||
current = s;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return (T) current;
|
||||
}
|
||||
|
||||
private boolean isCurrent(Element e) {
|
||||
return "selected".equals(e.attr("selected"));
|
||||
}
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import io.github.wulkanowy.api.attendance.AttendanceStatistics;
|
||||
import io.github.wulkanowy.api.attendance.AttendanceTable;
|
||||
import io.github.wulkanowy.api.exams.ExamsWeek;
|
||||
import io.github.wulkanowy.api.grades.GradesList;
|
||||
import io.github.wulkanowy.api.grades.SubjectsList;
|
||||
import io.github.wulkanowy.api.messages.Messages;
|
||||
import io.github.wulkanowy.api.notes.AchievementsList;
|
||||
import io.github.wulkanowy.api.notes.NotesList;
|
||||
import io.github.wulkanowy.api.school.SchoolInfo;
|
||||
import io.github.wulkanowy.api.school.TeachersInfo;
|
||||
import io.github.wulkanowy.api.timetable.Timetable;
|
||||
import io.github.wulkanowy.api.user.BasicInformation;
|
||||
import io.github.wulkanowy.api.user.FamilyInformation;
|
||||
|
||||
public class Vulcan {
|
||||
|
||||
private SnP snp;
|
||||
|
||||
private Client client;
|
||||
|
||||
private String schoolId;
|
||||
|
||||
private String studentId;
|
||||
|
||||
private String diaryId;
|
||||
|
||||
public void setCredentials(String email, String password, String symbol, String schoolId, String studentId, String diaryId) {
|
||||
this.schoolId = schoolId;
|
||||
this.studentId = studentId;
|
||||
this.diaryId = diaryId;
|
||||
|
||||
client = new Client(email, password, symbol);
|
||||
}
|
||||
|
||||
public Client getClient() throws NotLoggedInErrorException {
|
||||
if (null == client) {
|
||||
throw new NotLoggedInErrorException("Use setCredentials() method first");
|
||||
}
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
public String getSymbol() throws NotLoggedInErrorException {
|
||||
return getClient().getSymbol();
|
||||
|
||||
}
|
||||
|
||||
public SnP getStudentAndParent() throws VulcanException, IOException {
|
||||
if (null != this.snp) {
|
||||
return this.snp;
|
||||
}
|
||||
|
||||
this.snp = new StudentAndParent(getClient(), schoolId, studentId, diaryId)
|
||||
.setUp();
|
||||
|
||||
return this.snp;
|
||||
}
|
||||
|
||||
public AttendanceTable getAttendanceTable() throws IOException, VulcanException {
|
||||
return new AttendanceTable(getStudentAndParent());
|
||||
}
|
||||
|
||||
public AttendanceStatistics getAttendanceStatistics() throws IOException, VulcanException {
|
||||
return new AttendanceStatistics(getStudentAndParent());
|
||||
}
|
||||
|
||||
public ExamsWeek getExamsList() throws IOException, VulcanException {
|
||||
return new ExamsWeek(getStudentAndParent());
|
||||
}
|
||||
|
||||
public GradesList getGradesList() throws IOException, VulcanException {
|
||||
return new GradesList(getStudentAndParent());
|
||||
}
|
||||
|
||||
public SubjectsList getSubjectsList() throws IOException, VulcanException {
|
||||
return new SubjectsList(getStudentAndParent());
|
||||
}
|
||||
|
||||
public AchievementsList getAchievementsList() throws IOException, VulcanException {
|
||||
return new AchievementsList(getStudentAndParent());
|
||||
}
|
||||
|
||||
public NotesList getNotesList() throws IOException, VulcanException {
|
||||
return new NotesList(getStudentAndParent());
|
||||
}
|
||||
|
||||
public SchoolInfo getSchoolInfo() throws IOException, VulcanException {
|
||||
return new SchoolInfo(getStudentAndParent());
|
||||
}
|
||||
|
||||
public TeachersInfo getTeachersInfo() throws IOException, VulcanException {
|
||||
return new TeachersInfo(getStudentAndParent());
|
||||
}
|
||||
|
||||
public Timetable getTimetable() throws IOException, VulcanException {
|
||||
return new Timetable(getStudentAndParent());
|
||||
}
|
||||
|
||||
public BasicInformation getBasicInformation() throws IOException, VulcanException {
|
||||
return new BasicInformation(getStudentAndParent());
|
||||
}
|
||||
|
||||
public FamilyInformation getFamilyInformation() throws IOException, VulcanException {
|
||||
return new FamilyInformation(getStudentAndParent());
|
||||
}
|
||||
|
||||
public Messages getMessages() throws VulcanException {
|
||||
return new Messages(getClient());
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
public class VulcanException extends Exception {
|
||||
|
||||
protected VulcanException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
protected VulcanException(String message, Exception e) {
|
||||
super(message, e);
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
public class VulcanOfflineException extends VulcanException {
|
||||
|
||||
VulcanOfflineException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
@ -1,89 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
import io.github.wulkanowy.api.generic.Month;
|
||||
import io.github.wulkanowy.api.generic.Subject;
|
||||
|
||||
public class AttendanceStatistics {
|
||||
|
||||
private SnP snp;
|
||||
|
||||
private String attendancePageUrl = "Frekwencja.mvc";
|
||||
|
||||
public AttendanceStatistics(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public Types getTypesTable() throws IOException, VulcanException {
|
||||
return getTypesTable("");
|
||||
}
|
||||
|
||||
public Types getTypesTable(String tick) throws IOException, VulcanException {
|
||||
return getTypesTable(tick, -1);
|
||||
}
|
||||
|
||||
public List<Subject> getSubjectList() throws IOException, VulcanException {
|
||||
Element mainContainer = snp.getSnPPageDocument(attendancePageUrl)
|
||||
.select(".mainContainer #idPrzedmiot").first();
|
||||
|
||||
List<Subject> subjectList = new ArrayList<>();
|
||||
|
||||
for (Element subject : mainContainer.select("option")) {
|
||||
subjectList.add(new Subject()
|
||||
.setId(Integer.parseInt(subject.attr("value")))
|
||||
.setName(subject.text())
|
||||
);
|
||||
}
|
||||
|
||||
return subjectList;
|
||||
}
|
||||
|
||||
public Types getTypesTable(String tick, Integer subjectId) throws IOException, VulcanException {
|
||||
Element mainContainer = snp.getSnPPageDocument((attendancePageUrl
|
||||
+ "?data={tick}&idPrzedmiot={subject}")
|
||||
.replace("{tick}", tick)
|
||||
.replace("{subject}", subjectId.toString())
|
||||
).select(".mainContainer").first();
|
||||
|
||||
Element table = mainContainer.select("table:nth-of-type(2)").first();
|
||||
|
||||
Elements headerCells = table.select("thead th");
|
||||
List<Type> typeList = new ArrayList<>();
|
||||
|
||||
Elements typesRows = table.select("tbody tr");
|
||||
|
||||
// fill types with months
|
||||
for (Element row : typesRows) {
|
||||
Elements monthsCells = row.select("td");
|
||||
|
||||
List<Month> monthList = new ArrayList<>();
|
||||
|
||||
// iterate over month in type, first column is empty, last is `total`; (0, n-1)
|
||||
for (int i = 1; i < monthsCells.size() - 1; i++) {
|
||||
monthList.add(new Month()
|
||||
.setValue(NumberUtils.toInt(monthsCells.get(i).text(), 0))
|
||||
.setName(headerCells.get(i).text()));
|
||||
}
|
||||
|
||||
typeList.add(new Type()
|
||||
.setTotal(NumberUtils.toInt(monthsCells.last().text(), 0))
|
||||
.setName(monthsCells.get(0).text())
|
||||
.setMonthList(monthList));
|
||||
}
|
||||
|
||||
String total = mainContainer.select("h2").text().split(": ")[1];
|
||||
|
||||
return new Types()
|
||||
.setTotal(NumberUtils.toDouble(total.replace("%", "").replace(",", ".")))
|
||||
.setTypeList(typeList);
|
||||
}
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
import io.github.wulkanowy.api.generic.Day;
|
||||
import io.github.wulkanowy.api.generic.Lesson;
|
||||
import io.github.wulkanowy.api.generic.Week;
|
||||
|
||||
public class AttendanceTable {
|
||||
|
||||
private final static String ATTENDANCE_PAGE_URL = "Frekwencja.mvc?data=";
|
||||
|
||||
private SnP snp;
|
||||
|
||||
public AttendanceTable(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public Week<Day> getWeekTable() throws IOException, ParseException, VulcanException {
|
||||
return getWeekTable("");
|
||||
}
|
||||
|
||||
public Week<Day> getWeekTable(String tick) throws IOException, ParseException, VulcanException {
|
||||
Element table = snp.getSnPPageDocument(ATTENDANCE_PAGE_URL + tick)
|
||||
|
||||
.select(".mainContainer .presentData").first();
|
||||
|
||||
Elements headerCells = table.select("thead th");
|
||||
List<Day> days = new ArrayList<>();
|
||||
|
||||
for (int i = 1; i < headerCells.size(); i++) {
|
||||
String[] dayHeaderCell = headerCells.get(i).html().split("<br>");
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy", Locale.ROOT);
|
||||
Date d = sdf.parse(dayHeaderCell[1].trim());
|
||||
sdf.applyPattern("yyyy-MM-dd");
|
||||
|
||||
Day day = new Day();
|
||||
day.setDayName(dayHeaderCell[0]);
|
||||
day.setDate(sdf.format(d));
|
||||
days.add(day);
|
||||
}
|
||||
|
||||
Elements hoursInDays = table.select("tbody tr");
|
||||
|
||||
// fill days in week with lessons
|
||||
for (Element row : hoursInDays) {
|
||||
Elements hours = row.select("td");
|
||||
|
||||
// fill hours in day
|
||||
int size = hours.size();
|
||||
for (int i = 1; i < size; i++) {
|
||||
Lesson lesson = new Lesson();
|
||||
lesson.setDate(days.get(i - 1).getDate());
|
||||
lesson.setNumber(hours.get(0).text());
|
||||
|
||||
addLessonDetails(lesson, hours.get(i));
|
||||
|
||||
days.get(i - 1).setLesson(lesson);
|
||||
}
|
||||
}
|
||||
|
||||
return new Week<Day>()
|
||||
.setStartDayDate(days.get(0).getDate())
|
||||
.setDays(days);
|
||||
}
|
||||
|
||||
private void addLessonDetails(Lesson lesson, Element cell) {
|
||||
lesson.setSubject(cell.select("span").text());
|
||||
|
||||
if (LessonTypes.CLASS_NOT_EXIST.equals(cell.attr("class"))) {
|
||||
lesson.setNotExist(true);
|
||||
lesson.setEmpty(true);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
switch (cell.select("div").attr("class")) {
|
||||
case LessonTypes.CLASS_PRESENCE:
|
||||
lesson.setPresence(true);
|
||||
break;
|
||||
case LessonTypes.CLASS_ABSENCE_UNEXCUSED:
|
||||
lesson.setAbsenceUnexcused(true);
|
||||
break;
|
||||
case LessonTypes.CLASS_ABSENCE_EXCUSED:
|
||||
lesson.setAbsenceExcused(true);
|
||||
break;
|
||||
case LessonTypes.CLASS_ABSENCE_FOR_SCHOOL_REASONS:
|
||||
lesson.setAbsenceForSchoolReasons(true);
|
||||
break;
|
||||
case LessonTypes.CLASS_UNEXCUSED_LATENESS:
|
||||
lesson.setUnexcusedLateness(true);
|
||||
break;
|
||||
case LessonTypes.CLASS_EXCUSED_LATENESS:
|
||||
lesson.setExcusedLateness(true);
|
||||
break;
|
||||
case LessonTypes.CLASS_EXEMPTION:
|
||||
lesson.setExemption(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
lesson.setEmpty(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
class LessonTypes {
|
||||
|
||||
static final String CLASS_NOT_EXIST = "x-sp-nieobecny-w-oddziale";
|
||||
|
||||
static final String CLASS_PRESENCE = "x-obecnosc";
|
||||
|
||||
static final String CLASS_ABSENCE_UNEXCUSED = "x-nieobecnosc-nieuspr";
|
||||
|
||||
static final String CLASS_ABSENCE_EXCUSED = "x-nieobecnosc-uspr";
|
||||
|
||||
static final String CLASS_ABSENCE_FOR_SCHOOL_REASONS = "x-nieobecnosc-przycz-szkol";
|
||||
|
||||
static final String CLASS_UNEXCUSED_LATENESS = "x-sp-nieusprawiedliwione";
|
||||
|
||||
static final String CLASS_EXCUSED_LATENESS = "x-sp-spr";
|
||||
|
||||
static final String CLASS_EXEMPTION = "x-sp-zwolnienie";
|
||||
|
||||
private LessonTypes() {
|
||||
throw new IllegalStateException("Utility class");
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.generic.Month;
|
||||
|
||||
public class Type {
|
||||
|
||||
private String name = "";
|
||||
|
||||
private int total = 0;
|
||||
|
||||
private List<Month> monthList = new ArrayList<>();
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Type setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public Type setTotal(int total) {
|
||||
this.total = total;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<Month> getMonthList() {
|
||||
return monthList;
|
||||
}
|
||||
|
||||
public Type setMonthList(List<Month> monthList) {
|
||||
this.monthList = monthList;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Types {
|
||||
|
||||
private double total = 0;
|
||||
|
||||
private List<Type> typeList = new ArrayList<>();
|
||||
|
||||
public double getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public Types setTotal(double total) {
|
||||
this.total = total;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<Type> getTypeList() {
|
||||
return typeList;
|
||||
}
|
||||
|
||||
public Types setTypeList(List<Type> typeList) {
|
||||
this.typeList = typeList;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
package io.github.wulkanowy.api.exams;
|
||||
|
||||
public class Exam {
|
||||
|
||||
private String subjectAndGroup = "";
|
||||
|
||||
private String type = "";
|
||||
|
||||
private String description = "";
|
||||
|
||||
private String teacher = "";
|
||||
|
||||
private String entryDate = "";
|
||||
|
||||
public String getSubjectAndGroup() {
|
||||
return subjectAndGroup;
|
||||
}
|
||||
|
||||
public Exam setSubjectAndGroup(String subjectAndGroup) {
|
||||
this.subjectAndGroup = subjectAndGroup;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public Exam setType(String type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public Exam setDescription(String description) {
|
||||
this.description = description;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTeacher() {
|
||||
return teacher;
|
||||
}
|
||||
|
||||
public Exam setTeacher(String teacher) {
|
||||
this.teacher = teacher;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getEntryDate() {
|
||||
return entryDate;
|
||||
}
|
||||
|
||||
public Exam setEntryDate(String entryDate) {
|
||||
this.entryDate = entryDate;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package io.github.wulkanowy.api.exams;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.generic.Day;
|
||||
|
||||
public class ExamDay extends Day {
|
||||
|
||||
private List<Exam> examList = new ArrayList<>();
|
||||
|
||||
public List<Exam> getExamList() {
|
||||
return examList;
|
||||
}
|
||||
|
||||
public void addExam(Exam exam) {
|
||||
this.examList.add(exam);
|
||||
}
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
package io.github.wulkanowy.api.exams;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
import io.github.wulkanowy.api.generic.Week;
|
||||
|
||||
public class ExamsWeek {
|
||||
|
||||
private static final String EXAMS_PAGE_URL = "Sprawdziany.mvc/Terminarz?rodzajWidoku=2&data=";
|
||||
|
||||
private final SnP snp;
|
||||
|
||||
public ExamsWeek(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public Week<ExamDay> getCurrent() throws IOException, VulcanException {
|
||||
return getWeek("", true);
|
||||
}
|
||||
|
||||
public Week<ExamDay> getWeek(String tick, final boolean onlyNotEmpty) throws IOException, VulcanException {
|
||||
Document examsPage = snp.getSnPPageDocument(EXAMS_PAGE_URL + tick);
|
||||
Elements examsDays = examsPage.select(".mainContainer > div:not(.navigation)");
|
||||
|
||||
List<ExamDay> days = new ArrayList<>();
|
||||
|
||||
for (Element item : examsDays) {
|
||||
ExamDay day = new ExamDay();
|
||||
Element dayHeading = item.select("h2").first();
|
||||
|
||||
if (null == dayHeading && onlyNotEmpty) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (null != dayHeading) {
|
||||
day.setDate(dayHeading.text().split(", ")[1]);
|
||||
}
|
||||
|
||||
Elements exams = item.select("article");
|
||||
for (Element e : exams) {
|
||||
day.addExam(new Exam()
|
||||
.setSubjectAndGroup(snp.getRowDataChildValue(e, 1))
|
||||
.setType(snp.getRowDataChildValue(e, 2))
|
||||
.setDescription(snp.getRowDataChildValue(e, 3))
|
||||
.setTeacher(snp.getRowDataChildValue(e, 4).split(", ")[0])
|
||||
.setEntryDate(snp.getRowDataChildValue(e, 4).split(", ")[1])
|
||||
);
|
||||
}
|
||||
|
||||
days.add(day);
|
||||
}
|
||||
|
||||
return new Week<ExamDay>()
|
||||
.setStartDayDate(examsDays.select("h2").first().text().split(" ")[1])
|
||||
.setDays(days);
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
package io.github.wulkanowy.api.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Day {
|
||||
|
||||
private List<Lesson> lessons = new ArrayList<>();
|
||||
|
||||
protected String date = "";
|
||||
|
||||
private String dayName = "";
|
||||
|
||||
private boolean isFreeDay = false;
|
||||
|
||||
private String freeDayName = "";
|
||||
|
||||
public Lesson getLesson(int index) {
|
||||
return lessons.get(index);
|
||||
}
|
||||
|
||||
public List<Lesson> getLessons() {
|
||||
return lessons;
|
||||
}
|
||||
|
||||
public Day setLesson(Lesson lesson) {
|
||||
this.lessons.add(lesson);
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public Day setDate(String date) {
|
||||
this.date = date;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDayName() {
|
||||
return dayName;
|
||||
}
|
||||
|
||||
public void setDayName(String dayName) {
|
||||
this.dayName = dayName;
|
||||
}
|
||||
|
||||
public boolean isFreeDay() {
|
||||
return isFreeDay;
|
||||
}
|
||||
|
||||
public void setFreeDay(boolean freeDay) {
|
||||
isFreeDay = freeDay;
|
||||
}
|
||||
|
||||
public String getFreeDayName() {
|
||||
return freeDayName;
|
||||
}
|
||||
|
||||
public void setFreeDayName(String freeDayName) {
|
||||
this.freeDayName = freeDayName;
|
||||
}
|
||||
}
|
@ -1,240 +0,0 @@
|
||||
package io.github.wulkanowy.api.generic;
|
||||
|
||||
public class Lesson {
|
||||
|
||||
private String number = "";
|
||||
|
||||
private String subject = "";
|
||||
|
||||
private String teacher = "";
|
||||
|
||||
private String room = "";
|
||||
|
||||
private String description = "";
|
||||
|
||||
private String groupName = "";
|
||||
|
||||
private String startTime = "";
|
||||
|
||||
private String endTime = "";
|
||||
|
||||
private String date = "";
|
||||
|
||||
private boolean isEmpty = false;
|
||||
|
||||
private boolean isDivisionIntoGroups = false;
|
||||
|
||||
private boolean isPlanning = false;
|
||||
|
||||
private boolean isRealized = false;
|
||||
|
||||
private boolean isMovedOrCanceled = false;
|
||||
|
||||
private boolean isNewMovedInOrChanged = false;
|
||||
|
||||
private boolean isNotExist = false;
|
||||
|
||||
private boolean isPresence = false;
|
||||
|
||||
private boolean isAbsenceUnexcused = false;
|
||||
|
||||
private boolean isAbsenceExcused = false;
|
||||
|
||||
private boolean isUnexcusedLateness = false;
|
||||
|
||||
private boolean isAbsenceForSchoolReasons = false;
|
||||
|
||||
private boolean isExcusedLateness = false;
|
||||
|
||||
private boolean isExemption = false;
|
||||
|
||||
public String getNumber() {
|
||||
return number;
|
||||
}
|
||||
|
||||
public void setNumber(String number) {
|
||||
this.number = number;
|
||||
}
|
||||
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public Lesson setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTeacher() {
|
||||
return teacher;
|
||||
}
|
||||
|
||||
public Lesson setTeacher(String teacher) {
|
||||
this.teacher = teacher;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRoom() {
|
||||
return room;
|
||||
}
|
||||
|
||||
public Lesson setRoom(String room) {
|
||||
this.room = room;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public Lesson setDescription(String description) {
|
||||
this.description = description;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public String getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(String startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public String getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(String endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public Lesson setDate(String date) {
|
||||
this.date = date;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return isEmpty;
|
||||
}
|
||||
|
||||
public Lesson setEmpty(boolean empty) {
|
||||
isEmpty = empty;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isDivisionIntoGroups() {
|
||||
return isDivisionIntoGroups;
|
||||
}
|
||||
|
||||
public void setDivisionIntoGroups(boolean divisionIntoGroups) {
|
||||
isDivisionIntoGroups = divisionIntoGroups;
|
||||
}
|
||||
|
||||
public boolean isPlanning() {
|
||||
return isPlanning;
|
||||
}
|
||||
|
||||
public void setPlanning(boolean planning) {
|
||||
isPlanning = planning;
|
||||
}
|
||||
|
||||
public boolean isRealized() {
|
||||
return isRealized;
|
||||
}
|
||||
|
||||
public void setRealized(boolean realized) {
|
||||
isRealized = realized;
|
||||
}
|
||||
|
||||
public boolean isMovedOrCanceled() {
|
||||
return isMovedOrCanceled;
|
||||
}
|
||||
|
||||
public void setMovedOrCanceled(boolean movedOrCanceled) {
|
||||
isMovedOrCanceled = movedOrCanceled;
|
||||
}
|
||||
|
||||
public boolean isNewMovedInOrChanged() {
|
||||
return isNewMovedInOrChanged;
|
||||
}
|
||||
|
||||
public void setNewMovedInOrChanged(boolean newMovedInOrChanged) {
|
||||
isNewMovedInOrChanged = newMovedInOrChanged;
|
||||
}
|
||||
|
||||
public boolean isNotExist() {
|
||||
return isNotExist;
|
||||
}
|
||||
|
||||
public void setNotExist(boolean notExist) {
|
||||
isNotExist = notExist;
|
||||
}
|
||||
|
||||
public boolean isPresence() {
|
||||
return isPresence;
|
||||
}
|
||||
|
||||
public void setPresence(boolean presence) {
|
||||
isPresence = presence;
|
||||
}
|
||||
|
||||
public boolean isAbsenceUnexcused() {
|
||||
return isAbsenceUnexcused;
|
||||
}
|
||||
|
||||
public void setAbsenceUnexcused(boolean absenceUnexcused) {
|
||||
isAbsenceUnexcused = absenceUnexcused;
|
||||
}
|
||||
|
||||
public boolean isAbsenceExcused() {
|
||||
return isAbsenceExcused;
|
||||
}
|
||||
|
||||
public void setAbsenceExcused(boolean absenceExcused) {
|
||||
isAbsenceExcused = absenceExcused;
|
||||
}
|
||||
|
||||
public boolean isUnexcusedLateness() {
|
||||
return isUnexcusedLateness;
|
||||
}
|
||||
|
||||
public void setUnexcusedLateness(boolean unexcusedLateness) {
|
||||
isUnexcusedLateness = unexcusedLateness;
|
||||
}
|
||||
|
||||
public boolean isAbsenceForSchoolReasons() {
|
||||
return isAbsenceForSchoolReasons;
|
||||
}
|
||||
|
||||
public void setAbsenceForSchoolReasons(boolean absenceForSchoolReasons) {
|
||||
isAbsenceForSchoolReasons = absenceForSchoolReasons;
|
||||
}
|
||||
|
||||
public boolean isExcusedLateness() {
|
||||
return isExcusedLateness;
|
||||
}
|
||||
|
||||
public void setExcusedLateness(boolean excusedLateness) {
|
||||
isExcusedLateness = excusedLateness;
|
||||
}
|
||||
|
||||
public boolean isExemption() {
|
||||
return isExemption;
|
||||
}
|
||||
|
||||
public void setExemption(boolean exemption) {
|
||||
isExemption = exemption;
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package io.github.wulkanowy.api.generic;
|
||||
|
||||
public class Month {
|
||||
|
||||
private String name = "";
|
||||
|
||||
private int value = 0;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Month setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public Month setValue(int value) {
|
||||
this.value = value;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package io.github.wulkanowy.api.generic;
|
||||
|
||||
public class Subject {
|
||||
|
||||
private int id = -1;
|
||||
|
||||
private String name = "";
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public Subject setId(int id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Subject setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
package io.github.wulkanowy.api.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Week<T> {
|
||||
|
||||
private List<T> days = new ArrayList<>();
|
||||
|
||||
private String startDayDate = "";
|
||||
|
||||
public T getDay(int index) {
|
||||
return days.get(index);
|
||||
}
|
||||
|
||||
public List<T> getDays() {
|
||||
return days;
|
||||
}
|
||||
|
||||
public Week<T> setDays(List<T> days) {
|
||||
this.days = days;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getStartDayDate() {
|
||||
return startDayDate;
|
||||
}
|
||||
|
||||
public Week<T> setStartDayDate(String startDayDate) {
|
||||
this.startDayDate = startDayDate;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
package io.github.wulkanowy.api.grades;
|
||||
|
||||
public class Grade {
|
||||
|
||||
protected String value = "";
|
||||
|
||||
private String subject = "";
|
||||
|
||||
private String color = "";
|
||||
|
||||
private String symbol = "";
|
||||
|
||||
private String description = "";
|
||||
|
||||
private String weight = "";
|
||||
|
||||
private String date = "";
|
||||
|
||||
private String teacher = "";
|
||||
|
||||
private String semester = "";
|
||||
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public Grade setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public Grade setValue(String value) {
|
||||
this.value = value;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getColor() {
|
||||
return color;
|
||||
}
|
||||
|
||||
public Grade setColor(String color) {
|
||||
this.color = color;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSymbol() {
|
||||
return symbol;
|
||||
}
|
||||
|
||||
public Grade setSymbol(String symbol) {
|
||||
this.symbol = symbol;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public Grade setDescription(String description) {
|
||||
this.description = description;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getWeight() {
|
||||
return weight;
|
||||
}
|
||||
|
||||
public Grade setWeight(String weight) {
|
||||
this.weight = weight;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public Grade setDate(String date) {
|
||||
this.date = date;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTeacher() {
|
||||
return teacher;
|
||||
}
|
||||
|
||||
public Grade setTeacher(String teacher) {
|
||||
this.teacher = teacher;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSemester() {
|
||||
return semester;
|
||||
}
|
||||
|
||||
public Grade setSemester(String semester) {
|
||||
this.semester = semester;
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,101 +0,0 @@
|
||||
package io.github.wulkanowy.api.grades;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import io.github.wulkanowy.api.Semester;
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class GradesList {
|
||||
|
||||
private static final String GRADES_PAGE_URL = "Oceny/Wszystkie?details=2&okres=";
|
||||
|
||||
private SnP snp;
|
||||
|
||||
private List<Grade> grades = new ArrayList<>();
|
||||
|
||||
public GradesList(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
private String getGradesPageUrl() {
|
||||
return GRADES_PAGE_URL;
|
||||
}
|
||||
|
||||
public List<Grade> getAll() throws IOException, ParseException, VulcanException {
|
||||
return getAll("");
|
||||
}
|
||||
|
||||
public List<Grade> getAll(String semester) throws IOException, ParseException, VulcanException {
|
||||
Document gradesPage = snp.getSnPPageDocument(getGradesPageUrl() + semester);
|
||||
Elements gradesRows = gradesPage.select(".ocenySzczegoly-table > tbody > tr");
|
||||
|
||||
if ("".equals(semester)) {
|
||||
List<Semester> semesterList = snp.getSemesters(gradesPage);
|
||||
Semester currentSemester = snp.getCurrent(semesterList);
|
||||
semester = currentSemester.getName();
|
||||
}
|
||||
|
||||
for (Element row : gradesRows) {
|
||||
if ("Brak ocen".equals(row.select("td:nth-child(2)").text())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
grades.add(getGrade(row, semester));
|
||||
}
|
||||
|
||||
return grades;
|
||||
}
|
||||
|
||||
private Grade getGrade(Element row, String semester) throws ParseException {
|
||||
String descriptions = row.select("td:nth-child(3)").text();
|
||||
|
||||
String symbol = descriptions.split(", ")[0];
|
||||
String description = descriptions.replaceFirst(symbol, "").replaceFirst(", ", "");
|
||||
String color = getColor(row.select("td:nth-child(2) span.ocenaCzastkowa").attr("style"));
|
||||
String date = formatDate(row.select("td:nth-child(5)").text());
|
||||
|
||||
return new Grade()
|
||||
.setSubject(row.select("td:nth-child(1)").text())
|
||||
.setValue(row.select("td:nth-child(2)").text())
|
||||
.setColor(color)
|
||||
.setSymbol(symbol)
|
||||
.setDescription(description)
|
||||
.setWeight(row.select("td:nth-child(4)").text())
|
||||
.setDate(date)
|
||||
.setTeacher(row.select("td:nth-child(6)").text())
|
||||
.setSemester(semester);
|
||||
}
|
||||
|
||||
private String getColor(String styleAttr) {
|
||||
Pattern pattern = Pattern.compile("#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})");
|
||||
Matcher matcher = pattern.matcher(styleAttr);
|
||||
|
||||
String color = "";
|
||||
while (matcher.find()) {
|
||||
color = matcher.group(1);
|
||||
}
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
private String formatDate(String date) throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy", Locale.ROOT);
|
||||
Date d = sdf.parse(date);
|
||||
sdf.applyPattern("yyyy-MM-dd");
|
||||
|
||||
return sdf.format(d);
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package io.github.wulkanowy.api.grades;
|
||||
|
||||
public class Subject {
|
||||
|
||||
private String name;
|
||||
|
||||
private String predictedRating;
|
||||
|
||||
private String finalRating;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Subject setName(String name) {
|
||||
this.name = name;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPredictedRating() {
|
||||
return predictedRating;
|
||||
}
|
||||
|
||||
public Subject setPredictedRating(String predictedRating) {
|
||||
this.predictedRating = predictedRating;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFinalRating() {
|
||||
return finalRating;
|
||||
}
|
||||
|
||||
public Subject setFinalRating(String finalRating) {
|
||||
this.finalRating = finalRating;
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
package io.github.wulkanowy.api.grades;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class SubjectsList {
|
||||
|
||||
private static final String SUBJECTS_PAGE_URL = "Oceny/Wszystkie?details=1";
|
||||
|
||||
private SnP snp = null;
|
||||
|
||||
public SubjectsList(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public List<Subject> getAll() throws IOException, VulcanException {
|
||||
Document subjectPage = snp.getSnPPageDocument(SUBJECTS_PAGE_URL);
|
||||
|
||||
Elements rows = subjectPage.select(".ocenyZwykle-table > tbody > tr");
|
||||
|
||||
List<Subject> subjects = new ArrayList<>();
|
||||
|
||||
for (Element subjectRow : rows) {
|
||||
subjects.add(new Subject()
|
||||
.setName(subjectRow.select("td:nth-child(1)").text())
|
||||
.setPredictedRating(subjectRow.select("td:nth-last-child(2)").text())
|
||||
.setFinalRating(subjectRow.select("td:nth-last-child(1)").text())
|
||||
);
|
||||
}
|
||||
|
||||
return subjects;
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package io.github.wulkanowy.api.login;
|
||||
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class AccountPermissionException extends VulcanException {
|
||||
|
||||
AccountPermissionException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package io.github.wulkanowy.api.login;
|
||||
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class BadCredentialsException extends VulcanException {
|
||||
|
||||
BadCredentialsException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
package io.github.wulkanowy.api.login;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.parser.Parser;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import io.github.wulkanowy.api.Client;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class Login {
|
||||
|
||||
private static final String LOGIN_PAGE_URL = "{schema}://cufs.{host}/{symbol}/Account/LogOn" +
|
||||
"?ReturnUrl=%2F{symbol}%2FFS%2FLS%3Fwa%3Dwsignin1.0%26wtrealm%3D" +
|
||||
"{schema}%253a%252f%252fuonetplus.{host}%252f{symbol}%252fLoginEndpoint.aspx%26wctx%3D" +
|
||||
"{schema}%253a%252f%252fuonetplus.{host}%252f{symbol}%252fLoginEndpoint.aspx";
|
||||
|
||||
private Client client;
|
||||
|
||||
public Login(Client client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public String login(String email, String password, String symbol) throws VulcanException, IOException {
|
||||
Document certDoc = sendCredentials(email, password);
|
||||
|
||||
return sendCertificate(certDoc, symbol);
|
||||
}
|
||||
|
||||
Document sendCredentials(String email, String password) throws IOException, VulcanException {
|
||||
Document html = client.postPageByUrl(LOGIN_PAGE_URL, new String[][]{
|
||||
{"LoginName", email},
|
||||
{"Password", password}
|
||||
});
|
||||
|
||||
Element errorMessage = html.select(".ErrorMessage").first();
|
||||
if (null != errorMessage) {
|
||||
throw new BadCredentialsException(errorMessage.text());
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
String sendCertificate(Document doc, String defaultSymbol) throws IOException, VulcanException {
|
||||
String certificate = doc.select("input[name=wresult]").val();
|
||||
|
||||
String symbol = findSymbol(defaultSymbol, certificate);
|
||||
client.setSymbol(symbol);
|
||||
|
||||
Document targetDoc = sendCertData(doc);
|
||||
String title = targetDoc.select("title").text();
|
||||
|
||||
if ("Logowanie".equals(title)) {
|
||||
throw new AccountPermissionException("No account access. Try another symbol");
|
||||
}
|
||||
|
||||
if (!"Uonet+".equals(title)) {
|
||||
throw new LoginErrorException("Expected page title `UONET+`, got " + title);
|
||||
}
|
||||
|
||||
return symbol;
|
||||
}
|
||||
|
||||
private Document sendCertData(Document doc) throws IOException, VulcanException {
|
||||
String url = doc.select("form[name=hiddenform]").attr("action");
|
||||
|
||||
return client.postPageByUrl(url.replaceFirst("Default", "{symbol}"), new String[][]{
|
||||
{"wa", "wsignin1.0"},
|
||||
{"wresult", doc.select("input[name=wresult]").val()},
|
||||
{"wctx", doc.select("input[name=wctx]").val()}
|
||||
});
|
||||
}
|
||||
|
||||
private String findSymbol(String symbol, String certificate) {
|
||||
if ("Default".equals(symbol)) {
|
||||
return findSymbolInCertificate(certificate);
|
||||
}
|
||||
|
||||
return symbol;
|
||||
}
|
||||
|
||||
String findSymbolInCertificate(String certificate) {
|
||||
Elements instances = Jsoup
|
||||
.parse(certificate.replaceAll(":", ""), "", Parser.xmlParser())
|
||||
.select("[AttributeName=\"UserInstance\"] samlAttributeValue");
|
||||
|
||||
if (instances.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return instances.get(1).text();
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package io.github.wulkanowy.api.login;
|
||||
|
||||
import io.github.wulkanowy.api.NotLoggedInErrorException;
|
||||
|
||||
class LoginErrorException extends NotLoggedInErrorException {
|
||||
|
||||
LoginErrorException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package io.github.wulkanowy.api.messages;
|
||||
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
class BadRequestException extends VulcanException {
|
||||
|
||||
BadRequestException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
package io.github.wulkanowy.api.messages;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class Message {
|
||||
|
||||
@SerializedName("Nieprzeczytana")
|
||||
public boolean unread;
|
||||
|
||||
@SerializedName("Data")
|
||||
public String date;
|
||||
|
||||
@SerializedName("Tresc")
|
||||
public String content;
|
||||
|
||||
@SerializedName("Temat")
|
||||
public String subject;
|
||||
|
||||
@SerializedName("NadawcaNazwa")
|
||||
public String sender;
|
||||
|
||||
@SerializedName("IdWiadomosci")
|
||||
public int messageID;
|
||||
|
||||
@SerializedName("IdNadawca")
|
||||
public int senderID;
|
||||
|
||||
@SerializedName("Id")
|
||||
public int id;
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
package io.github.wulkanowy.api.messages;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonParseException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.Client;
|
||||
import io.github.wulkanowy.api.NotLoggedInErrorException;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class Messages {
|
||||
|
||||
private static final String BASE_URL = "{schema}://uonetplus-uzytkownik.{host}/{symbol}/";
|
||||
|
||||
private static final String LIST_BASE_URL = BASE_URL + "Wiadomosc.mvc/";
|
||||
|
||||
private static final String RECEIVED_URL = LIST_BASE_URL + "GetWiadomosciOdebrane";
|
||||
|
||||
private static final String SENT_URL = LIST_BASE_URL + "GetWiadomosciWyslane";
|
||||
|
||||
private static final String DELETED_URL = LIST_BASE_URL + "GetWiadomosciUsuniete";
|
||||
|
||||
private static final String MESSAGE_URL = LIST_BASE_URL + "GetTrescWiadomosci";
|
||||
|
||||
public static final int RECEIVED_FOLDER = 1;
|
||||
|
||||
public static final int SENT_FOLDER = 2;
|
||||
|
||||
public static final int DELETED_FOLDER = 3;
|
||||
|
||||
private static final String ERROR_TITLE = "Błąd strony";
|
||||
|
||||
private Client client;
|
||||
|
||||
public Messages(Client client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public List<Message> getReceived() throws IOException, VulcanException {
|
||||
return getMessages(RECEIVED_URL);
|
||||
}
|
||||
|
||||
public List<Message> getSent() throws IOException, VulcanException {
|
||||
return getMessages(SENT_URL);
|
||||
}
|
||||
|
||||
public List<Message> getDeleted() throws IOException, VulcanException {
|
||||
return getMessages(DELETED_URL);
|
||||
}
|
||||
|
||||
private List<Message> getMessages(String url) throws IOException, VulcanException {
|
||||
String res = client.getJsonStringByUrl(url);
|
||||
|
||||
List<Message> messages;
|
||||
|
||||
try {
|
||||
messages = new Gson().fromJson(res, MessagesContainer.class).data;
|
||||
} catch (JsonParseException e) {
|
||||
if (res.contains(ERROR_TITLE)) {
|
||||
throw new BadRequestException(ERROR_TITLE);
|
||||
}
|
||||
|
||||
throw new NotLoggedInErrorException("You are probably not logged in");
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
public Message getMessage(int id, int folder) throws IOException, VulcanException {
|
||||
String res = client.postJsonStringByUrl(MESSAGE_URL, new String[][]{
|
||||
{"idWiadomosc", String.valueOf(id)},
|
||||
{"Folder", String.valueOf(folder)}
|
||||
});
|
||||
|
||||
Message message;
|
||||
|
||||
try {
|
||||
message = new Gson().fromJson(res, MessageContainer.class).data;
|
||||
} catch (JsonParseException e) {
|
||||
if (res.contains(ERROR_TITLE)) {
|
||||
throw new BadRequestException(ERROR_TITLE);
|
||||
}
|
||||
|
||||
throw new NotLoggedInErrorException("You are probably not logged in. Force login");
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
private static class MessagesContainer {
|
||||
private List<Message> data;
|
||||
}
|
||||
|
||||
private static class MessageContainer {
|
||||
private Message data;
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
package io.github.wulkanowy.api.notes;
|
||||
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class AchievementsList {
|
||||
|
||||
private static final String NOTES_PAGE_URL = "UwagiOsiagniecia.mvc/Wszystkie";
|
||||
|
||||
private SnP snp = null;
|
||||
|
||||
private List<String> achievements = new ArrayList<>();
|
||||
|
||||
public AchievementsList(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public List<String> getAllAchievements() throws IOException, VulcanException {
|
||||
Element pageFragment = snp.getSnPPageDocument(NOTES_PAGE_URL)
|
||||
.select(".mainContainer > div").get(1);
|
||||
Elements items = pageFragment.select("article");
|
||||
|
||||
for (Element item : items) {
|
||||
achievements.add(item.text());
|
||||
}
|
||||
|
||||
return achievements;
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
package io.github.wulkanowy.api.notes;
|
||||
|
||||
public class Note {
|
||||
|
||||
private String date;
|
||||
|
||||
private String teacher;
|
||||
|
||||
private String category;
|
||||
|
||||
private String content;
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public Note setDate(String date) {
|
||||
this.date = date;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTeacher() {
|
||||
return teacher;
|
||||
}
|
||||
|
||||
public Note setTeacher(String teacher) {
|
||||
this.teacher = teacher;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
public Note setCategory(String category) {
|
||||
this.category = category;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public Note setContent(String content) {
|
||||
this.content = content;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
package io.github.wulkanowy.api.notes;
|
||||
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class NotesList {
|
||||
|
||||
private static final String NOTES_PAGE_URL = "UwagiOsiagniecia.mvc/Wszystkie";
|
||||
|
||||
private SnP snp = null;
|
||||
|
||||
private List<Note> notes = new ArrayList<>();
|
||||
|
||||
public NotesList(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public List<Note> getAllNotes() throws IOException, VulcanException {
|
||||
Element pageFragment = snp.getSnPPageDocument(NOTES_PAGE_URL)
|
||||
.select(".mainContainer > div").get(0);
|
||||
Elements items = pageFragment.select("article");
|
||||
Elements dates = pageFragment.select("h2");
|
||||
|
||||
int index = 0;
|
||||
for (Element item : items) {
|
||||
notes.add(new Note()
|
||||
.setDate(dates.get(index++).text())
|
||||
.setTeacher(snp.getRowDataChildValue(item, 1))
|
||||
.setCategory(snp.getRowDataChildValue(item, 2))
|
||||
.setContent(snp.getRowDataChildValue(item, 3))
|
||||
);
|
||||
}
|
||||
|
||||
return notes;
|
||||
}
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
public class SchoolData {
|
||||
|
||||
private String name = "";
|
||||
|
||||
private String address = "";
|
||||
|
||||
private String phoneNumber = "";
|
||||
|
||||
private String headmaster = "";
|
||||
|
||||
private String[] pedagogue;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public SchoolData setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public SchoolData setAddress(String address) {
|
||||
this.address = address;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPhoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public SchoolData setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getHeadmaster() {
|
||||
return headmaster;
|
||||
}
|
||||
|
||||
public SchoolData setHeadmaster(String headmaster) {
|
||||
this.headmaster = headmaster;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String[] getPedagogues() {
|
||||
return pedagogue;
|
||||
}
|
||||
|
||||
public SchoolData setPedagogue(String[] pedagogue) {
|
||||
this.pedagogue = pedagogue;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
import org.jsoup.nodes.Element;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class SchoolInfo {
|
||||
|
||||
private static final String SCHOOL_PAGE_URL = "Szkola.mvc/Nauczyciele";
|
||||
|
||||
private SnP snp = null;
|
||||
|
||||
public SchoolInfo(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public SchoolData getSchoolData() throws IOException, VulcanException {
|
||||
Element e = snp.getSnPPageDocument(SCHOOL_PAGE_URL)
|
||||
.select(".mainContainer > article").get(0);
|
||||
|
||||
return new SchoolData()
|
||||
.setName(snp.getRowDataChildValue(e, 1))
|
||||
.setAddress(snp.getRowDataChildValue(e, 2))
|
||||
.setPhoneNumber(snp.getRowDataChildValue(e, 3))
|
||||
.setHeadmaster(snp.getRowDataChildValue(e, 4))
|
||||
.setPedagogue(snp.getRowDataChildValue(e, 5).split(", "));
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
public class Subject {
|
||||
|
||||
private String name = "";
|
||||
|
||||
private String[] teachers;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Subject setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String[] getTeachers() {
|
||||
return teachers;
|
||||
}
|
||||
|
||||
public Subject setTeachers(String[] teachers) {
|
||||
this.teachers = teachers;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TeachersData {
|
||||
|
||||
private String className = "";
|
||||
|
||||
private String[] classTeacher;
|
||||
|
||||
private List<Subject> subjects;
|
||||
|
||||
public String getClassName() {
|
||||
return className;
|
||||
}
|
||||
|
||||
public TeachersData setClassName(String className) {
|
||||
this.className = className;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String[] getClassTeacher() {
|
||||
return classTeacher;
|
||||
}
|
||||
|
||||
public TeachersData setClassTeacher(String[] classTeacher) {
|
||||
this.classTeacher = classTeacher;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<Subject> getSubjects() {
|
||||
return subjects;
|
||||
}
|
||||
|
||||
public TeachersData setSubjects(List<Subject> subjects) {
|
||||
this.subjects = subjects;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class TeachersInfo {
|
||||
|
||||
private static final String SCHOOL_PAGE_URL = "Szkola.mvc/Nauczyciele";
|
||||
|
||||
private SnP snp = null;
|
||||
|
||||
public TeachersInfo(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public TeachersData getTeachersData() throws IOException, VulcanException {
|
||||
Document doc = snp.getSnPPageDocument(SCHOOL_PAGE_URL);
|
||||
Elements rows = doc.select(".mainContainer > table tbody tr");
|
||||
String description = doc.select(".mainContainer > p").first().text();
|
||||
|
||||
List<Subject> subjects = new ArrayList<>();
|
||||
|
||||
for (Element subject : rows) {
|
||||
subjects.add(new Subject()
|
||||
.setName(subject.select("td").get(1).text())
|
||||
.setTeachers(subject.select("td").get(2).text().split(", "))
|
||||
);
|
||||
}
|
||||
|
||||
return new TeachersData()
|
||||
.setClassName(description.split(", ")[0].split(": ")[1].trim())
|
||||
.setClassTeacher(description.split("Wychowawcy:")[1].trim().split(", "))
|
||||
.setSubjects(subjects);
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package io.github.wulkanowy.api.timetable;
|
||||
|
||||
class LessonTypes {
|
||||
|
||||
static final String CLASS_PLANNING = "x-treelabel-ppl";
|
||||
|
||||
static final String CLASS_REALIZED = "x-treelabel-rlz";
|
||||
|
||||
static final String CLASS_MOVED_OR_CANCELED = "x-treelabel-inv";
|
||||
|
||||
static final String CLASS_NEW_MOVED_IN_OR_CHANGED = "x-treelabel-zas";
|
||||
|
||||
private LessonTypes() {
|
||||
throw new IllegalStateException("Utility class");
|
||||
}
|
||||
}
|
@ -1,216 +0,0 @@
|
||||
package io.github.wulkanowy.api.timetable;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
import io.github.wulkanowy.api.generic.Day;
|
||||
import io.github.wulkanowy.api.generic.Lesson;
|
||||
import io.github.wulkanowy.api.generic.Week;
|
||||
|
||||
public class Timetable {
|
||||
|
||||
private static final String TIMETABLE_PAGE_URL = "Lekcja.mvc/PlanLekcji?data=";
|
||||
|
||||
private SnP snp;
|
||||
|
||||
public Timetable(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public Week<Day> getWeekTable() throws IOException, ParseException, VulcanException {
|
||||
return getWeekTable("");
|
||||
}
|
||||
|
||||
public Week<Day> getWeekTable(final String tick) throws IOException, ParseException, VulcanException {
|
||||
Element table = snp.getSnPPageDocument(TIMETABLE_PAGE_URL + tick)
|
||||
.select(".mainContainer .presentData").first();
|
||||
|
||||
List<Day> days = getDays(table.select("thead th"));
|
||||
|
||||
setLessonToDays(table, days);
|
||||
|
||||
return new Week<Day>()
|
||||
.setStartDayDate(days.get(0).getDate())
|
||||
.setDays(days);
|
||||
}
|
||||
|
||||
private List<Day> getDays(Elements tableHeaderCells) throws ParseException {
|
||||
List<Day> days = new ArrayList<>();
|
||||
|
||||
for (int i = 2; i < 7; i++) {
|
||||
String[] dayHeaderCell = tableHeaderCells.get(i).html().split("<br>");
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy", Locale.ROOT);
|
||||
Date d = sdf.parse(dayHeaderCell[1].trim());
|
||||
sdf.applyPattern("yyyy-MM-dd");
|
||||
|
||||
Day day = new Day();
|
||||
day.setDayName(dayHeaderCell[0]);
|
||||
day.setDate(sdf.format(d));
|
||||
|
||||
if (tableHeaderCells.get(i).hasClass("free-day")) {
|
||||
day.setFreeDay(true);
|
||||
day.setFreeDayName(dayHeaderCell[2]);
|
||||
}
|
||||
|
||||
days.add(day);
|
||||
}
|
||||
|
||||
return days;
|
||||
}
|
||||
|
||||
private void setLessonToDays(Element table, List<Day> days) {
|
||||
for (Element row : table.select("tbody tr")) {
|
||||
Elements hours = row.select("td");
|
||||
|
||||
// fill hours in day
|
||||
for (int i = 2; i < hours.size(); i++) {
|
||||
Lesson lesson = new Lesson();
|
||||
|
||||
String[] startEndEnd = hours.get(1).text().split(" ");
|
||||
lesson.setStartTime(startEndEnd[0]);
|
||||
lesson.setEndTime(startEndEnd[1]);
|
||||
lesson.setDate(days.get(i - 2).getDate());
|
||||
lesson.setNumber(hours.get(0).text());
|
||||
|
||||
addLessonDetails(lesson, hours.get(i).select("div"));
|
||||
|
||||
days.get(i - 2).setLesson(lesson);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addLessonDetails(Lesson lesson, Elements e) {
|
||||
moveWarningToLessonNode(e);
|
||||
|
||||
switch (e.size()) {
|
||||
case 1:
|
||||
addLessonInfoFromElement(lesson, e.first());
|
||||
break;
|
||||
case 2:
|
||||
addLessonInfoFromElement(lesson, e.last());
|
||||
break;
|
||||
case 3:
|
||||
addLessonInfoFromElement(lesson, e.get(1));
|
||||
break;
|
||||
default:
|
||||
lesson.setEmpty(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void moveWarningToLessonNode(Elements e) {
|
||||
Elements warn = e.select(".uwaga-panel");
|
||||
|
||||
if (!warn.isEmpty()) {
|
||||
e.select(".x-treelabel-rlz").last().text("(" + warn.text() + ")");
|
||||
e.remove(1);
|
||||
}
|
||||
}
|
||||
|
||||
private void addLessonInfoFromElement(Lesson lesson, Element e) {
|
||||
Elements spans = e.select("span");
|
||||
|
||||
addTypeInfo(lesson, spans);
|
||||
addNormalLessonInfo(lesson, spans);
|
||||
addChangesInfo(lesson, spans);
|
||||
addGroupLessonInfo(lesson, spans);
|
||||
}
|
||||
|
||||
private void addTypeInfo(Lesson lesson, Elements spans) {
|
||||
if (spans.first().hasClass(LessonTypes.CLASS_PLANNING)) {
|
||||
lesson.setPlanning(true);
|
||||
}
|
||||
|
||||
if (spans.first().hasClass(LessonTypes.CLASS_MOVED_OR_CANCELED)) {
|
||||
lesson.setMovedOrCanceled(true);
|
||||
}
|
||||
|
||||
if (spans.first().hasClass(LessonTypes.CLASS_NEW_MOVED_IN_OR_CHANGED)) {
|
||||
lesson.setNewMovedInOrChanged(true);
|
||||
}
|
||||
|
||||
if (spans.last().hasClass(LessonTypes.CLASS_REALIZED) || "".equals(spans.first().attr("class"))) {
|
||||
lesson.setRealized(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void addNormalLessonInfo(Lesson lesson, Elements spans) {
|
||||
if (3 == spans.size()) {
|
||||
lesson.setSubject(spans.get(0).text());
|
||||
lesson.setTeacher(spans.get(1).text());
|
||||
lesson.setRoom(spans.get(2).text());
|
||||
}
|
||||
}
|
||||
|
||||
private void addChangesInfo(Lesson lesson, Elements spans) {
|
||||
if (!spans.last().hasClass(LessonTypes.CLASS_REALIZED)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (7 == spans.size()) {
|
||||
lesson.setSubject(spans.get(3).text());
|
||||
lesson.setTeacher(spans.get(4).text());
|
||||
lesson.setRoom(spans.get(5).text());
|
||||
lesson.setMovedOrCanceled(false);
|
||||
lesson.setNewMovedInOrChanged(true);
|
||||
lesson.setDescription(StringUtils.substringBetween(spans.last().text(), "(", ")")
|
||||
+ " (poprzednio: " + spans.get(0).text() + ")");
|
||||
} else if (9 == spans.size()) {
|
||||
String[] subjectAndGroupInfo = getLessonAndGroupInfoFromSpan(spans.get(4));
|
||||
lesson.setSubject(subjectAndGroupInfo[0]);
|
||||
lesson.setGroupName(subjectAndGroupInfo[1]);
|
||||
lesson.setTeacher(spans.get(6).text());
|
||||
lesson.setRoom(spans.get(7).text());
|
||||
lesson.setMovedOrCanceled(false);
|
||||
lesson.setNewMovedInOrChanged(true);
|
||||
lesson.setDivisionIntoGroups(true);
|
||||
lesson.setDescription(StringUtils.substringBetween(spans.last().text(), "(", ")")
|
||||
+ " (poprzednio: " + getLessonAndGroupInfoFromSpan(spans.get(0))[0] + ")");
|
||||
} else if (4 <= spans.size()) {
|
||||
lesson.setSubject(spans.get(0).text());
|
||||
lesson.setTeacher(spans.get(1).text());
|
||||
lesson.setRoom(spans.get(2).text());
|
||||
lesson.setDescription(StringUtils.substringBetween(spans.last().text(), "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
private void addGroupLessonInfo(Lesson lesson, Elements spans) {
|
||||
if (4 == spans.size() && !spans.last().hasClass(LessonTypes.CLASS_REALIZED)) {
|
||||
lesson.setRoom(spans.last().text());
|
||||
}
|
||||
|
||||
if ((4 == spans.size() && !spans.last().hasClass(LessonTypes.CLASS_REALIZED) || 5 == spans.size())) {
|
||||
String[] subjectAndGroupInfo = getLessonAndGroupInfoFromSpan(spans.get(0));
|
||||
lesson.setSubject(subjectAndGroupInfo[0]);
|
||||
lesson.setGroupName(subjectAndGroupInfo[1]);
|
||||
lesson.setTeacher(spans.get(2).text());
|
||||
lesson.setDivisionIntoGroups(true);
|
||||
}
|
||||
|
||||
if (5 == spans.size()) {
|
||||
lesson.setRoom(spans.get(3).text());
|
||||
}
|
||||
}
|
||||
|
||||
private String[] getLessonAndGroupInfoFromSpan(Element span) {
|
||||
String[] subjectNameArray = span.text().split(" ");
|
||||
String groupName = subjectNameArray[subjectNameArray.length - 1];
|
||||
|
||||
return new String[]{
|
||||
span.text().replace(" " + groupName, ""),
|
||||
StringUtils.substringBetween(groupName, "[", "]")
|
||||
};
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
public class AddressData {
|
||||
|
||||
private String address = "";
|
||||
|
||||
private String registeredAddress = "";
|
||||
|
||||
private String correspondenceAddress = "";
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public AddressData setAddress(String address) {
|
||||
this.address = address;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRegisteredAddress() {
|
||||
return registeredAddress;
|
||||
}
|
||||
|
||||
public AddressData setRegisteredAddress(String registeredAddress) {
|
||||
this.registeredAddress = registeredAddress;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCorrespondenceAddress() {
|
||||
return correspondenceAddress;
|
||||
}
|
||||
|
||||
public AddressData setCorrespondenceAddress(String correspondenceAddress) {
|
||||
this.correspondenceAddress = correspondenceAddress;
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class BasicInformation {
|
||||
|
||||
private static final String STUDENT_DATA_PAGE_URL = "Uczen.mvc/DanePodstawowe";
|
||||
|
||||
private static final String CONTENT_QUERY = ".mainContainer > article";
|
||||
|
||||
private Document studentDataPageDocument;
|
||||
|
||||
private SnP snp;
|
||||
|
||||
public BasicInformation(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public Document getStudentDataPageDocument() throws IOException, VulcanException {
|
||||
if (null == studentDataPageDocument) {
|
||||
studentDataPageDocument = snp.getSnPPageDocument(STUDENT_DATA_PAGE_URL);
|
||||
}
|
||||
|
||||
return studentDataPageDocument;
|
||||
}
|
||||
|
||||
public PersonalData getPersonalData() throws IOException, VulcanException {
|
||||
Element e = getStudentDataPageDocument().select(CONTENT_QUERY).get(0);
|
||||
|
||||
String name = snp.getRowDataChildValue(e, 1);
|
||||
String[] names = name.split(" ");
|
||||
|
||||
return new PersonalData()
|
||||
.setName(name)
|
||||
.setFirstName(names[0])
|
||||
.setSurname(names[names.length - 1])
|
||||
.setFirstAndLastName(names[0] + " " + names[names.length - 1])
|
||||
.setDateAndBirthPlace(snp.getRowDataChildValue(e, 2))
|
||||
.setPesel(snp.getRowDataChildValue(e, 3))
|
||||
.setGender(snp.getRowDataChildValue(e, 4))
|
||||
.setPolishCitizenship("Tak".equals(snp.getRowDataChildValue(e, 5)))
|
||||
.setFamilyName(snp.getRowDataChildValue(e, 6))
|
||||
.setParentsNames(snp.getRowDataChildValue(e, 7));
|
||||
}
|
||||
|
||||
public AddressData getAddressData() throws IOException, VulcanException {
|
||||
Element e = getStudentDataPageDocument().select(CONTENT_QUERY).get(1);
|
||||
|
||||
return new AddressData()
|
||||
.setAddress(snp.getRowDataChildValue(e, 1))
|
||||
.setRegisteredAddress(snp.getRowDataChildValue(e, 2))
|
||||
.setCorrespondenceAddress(snp.getRowDataChildValue(e, 3));
|
||||
|
||||
}
|
||||
|
||||
public ContactDetails getContactDetails() throws IOException, VulcanException {
|
||||
Element e = getStudentDataPageDocument().select(CONTENT_QUERY).get(2);
|
||||
|
||||
return new ContactDetails()
|
||||
.setPhoneNumber(snp.getRowDataChildValue(e, 1))
|
||||
.setCellPhoneNumber(snp.getRowDataChildValue(e, 2))
|
||||
.setEmail(snp.getRowDataChildValue(e, 3));
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
public class ContactDetails {
|
||||
|
||||
private String phoneNumber = "";
|
||||
|
||||
private String cellPhoneNumber = "";
|
||||
|
||||
private String email = "";
|
||||
|
||||
public String getPhoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public ContactDetails setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCellPhoneNumber() {
|
||||
return cellPhoneNumber;
|
||||
}
|
||||
|
||||
public ContactDetails setCellPhoneNumber(String cellPhoneNumber) {
|
||||
this.cellPhoneNumber = cellPhoneNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public ContactDetails setEmail(String email) {
|
||||
this.email = email;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.SnP;
|
||||
import io.github.wulkanowy.api.VulcanException;
|
||||
|
||||
public class FamilyInformation {
|
||||
|
||||
private static final String STUDENT_DATA_PAGE_URL = "Uczen.mvc/DanePodstawowe";
|
||||
|
||||
private SnP snp;
|
||||
|
||||
public FamilyInformation(SnP snp) {
|
||||
this.snp = snp;
|
||||
}
|
||||
|
||||
public List<FamilyMember> getFamilyMembers() throws IOException, VulcanException {
|
||||
Elements membersElements = snp.getSnPPageDocument(STUDENT_DATA_PAGE_URL)
|
||||
.select(".mainContainer > article:nth-of-type(n+4)");
|
||||
|
||||
List<FamilyMember> familyMembers = new ArrayList<>();
|
||||
|
||||
for (Element e : membersElements) {
|
||||
familyMembers.add(new FamilyMember()
|
||||
.setName(snp.getRowDataChildValue(e, 1))
|
||||
.setKinship(snp.getRowDataChildValue(e, 2))
|
||||
.setAddress(snp.getRowDataChildValue(e, 3))
|
||||
.setTelephones(snp.getRowDataChildValue(e, 4))
|
||||
.setEmail(snp.getRowDataChildValue(e, 5))
|
||||
);
|
||||
}
|
||||
|
||||
return familyMembers;
|
||||
}
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
public class FamilyMember {
|
||||
|
||||
private String name = "";
|
||||
|
||||
private String kinship = "";
|
||||
|
||||
private String address = "";
|
||||
|
||||
private String telephones = "";
|
||||
|
||||
private String email = "";
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public FamilyMember setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getKinship() {
|
||||
return kinship;
|
||||
}
|
||||
|
||||
public FamilyMember setKinship(String kinship) {
|
||||
this.kinship = kinship;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public FamilyMember setAddress(String address) {
|
||||
this.address = address;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTelephones() {
|
||||
return telephones;
|
||||
}
|
||||
|
||||
public FamilyMember setTelephones(String telephones) {
|
||||
this.telephones = telephones;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public FamilyMember setEmail(String email) {
|
||||
this.email = email;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
public class PersonalData {
|
||||
|
||||
private String name = "";
|
||||
|
||||
private String firstName = "";
|
||||
|
||||
private String surname = "";
|
||||
|
||||
private String firstAndLastName = "";
|
||||
|
||||
private String dateAndBirthPlace = "";
|
||||
|
||||
private String pesel = "";
|
||||
|
||||
private String gender = "";
|
||||
|
||||
private boolean isPolishCitizenship;
|
||||
|
||||
private String familyName = "";
|
||||
|
||||
private String parentsNames = "";
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public PersonalData setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFirstName() {
|
||||
return firstName;
|
||||
}
|
||||
|
||||
public PersonalData setFirstName(String firstName) {
|
||||
this.firstName = firstName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSurname() {
|
||||
return surname;
|
||||
}
|
||||
|
||||
public PersonalData setSurname(String surname) {
|
||||
this.surname = surname;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFirstAndLastName() {
|
||||
return firstAndLastName;
|
||||
}
|
||||
|
||||
public PersonalData setFirstAndLastName(String firstAndLastName) {
|
||||
this.firstAndLastName = firstAndLastName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDateAndBirthPlace() {
|
||||
return dateAndBirthPlace;
|
||||
}
|
||||
|
||||
public PersonalData setDateAndBirthPlace(String dateAndBirthPlace) {
|
||||
this.dateAndBirthPlace = dateAndBirthPlace;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPesel() {
|
||||
return pesel;
|
||||
}
|
||||
|
||||
public PersonalData setPesel(String pesel) {
|
||||
this.pesel = pesel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public PersonalData setGender(String gender) {
|
||||
this.gender = gender;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isPolishCitizenship() {
|
||||
return isPolishCitizenship;
|
||||
}
|
||||
|
||||
public PersonalData setPolishCitizenship(boolean polishCitizenship) {
|
||||
isPolishCitizenship = polishCitizenship;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFamilyName() {
|
||||
return familyName;
|
||||
}
|
||||
|
||||
public PersonalData setFamilyName(String familyName) {
|
||||
this.familyName = familyName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getParentsNames() {
|
||||
return parentsNames;
|
||||
}
|
||||
|
||||
public PersonalData setParentsNames(String parentsNames) {
|
||||
this.parentsNames = parentsNames;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ClientTest {
|
||||
|
||||
private String getFixtureAsString(String fixtureFileName) {
|
||||
return FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setFullEndpointInfoTest() throws Exception {
|
||||
Client client = new Client("http://fakelog.net\\\\admin", "pass", "Default");
|
||||
|
||||
Assert.assertEquals("fakelog.net", client.getHost());
|
||||
Assert.assertEquals("Default", client.getSymbol());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkForNoErrorsTest() throws Exception {
|
||||
Client client = new Client("", "", "");
|
||||
|
||||
Document doc = Jsoup.parse(getFixtureAsString("login/Logowanie-success.html"));
|
||||
|
||||
Assert.assertEquals(doc, client.checkForErrors(doc));
|
||||
}
|
||||
|
||||
@Test(expected = VulcanOfflineException.class)
|
||||
public void checkForErrorsOffline() throws Exception {
|
||||
Client client = new Client("", "", "");
|
||||
|
||||
Document doc = Jsoup.parse(getFixtureAsString("login/PrzerwaTechniczna.html"));
|
||||
|
||||
client.checkForErrors(doc);
|
||||
}
|
||||
|
||||
@Test(expected = NotLoggedInErrorException.class)
|
||||
public void checkForErrors() throws Exception {
|
||||
Client client = new Client("", "", "");
|
||||
|
||||
Document doc = Jsoup.parse(getFixtureAsString("login/Logowanie-notLoggedIn.html"));
|
||||
|
||||
client.checkForErrors(doc);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFilledUrlTest() throws Exception {
|
||||
Client client = new Client("http://fakelog.cf\\\\admin", "", "symbol123");
|
||||
|
||||
Assert.assertEquals("http://uonetplus.fakelog.cf/symbol123/LoginEndpoint.aspx",
|
||||
client.getFilledUrl("{schema}://uonetplus.{host}/{symbol}/LoginEndpoint.aspx"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSymbolTest() throws Exception {
|
||||
Client client = new Client("", "", "symbol4321");
|
||||
|
||||
Assert.assertEquals("symbol4321", client.getSymbol());
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class FixtureHelper {
|
||||
|
||||
public static String getAsString(InputStream inputStream) {
|
||||
Scanner s = new Scanner(inputStream).useDelimiter("\\A");
|
||||
return s.hasNext() ? s.next() : "";
|
||||
}
|
||||
}
|
@ -1,158 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class StudentAndParentTest {
|
||||
|
||||
private Client client;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
String input = FixtureHelper.getAsString(
|
||||
getClass().getResourceAsStream("OcenyWszystkie-semester.html"));
|
||||
Document gradesPageDocument = Jsoup.parse(input);
|
||||
|
||||
client = Mockito.mock(Client.class);
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString())).thenReturn(gradesPageDocument);
|
||||
Mockito.when(client.getPageByUrl(
|
||||
Mockito.anyString(),
|
||||
Mockito.anyBoolean(), Mockito.anyMap())).thenReturn(gradesPageDocument);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void snpTest() {
|
||||
StudentAndParent snp = new StudentAndParent(client, "id123", null, null);
|
||||
Assert.assertEquals("id123", snp.getSchoolID());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSnpPageUrlWithIdTest() throws Exception {
|
||||
Assert.assertEquals("{schema}://uonetplus-opiekun.{host}/{symbol}/123456/",
|
||||
(new StudentAndParent(client, "123456", null, null)).getSnpHomePageUrl());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSnpPageUrlWithoutIdTest() throws Exception {
|
||||
String input = FixtureHelper.getAsString(getClass().getResourceAsStream("Start.html"));
|
||||
Document startPageDocument = Jsoup.parse(input);
|
||||
|
||||
Mockito.when(client.getHost()).thenReturn("vulcan.net.pl");
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString())).thenReturn(startPageDocument);
|
||||
StudentAndParent snp = new StudentAndParent(client, null, null, null);
|
||||
|
||||
Assert.assertEquals("https://uonetplus-opiekun.vulcan.net.pl/symbol/534213/Start/Index/",
|
||||
snp.getSnpHomePageUrl());
|
||||
}
|
||||
|
||||
@Test(expected = NotLoggedInErrorException.class)
|
||||
public void getSnpPageUrlWithWrongPage() throws Exception {
|
||||
Document wrongPageDocument = Jsoup.parse(
|
||||
FixtureHelper.getAsString(getClass().getResourceAsStream("OcenyWszystkie-semester.html"))
|
||||
);
|
||||
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString())).thenReturn(wrongPageDocument);
|
||||
StudentAndParent snp = new StudentAndParent(client, null, null, null);
|
||||
|
||||
snp.getSnpHomePageUrl();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExtractedIDStandardTest() throws Exception {
|
||||
Mockito.when(client.getHost()).thenReturn("vulcan.net.pl");
|
||||
StudentAndParent snp = new StudentAndParent(client, "symbol", null, null);
|
||||
Assert.assertEquals("123456", snp.getExtractedIdFromUrl("https://uonetplus-opiekun"
|
||||
+ ".vulcan.net.pl/powiat/123456/Start/Index/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExtractedIDDemoTest() throws Exception {
|
||||
Mockito.when(client.getHost()).thenReturn("vulcan.net.pl");
|
||||
StudentAndParent snp = new StudentAndParent(client, "symbol", null, null);
|
||||
Assert.assertEquals("demo12345",
|
||||
snp.getExtractedIdFromUrl("https://uonetplus-opiekun.vulcan.net.pl/demoupowiat/demo12345/Start/Index/"));
|
||||
}
|
||||
|
||||
@Test(expected = NotLoggedInErrorException.class)
|
||||
public void getExtractedIDNotLoggedTest() throws Exception {
|
||||
Mockito.when(client.getHost()).thenReturn("vulcan.net.pl");
|
||||
StudentAndParent snp = new StudentAndParent(client, "symbol", null, null);
|
||||
Assert.assertEquals("123",
|
||||
snp.getExtractedIdFromUrl("https://uonetplus.vulcan.net.pl/powiat/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSemestersTest() throws Exception {
|
||||
SnP snp = new StudentAndParent(client, "123456", null, null);
|
||||
List<Semester> semesters = snp.getSemesters();
|
||||
|
||||
Assert.assertEquals(2, semesters.size());
|
||||
|
||||
Assert.assertEquals("1", semesters.get(0).getId());
|
||||
Assert.assertEquals("1234", semesters.get(0).getName());
|
||||
Assert.assertFalse(semesters.get(0).isCurrent());
|
||||
|
||||
Assert.assertEquals("2", semesters.get(1).getId());
|
||||
Assert.assertEquals("1235", semesters.get(1).getName());
|
||||
Assert.assertTrue(semesters.get(1).isCurrent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCurrentSemesterTest() {
|
||||
List<Semester> semesters = new ArrayList<>();
|
||||
semesters.add(new Semester().setName("1500100900").setId("1").setCurrent(false));
|
||||
semesters.add(new Semester().setName("1500100901").setId("2").setCurrent(true));
|
||||
|
||||
SnP snp = new StudentAndParent(client, "", null, null);
|
||||
Semester semester = snp.getCurrent(semesters);
|
||||
|
||||
Assert.assertTrue(semester.isCurrent());
|
||||
Assert.assertEquals("2", semester.getId());
|
||||
Assert.assertEquals("1500100901", semester.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCurrentSemesterFromEmptyTest() {
|
||||
SnP snp = new StudentAndParent(client, "", null, null);
|
||||
List<Semester> semesters = new ArrayList<>();
|
||||
|
||||
Assert.assertNull(snp.getCurrent(semesters));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDiariesAndStudentTest() throws IOException, VulcanException {
|
||||
Document snpHome = Jsoup.parse(FixtureHelper.getAsString(
|
||||
getClass().getResourceAsStream("StudentAndParent.html")));
|
||||
|
||||
client = Mockito.mock(Client.class);
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString())).thenReturn(snpHome);
|
||||
SnP snp = new StudentAndParent(client, "", null, null);
|
||||
|
||||
snp.setUp();
|
||||
|
||||
Assert.assertEquals("3Ti 2017", snp.getDiaries().get(0).getName());
|
||||
Assert.assertEquals("2Ti 2016", snp.getDiaries().get(1).getName());
|
||||
Assert.assertEquals("1Ti 2015", snp.getDiaries().get(2).getName());
|
||||
|
||||
Assert.assertEquals("1300", snp.getDiaries().get(0).getId());
|
||||
Assert.assertEquals("1200", snp.getDiaries().get(1).getId());
|
||||
Assert.assertEquals("1100", snp.getDiaries().get(2).getId());
|
||||
|
||||
Assert.assertTrue(snp.getDiaries().get(0).isCurrent());
|
||||
Assert.assertFalse(snp.getDiaries().get(1).isCurrent());
|
||||
Assert.assertFalse(snp.getDiaries().get(2).isCurrent());
|
||||
|
||||
Assert.assertEquals("100", snp.getDiaries().get(0).getStudentId());
|
||||
|
||||
Assert.assertEquals("Jan Kowal", snp.getStudents().get(0).getName());
|
||||
Assert.assertEquals("100", snp.getStudents().get(0).getStudentId());
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
public abstract class StudentAndParentTestCase {
|
||||
|
||||
protected StudentAndParent getSnp(String fixtureFileName) throws Exception {
|
||||
String input = FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName));
|
||||
|
||||
Document tablePageDocument = Jsoup.parse(input);
|
||||
|
||||
StudentAndParent snp = Mockito.mock(StudentAndParent.class);
|
||||
Mockito.when(snp.getSnPPageDocument(Mockito.anyString()))
|
||||
.thenReturn(tablePageDocument);
|
||||
Mockito.when(snp.getSemesters(Mockito.any(Document.class))).thenCallRealMethod();
|
||||
Mockito.when(snp.getCurrent(Mockito.<Semester>anyList()))
|
||||
.thenCallRealMethod();
|
||||
Mockito.when(snp.getRowDataChildValue(Mockito.any(Element.class),
|
||||
Mockito.anyInt())).thenCallRealMethod();
|
||||
|
||||
return snp;
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package io.github.wulkanowy.api;
|
||||
|
||||
import org.hamcrest.CoreMatchers;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class VulcanTest {
|
||||
|
||||
@Test(expected = NotLoggedInErrorException.class)
|
||||
public void getClientWithoutLoginTest() throws Exception {
|
||||
Vulcan vulcan = new Vulcan();
|
||||
|
||||
vulcan.getClient();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientTest() throws Exception {
|
||||
Vulcan vulcan = new Vulcan();
|
||||
vulcan.setCredentials("email", "password", "symbol", null, null, null);
|
||||
|
||||
Assert.assertThat(vulcan.getClient(), CoreMatchers.instanceOf(Client.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientTwiceTest() throws Exception {
|
||||
Vulcan vulcan = new Vulcan();
|
||||
vulcan.setCredentials("email", "password", "symbol", null, null, null);
|
||||
|
||||
Assert.assertEquals(vulcan.getClient(), vulcan.getClient());
|
||||
}
|
||||
}
|
@ -1,144 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
import io.github.wulkanowy.api.generic.Month;
|
||||
|
||||
public class AttendanceStatisticsTest extends StudentAndParentTestCase {
|
||||
|
||||
private AttendanceStatistics excellent;
|
||||
|
||||
private AttendanceStatistics full;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
this.excellent = new AttendanceStatistics(getSnp("Frekwencja-excellent.html"));
|
||||
this.full = new AttendanceStatistics(getSnp("Frekwencja-full.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubjectList() throws Exception {
|
||||
Assert.assertEquals(26, excellent.getSubjectList().size());
|
||||
Assert.assertEquals(23, full.getSubjectList().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubjectListId() throws Exception {
|
||||
Assert.assertEquals(-1, excellent.getSubjectList().get(0).getId());
|
||||
Assert.assertEquals(63, excellent.getSubjectList().get(10).getId());
|
||||
Assert.assertEquals(0, excellent.getSubjectList().get(25).getId());
|
||||
|
||||
Assert.assertEquals(-1, full.getSubjectList().get(0).getId());
|
||||
Assert.assertEquals(108, full.getSubjectList().get(14).getId());
|
||||
Assert.assertEquals(492, full.getSubjectList().get(21).getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubjectListName() throws Exception {
|
||||
Assert.assertEquals("Wszystkie", excellent.getSubjectList().get(0).getName());
|
||||
Assert.assertEquals("Fizyka", excellent.getSubjectList().get(8).getName());
|
||||
Assert.assertEquals("Sieci komputerowe i administrowanie sieciami",
|
||||
excellent.getSubjectList().get(21).getName());
|
||||
|
||||
Assert.assertEquals("Praktyka zawodowa", full.getSubjectList().get(11).getName());
|
||||
Assert.assertEquals("Użytkowanie urządzeń peryferyjnych komputera",
|
||||
full.getSubjectList().get(16).getName());
|
||||
Assert.assertEquals("Brak opisu lekcji", full.getSubjectList().get(22).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTypesTotal() throws Exception {
|
||||
Assert.assertEquals(100.0, excellent.getTypesTable().getTotal(), 0);
|
||||
Assert.assertEquals(80.94, full.getTypesTable().getTotal(), 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTypeName() throws Exception {
|
||||
List<Type> typeList1 = excellent.getTypesTable().getTypeList();
|
||||
Assert.assertEquals("Obecność", typeList1.get(0).getName());
|
||||
Assert.assertEquals("Nieobecność nieusprawiedliwiona", typeList1.get(1).getName());
|
||||
Assert.assertEquals("Nieobecność usprawiedliwiona", typeList1.get(2).getName());
|
||||
Assert.assertEquals("Nieobecność z przyczyn szkolnych", typeList1.get(3).getName());
|
||||
|
||||
List<Type> typeList2 = full.getTypesTable().getTypeList();
|
||||
Assert.assertEquals("Spóźnienie nieusprawiedliwione", typeList2.get(4).getName());
|
||||
Assert.assertEquals("Spóźnienie usprawiedliwione", typeList2.get(5).getName());
|
||||
Assert.assertEquals("Zwolnienie", typeList2.get(6).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTypeTotal() throws Exception {
|
||||
List<Type> typeList1 = excellent.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(1211, typeList1.get(0).getTotal());
|
||||
Assert.assertEquals(0, typeList1.get(1).getTotal());
|
||||
Assert.assertEquals(0, typeList1.get(2).getTotal());
|
||||
Assert.assertEquals(0, typeList1.get(3).getTotal());
|
||||
Assert.assertEquals(0, typeList1.get(4).getTotal());
|
||||
Assert.assertEquals(0, typeList1.get(5).getTotal());
|
||||
Assert.assertEquals(0, typeList1.get(6).getTotal());
|
||||
|
||||
List<Type> typeList2 = full.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(822, typeList2.get(0).getTotal());
|
||||
Assert.assertEquals(6, typeList2.get(1).getTotal());
|
||||
Assert.assertEquals(192, typeList2.get(2).getTotal());
|
||||
Assert.assertEquals(7, typeList2.get(3).getTotal());
|
||||
Assert.assertEquals(12, typeList2.get(4).getTotal());
|
||||
Assert.assertEquals(1, typeList2.get(5).getTotal());
|
||||
Assert.assertEquals(2, typeList2.get(6).getTotal());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTypeList() throws Exception {
|
||||
List<Type> typesList1 = excellent.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(12, typesList1.get(0).getMonthList().size());
|
||||
Assert.assertEquals(12, typesList1.get(5).getMonthList().size());
|
||||
|
||||
List<Type> typesList2 = full.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(12, typesList2.get(0).getMonthList().size());
|
||||
Assert.assertEquals(12, typesList2.get(5).getMonthList().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMonthList() throws Exception {
|
||||
List<Type> typeList1 = excellent.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(12, typeList1.get(0).getMonthList().size());
|
||||
|
||||
List<Type> typeList2 = full.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(12, typeList2.get(0).getMonthList().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMonthName() throws Exception {
|
||||
List<Month> monthsList1 = excellent.getTypesTable().getTypeList().get(0).getMonthList();
|
||||
Assert.assertEquals("IX", monthsList1.get(0).getName());
|
||||
Assert.assertEquals("III", monthsList1.get(6).getName());
|
||||
Assert.assertEquals("VIII", monthsList1.get(11).getName());
|
||||
|
||||
List<Month> monthsList2 = full.getTypesTable().getTypeList().get(0).getMonthList();
|
||||
Assert.assertEquals("XI", monthsList2.get(2).getName());
|
||||
Assert.assertEquals("II", monthsList2.get(5).getName());
|
||||
Assert.assertEquals("VI", monthsList2.get(9).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMonthValue() throws Exception {
|
||||
List<Month> monthsList1 = excellent.getTypesTable().getTypeList().get(0).getMonthList();
|
||||
Assert.assertEquals(142, monthsList1.get(0).getValue());
|
||||
Assert.assertEquals(131, monthsList1.get(4).getValue());
|
||||
Assert.assertEquals(139, monthsList1.get(7).getValue());
|
||||
Assert.assertEquals(114, monthsList1.get(9).getValue());
|
||||
Assert.assertEquals(0, monthsList1.get(11).getValue());
|
||||
|
||||
List<Type> typeList1 = full.getTypesTable().getTypeList();
|
||||
Assert.assertEquals(135, typeList1.get(0).getMonthList().get(0).getValue());
|
||||
Assert.assertEquals(7, typeList1.get(3).getMonthList().get(5).getValue());
|
||||
Assert.assertEquals(1, typeList1.get(5).getMonthList().get(0).getValue());
|
||||
Assert.assertEquals(27, typeList1.get(2).getMonthList().get(9).getValue());
|
||||
Assert.assertEquals(0, typeList1.get(0).getMonthList().get(11).getValue());
|
||||
}
|
||||
}
|
@ -1,165 +0,0 @@
|
||||
package io.github.wulkanowy.api.attendance;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class AttendanceTableTest extends StudentAndParentTestCase {
|
||||
|
||||
private AttendanceTable excellent;
|
||||
|
||||
private AttendanceTable full;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
excellent = new AttendanceTable(getSnp("Frekwencja-excellent.html"));
|
||||
full = new AttendanceTable(getSnp("Frekwencja-full.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getWeekStartByDate() throws Exception {
|
||||
Assert.assertEquals("2015-08-31", excellent.getWeekTable().getStartDayDate());
|
||||
Assert.assertEquals("2016-09-05", full.getWeekTable().getStartDayDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getWeekDaysNumber() throws Exception {
|
||||
Assert.assertEquals(5, excellent.getWeekTable().getDays().size());
|
||||
Assert.assertEquals(5, full.getWeekTable().getDays().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayLessonsNumber() throws Exception {
|
||||
Assert.assertEquals(14, excellent.getWeekTable().getDay(0).getLessons().size());
|
||||
Assert.assertEquals(14, full.getWeekTable().getDay(0).getLessons().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayDate() throws Exception {
|
||||
Assert.assertEquals("2015-08-31", excellent.getWeekTable().getDay(0).getDate());
|
||||
Assert.assertEquals("2015-09-02", excellent.getWeekTable().getDay(2).getDate());
|
||||
Assert.assertEquals("2015-09-04", excellent.getWeekTable().getDay(4).getDate());
|
||||
|
||||
Assert.assertEquals("2016-09-05", full.getWeekTable().getDay(0).getDate());
|
||||
Assert.assertEquals("2016-09-07", full.getWeekTable().getDay(2).getDate());
|
||||
Assert.assertEquals("2016-09-09", full.getWeekTable().getDay(4).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonSubject() throws Exception {
|
||||
Assert.assertEquals("",
|
||||
excellent.getWeekTable().getDay(0).getLesson(7).getSubject());
|
||||
Assert.assertEquals("Uroczyste rozpoczęcie roku szkolnego 2015/2016",
|
||||
excellent.getWeekTable().getDay(1).getLesson(1).getSubject());
|
||||
Assert.assertEquals("Geografia",
|
||||
excellent.getWeekTable().getDay(3).getLesson(4).getSubject());
|
||||
|
||||
Assert.assertEquals("Naprawa komputera",
|
||||
full.getWeekTable().getDay(1).getLesson(8).getSubject());
|
||||
Assert.assertEquals("Religia",
|
||||
full.getWeekTable().getDay(3).getLesson(1).getSubject());
|
||||
Assert.assertEquals("Metodologia programowania",
|
||||
full.getWeekTable().getDay(4).getLesson(5).getSubject());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsNotExist() throws Exception {
|
||||
Assert.assertTrue(excellent.getWeekTable().getDay(0).getLesson(5).isNotExist());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(1).isNotExist());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isNotExist());
|
||||
|
||||
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(12).isAbsenceUnexcused());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceUnexcused());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(5).isAbsenceUnexcused());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsEmpty() throws Exception {
|
||||
Assert.assertTrue(excellent.getWeekTable().getDay(0).getLesson(0).isEmpty());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(6).isEmpty());
|
||||
Assert.assertTrue(excellent.getWeekTable().getDay(4).getLesson(12).isEmpty());
|
||||
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(9).isEmpty());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(2).getLesson(5).isEmpty());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(2).isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsPresence() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(7).isPresence());
|
||||
Assert.assertTrue(excellent.getWeekTable().getDay(1).getLesson(1).isPresence());
|
||||
Assert.assertTrue(excellent.getWeekTable().getDay(3).getLesson(7).isPresence());
|
||||
|
||||
Assert.assertTrue(full.getWeekTable().getDay(0).getLesson(1).isPresence());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(2).getLesson(6).isPresence());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(7).isPresence());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsAbsenceUnexcused() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(7).isAbsenceUnexcused());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(0).isAbsenceUnexcused());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(4).isAbsenceUnexcused());
|
||||
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(8).isAbsenceUnexcused());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceUnexcused());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isAbsenceUnexcused());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsAbsenceExcused() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(7).isAbsenceExcused());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(0).isAbsenceExcused());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(4).isAbsenceExcused());
|
||||
|
||||
Assert.assertFalse(full.getWeekTable().getDay(2).getLesson(5).isAbsenceExcused());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceExcused());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(4).getLesson(3).isAbsenceExcused());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsAbsenceForSchoolReasons() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isAbsenceForSchoolReasons());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isAbsenceForSchoolReasons());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isAbsenceForSchoolReasons());
|
||||
|
||||
Assert.assertTrue(full.getWeekTable().getDay(2).getLesson(5).isAbsenceForSchoolReasons());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceForSchoolReasons());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isAbsenceForSchoolReasons());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsUnexcusedLateness() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isUnexcusedLateness());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isUnexcusedLateness());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isUnexcusedLateness());
|
||||
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(6).isUnexcusedLateness());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isUnexcusedLateness());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isUnexcusedLateness());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsExcusedLateness() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isExcusedLateness());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isExcusedLateness());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isExcusedLateness());
|
||||
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(7).isExcusedLateness());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isExcusedLateness());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isExcusedLateness());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsExemption() throws Exception {
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isExemption());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isExemption());
|
||||
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isExemption());
|
||||
|
||||
Assert.assertFalse(full.getWeekTable().getDay(2).getLesson(5).isExemption());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isExemption());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(4).getLesson(8).isExemption());
|
||||
}
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
package io.github.wulkanowy.api.exams;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class ExamsWeekTest extends StudentAndParentTestCase {
|
||||
|
||||
private ExamsWeek onePerDay;
|
||||
|
||||
@Before
|
||||
public void getCurrent() throws Exception {
|
||||
onePerDay = new ExamsWeek(getSnp("Sprawdziany-one-per-day.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getWeekTest() throws Exception {
|
||||
Assert.assertEquals("23.10.2017", onePerDay.getCurrent().getStartDayDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDaysListTest() throws Exception {
|
||||
Assert.assertEquals(3, onePerDay.getCurrent().getDays().size());
|
||||
Assert.assertEquals(7, onePerDay.getWeek("", false).getDays().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExamsListTest() throws Exception {
|
||||
List<ExamDay> notEmpty = onePerDay.getCurrent().getDays();
|
||||
Assert.assertEquals(1, notEmpty.get(0).getExamList().size());
|
||||
Assert.assertEquals(1, notEmpty.get(1).getExamList().size());
|
||||
Assert.assertEquals(1, notEmpty.get(2).getExamList().size());
|
||||
|
||||
List<ExamDay> emptyToo = onePerDay.getWeek("", false).getDays();
|
||||
Assert.assertEquals(1, emptyToo.get(0).getExamList().size());
|
||||
Assert.assertEquals(1, emptyToo.get(1).getExamList().size());
|
||||
Assert.assertEquals(1, emptyToo.get(4).getExamList().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayDateTest() throws Exception {
|
||||
List<ExamDay> dayList = onePerDay.getCurrent().getDays();
|
||||
|
||||
Assert.assertEquals("23.10.2017", dayList.get(0).getDate());
|
||||
Assert.assertEquals("24.10.2017", dayList.get(1).getDate());
|
||||
Assert.assertEquals("27.10.2017", dayList.get(2).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExamSubjectAndGroupTest() throws Exception {
|
||||
List<ExamDay> dayList = onePerDay.getCurrent().getDays();
|
||||
|
||||
Assert.assertEquals("Sieci komputerowe 3Ti|zaw2", dayList.get(0).getExamList().get(0).getSubjectAndGroup());
|
||||
Assert.assertEquals("Język angielski 3Ti|J1", dayList.get(1).getExamList().get(0).getSubjectAndGroup());
|
||||
Assert.assertEquals("Metodologia programowania 3Ti|zaw2", dayList.get(2).getExamList().get(0).getSubjectAndGroup());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExamTypeTest() throws Exception {
|
||||
List<ExamDay> dayList = onePerDay.getCurrent().getDays();
|
||||
|
||||
Assert.assertEquals("Sprawdzian", dayList.get(0).getExamList().get(0).getType());
|
||||
Assert.assertEquals("Sprawdzian", dayList.get(1).getExamList().get(0).getType());
|
||||
Assert.assertEquals("Sprawdzian", dayList.get(2).getExamList().get(0).getType());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExamDescriptionTest() throws Exception {
|
||||
List<ExamDay> dayList = onePerDay.getCurrent().getDays();
|
||||
|
||||
Assert.assertEquals("Łącza danych", dayList.get(0).getExamList().get(0).getDescription());
|
||||
Assert.assertEquals("Czasy teraźniejsze", dayList.get(1).getExamList().get(0).getDescription());
|
||||
Assert.assertEquals("", dayList.get(2).getExamList().get(0).getDescription());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExamTeacherTest() throws Exception {
|
||||
List<ExamDay> dayList = onePerDay.getCurrent().getDays();
|
||||
|
||||
Assert.assertEquals("Adam Wiśniewski [AW]", dayList.get(0).getExamList().get(0).getTeacher());
|
||||
Assert.assertEquals("Natalia Nowak [NN]", dayList.get(1).getExamList().get(0).getTeacher());
|
||||
Assert.assertEquals("Małgorzata Nowacka [MN]", dayList.get(2).getExamList().get(0).getTeacher());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExamEntryDateTest() throws Exception {
|
||||
List<ExamDay> dayList = onePerDay.getCurrent().getDays();
|
||||
|
||||
Assert.assertEquals("16.10.2017", dayList.get(0).getExamList().get(0).getEntryDate());
|
||||
Assert.assertEquals("17.10.2017", dayList.get(1).getExamList().get(0).getEntryDate());
|
||||
Assert.assertEquals("16.10.2017", dayList.get(2).getExamList().get(0).getEntryDate());
|
||||
}
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
package io.github.wulkanowy.api.grades;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class GradesListTest extends StudentAndParentTestCase {
|
||||
|
||||
private GradesList filled;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
filled = new GradesList(getSnp("OcenyWszystkie-filled.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAllTest() throws Exception {
|
||||
Assert.assertEquals(6, filled.getAll().size()); // 2 items are skipped
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubjectTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("Zajęcia z wychowawcą", list.get(0).getSubject());
|
||||
Assert.assertEquals("Język angielski", list.get(3).getSubject());
|
||||
Assert.assertEquals("Wychowanie fizyczne", list.get(4).getSubject());
|
||||
Assert.assertEquals("Język polski", list.get(5).getSubject());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getValueTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("5", list.get(0).getValue());
|
||||
Assert.assertEquals("5", list.get(3).getValue());
|
||||
Assert.assertEquals("1", list.get(4).getValue());
|
||||
Assert.assertEquals("1", list.get(5).getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getColorTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("000000", list.get(0).getColor());
|
||||
Assert.assertEquals("1289F7", list.get(3).getColor());
|
||||
Assert.assertEquals("6ECD07", list.get(4).getColor());
|
||||
Assert.assertEquals("6ECD07", list.get(5).getColor());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSymbolTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("A1", list.get(0).getSymbol());
|
||||
Assert.assertEquals("BW3", list.get(3).getSymbol());
|
||||
Assert.assertEquals("STR", list.get(4).getSymbol());
|
||||
Assert.assertEquals("K", list.get(5).getSymbol());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDescriptionTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("Dzień Kobiet w naszej klasie", list.get(0).getDescription());
|
||||
Assert.assertEquals("Writing", list.get(3).getDescription());
|
||||
Assert.assertEquals("", list.get(4).getDescription());
|
||||
Assert.assertEquals("Kordian", list.get(5).getDescription());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getWeightTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("1,00", list.get(0).getWeight());
|
||||
Assert.assertEquals("3,00", list.get(3).getWeight());
|
||||
Assert.assertEquals("8,00", list.get(4).getWeight());
|
||||
Assert.assertEquals("5,00", list.get(5).getWeight());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDateTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("2017-03-21", list.get(0).getDate());
|
||||
Assert.assertEquals("2017-06-02", list.get(3).getDate());
|
||||
Assert.assertEquals("2017-04-02", list.get(4).getDate());
|
||||
Assert.assertEquals("2017-02-06", list.get(5).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTeacherTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("Patryk Maciejewski", list.get(0).getTeacher());
|
||||
Assert.assertEquals("Oliwia Woźniak", list.get(3).getTeacher());
|
||||
Assert.assertEquals("Klaudia Dziedzic", list.get(4).getTeacher());
|
||||
Assert.assertEquals("Amelia Stępień", list.get(5).getTeacher());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSemesterTest() throws Exception {
|
||||
List<Grade> list = filled.getAll();
|
||||
|
||||
Assert.assertEquals("7654321", list.get(0).getSemester());
|
||||
Assert.assertEquals("7654321", list.get(3).getSemester());
|
||||
Assert.assertEquals("7654321", list.get(4).getSemester());
|
||||
Assert.assertEquals("7654321", list.get(5).getSemester());
|
||||
}
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
package io.github.wulkanowy.api.grades;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class SubjectsListTest extends StudentAndParentTestCase {
|
||||
|
||||
private SubjectsList std;
|
||||
|
||||
private SubjectsList average;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
std = new SubjectsList(getSnp("OcenyWszystkie-subjects.html"));
|
||||
average = new SubjectsList(getSnp("OcenyWszystkie-subjects-average.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAllTest() throws Exception {
|
||||
Assert.assertEquals(5, std.getAll().size());
|
||||
Assert.assertEquals(5, average.getAll().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNameTest() throws Exception {
|
||||
List<Subject> stdList = std.getAll();
|
||||
|
||||
Assert.assertEquals("Zachowanie", stdList.get(0).getName());
|
||||
Assert.assertEquals("Praktyka zawodowa", stdList.get(1).getName());
|
||||
Assert.assertEquals("Metodologia programowania", stdList.get(2).getName());
|
||||
Assert.assertEquals("Podstawy przedsiębiorczości", stdList.get(3).getName());
|
||||
Assert.assertEquals("Wychowanie do życia w rodzinie", stdList.get(4).getName());
|
||||
|
||||
List<Subject> averageList = average.getAll();
|
||||
Assert.assertEquals("Zachowanie", averageList.get(0).getName());
|
||||
Assert.assertEquals("Język polski", averageList.get(1).getName());
|
||||
Assert.assertEquals("Wychowanie fizyczne", averageList.get(2).getName());
|
||||
Assert.assertEquals("Język angielski", averageList.get(3).getName());
|
||||
Assert.assertEquals("Wiedza o społeczeństwie", averageList.get(4).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPredictedRatingTest() throws Exception {
|
||||
List<Subject> stdList = std.getAll();
|
||||
|
||||
Assert.assertEquals("bardzo dobre", stdList.get(0).getPredictedRating());
|
||||
Assert.assertEquals("-", stdList.get(1).getPredictedRating());
|
||||
Assert.assertEquals("bardzo dobry", stdList.get(2).getPredictedRating());
|
||||
Assert.assertEquals("3/4", stdList.get(3).getPredictedRating());
|
||||
Assert.assertEquals("-", stdList.get(4).getPredictedRating());
|
||||
|
||||
List<Subject> averageList = average.getAll();
|
||||
Assert.assertEquals("bardzo dobre", averageList.get(0).getPredictedRating());
|
||||
Assert.assertEquals("-", averageList.get(1).getPredictedRating());
|
||||
Assert.assertEquals("bardzo dobry", averageList.get(2).getPredictedRating());
|
||||
Assert.assertEquals("4/5", averageList.get(3).getPredictedRating());
|
||||
Assert.assertEquals("-", averageList.get(4).getPredictedRating());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFinalRatingTest() throws Exception {
|
||||
List<Subject> stdList = std.getAll();
|
||||
|
||||
Assert.assertEquals("bardzo dobre", stdList.get(0).getFinalRating());
|
||||
Assert.assertEquals("celujący", stdList.get(1).getFinalRating());
|
||||
Assert.assertEquals("celujący", stdList.get(2).getFinalRating());
|
||||
Assert.assertEquals("dostateczny", stdList.get(3).getFinalRating());
|
||||
Assert.assertEquals("-", stdList.get(4).getFinalRating());
|
||||
|
||||
List<Subject> averageList = average.getAll();
|
||||
Assert.assertEquals("bardzo dobre", averageList.get(0).getFinalRating());
|
||||
Assert.assertEquals("dobry", averageList.get(1).getFinalRating());
|
||||
Assert.assertEquals("celujący", averageList.get(2).getFinalRating());
|
||||
Assert.assertEquals("bardzo dobry", averageList.get(3).getFinalRating());
|
||||
Assert.assertEquals("-", averageList.get(4).getFinalRating());
|
||||
}
|
||||
}
|
@ -1,111 +0,0 @@
|
||||
package io.github.wulkanowy.api.login;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import io.github.wulkanowy.api.Client;
|
||||
import io.github.wulkanowy.api.FixtureHelper;
|
||||
|
||||
public class LoginTest {
|
||||
|
||||
private Document getFixtureAsDocument(String fixtureFileName) {
|
||||
return Jsoup.parse(getFixtureAsString(fixtureFileName));
|
||||
}
|
||||
|
||||
private String getFixtureAsString(String fixtureFileName) {
|
||||
return FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName));
|
||||
}
|
||||
|
||||
private Client getClient(String fixtureFileName) throws Exception {
|
||||
Document doc = getFixtureAsDocument(fixtureFileName);
|
||||
|
||||
Client client = Mockito.mock(Client.class);
|
||||
Mockito.when(client.postPageByUrl(Mockito.anyString(), Mockito.any(String[][].class))).thenReturn(doc);
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loginTest() throws Exception {
|
||||
Client client = getClient("Logowanie-success.html");
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString(), Mockito.anyBoolean()))
|
||||
.thenReturn(getFixtureAsDocument("Logowanie-error.html"));
|
||||
Login login = new Login(client);
|
||||
|
||||
Assert.assertEquals("d123", login.login("a@a", "pswd", "d123"));
|
||||
}
|
||||
|
||||
@Test(expected = BadCredentialsException.class)
|
||||
public void sendWrongCredentialsTest() throws Exception {
|
||||
Client client = getClient("Logowanie-error.html");
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString(), Mockito.anyBoolean()))
|
||||
.thenReturn(getFixtureAsDocument("Logowanie-error.html")); // -error.html because it html with form used by
|
||||
Login login = new Login(client);
|
||||
|
||||
login.sendCredentials("a@a", "pswd");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendCredentialsCertificateTest() throws Exception {
|
||||
Client client = getClient("Logowanie-certyfikat.html");
|
||||
Mockito.when(client.getPageByUrl(Mockito.anyString(), Mockito.anyBoolean()))
|
||||
.thenReturn(getFixtureAsDocument("Logowanie-error.html")); // -error.html because it html with form used by
|
||||
Login login = new Login(client);
|
||||
|
||||
Assert.assertEquals(
|
||||
getFixtureAsString("cert.xml").replaceAll("\\s+",""),
|
||||
login.sendCredentials("a@a", "passwd")
|
||||
.select("input[name=wresult]").attr("value")
|
||||
.replaceAll("\\s+","")
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendCertificateNotDefaultSymbolSuccessTest() throws Exception {
|
||||
Login login = new Login(getClient("Logowanie-success.html"));
|
||||
|
||||
Assert.assertEquals("wulkanowyschool321",
|
||||
login.sendCertificate(new Document(""), "wulkanowyschool321"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendCertificateDefaultSymbolSuccessTest() throws Exception {
|
||||
Login login = new Login(getClient("Logowanie-success.html"));
|
||||
|
||||
Assert.assertEquals("demo12345",
|
||||
login.sendCertificate(getFixtureAsDocument("Logowanie-certyfikat.html"), "Default"));
|
||||
}
|
||||
|
||||
@Test(expected = AccountPermissionException.class)
|
||||
public void sendCertificateAccountPermissionTest() throws Exception {
|
||||
Login login = new Login(getClient("Logowanie-brak-dostepu.html"));
|
||||
|
||||
login.sendCertificate(getFixtureAsDocument("cert.xml"), "demo123");
|
||||
}
|
||||
|
||||
@Test(expected = LoginErrorException.class)
|
||||
public void sendCertificateLoginErrorTest() throws Exception {
|
||||
Login login = new Login(getClient("Logowanie-certyfikat.html")); // change to other document
|
||||
|
||||
login.sendCertificate(getFixtureAsDocument("cert.xml"), "demo123");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findSymbolInCertificateTest() throws Exception {
|
||||
Login login = new Login(getClient("Logowanie-certyfikat.html"));
|
||||
|
||||
String certificate = getFixtureAsString("cert.xml");
|
||||
|
||||
Assert.assertEquals("demo12345", login.findSymbolInCertificate(certificate));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findSymbolInInvalidCertificateTest() throws Exception {
|
||||
Login login = new Login(getClient("Logowanie-certyfikat.html"));
|
||||
|
||||
Assert.assertEquals("", login.findSymbolInCertificate("<xml></xml>")); // change to real cert with empty symbols
|
||||
}
|
||||
}
|
@ -1,89 +0,0 @@
|
||||
package io.github.wulkanowy.api.messages;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.Client;
|
||||
import io.github.wulkanowy.api.FixtureHelper;
|
||||
import io.github.wulkanowy.api.NotLoggedInErrorException;
|
||||
|
||||
public class MessagesTest {
|
||||
|
||||
private Client getFixtureAsString(String fixtureFileName) throws Exception {
|
||||
Client client = Mockito.mock(Client.class);
|
||||
Mockito.when(client.getJsonStringByUrl(Mockito.anyString()))
|
||||
.thenReturn(FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName)));
|
||||
Mockito.when(client.postJsonStringByUrl(Mockito.anyString(), Mockito.any()))
|
||||
.thenReturn(FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName)));
|
||||
return client;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMessages() throws Exception {
|
||||
Client client = getFixtureAsString("GetWiadomosciOdebrane.json");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
List<Message> messageList = messages.getReceived();
|
||||
|
||||
Assert.assertEquals(true, messageList.get(1).unread);
|
||||
Assert.assertEquals("2016-03-15 09:00:00", messageList.get(0).date);
|
||||
Assert.assertEquals(null, messageList.get(0).content);
|
||||
Assert.assertEquals("Kowalski Jan", messageList.get(0).sender);
|
||||
Assert.assertEquals(12347, messageList.get(2).id);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMessagesEmpty() throws Exception {
|
||||
Client client = getFixtureAsString("GetWiadomosciUsuniete-empty.json");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
List<Message> messageList = messages.getSent();
|
||||
|
||||
Assert.assertTrue(messageList.isEmpty());
|
||||
}
|
||||
|
||||
@Test(expected = NotLoggedInErrorException.class)
|
||||
public void getMessagesError() throws Exception {
|
||||
Client client = getFixtureAsString("UndefinedError.txt");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
messages.getDeleted();
|
||||
}
|
||||
|
||||
@Test(expected = BadRequestException.class)
|
||||
public void getMessagesBadRequest() throws Exception {
|
||||
Client client = getFixtureAsString("PageError.html");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
messages.getDeleted();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMessage() throws Exception {
|
||||
Client client = getFixtureAsString("GetTrescWiadomosci.json");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
Message message = messages.getMessage(123, Messages.RECEIVED_FOLDER);
|
||||
Assert.assertEquals(12345, message.id);
|
||||
Assert.assertEquals("Witam, …. \nPozdrawiam Krzysztof Czerkas", message.content);
|
||||
}
|
||||
|
||||
@Test(expected = NotLoggedInErrorException.class)
|
||||
public void getMessageError() throws Exception {
|
||||
Client client = getFixtureAsString("UndefinedError.txt");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
messages.getMessage(321, Messages.SENT_FOLDER);
|
||||
}
|
||||
|
||||
@Test(expected = BadRequestException.class)
|
||||
public void getMessageBadRequest() throws Exception {
|
||||
Client client = getFixtureAsString("PageError.html");
|
||||
|
||||
Messages messages = new Messages(client);
|
||||
messages.getMessage(1, Messages.DELETED_FOLDER);
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
package io.github.wulkanowy.api.notes;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class AchievementsListTest extends StudentAndParentTestCase {
|
||||
|
||||
private AchievementsList filledAchievementsList;
|
||||
|
||||
private AchievementsList emptyAchievementsList;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
filledAchievementsList = new AchievementsList(getSnp("UwagiOsiagniecia-filled.html"));
|
||||
emptyAchievementsList = new AchievementsList(getSnp("UwagiOsiagniecia-empty.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAllAchievementsTest() throws Exception {
|
||||
Assert.assertEquals(2, filledAchievementsList.getAllAchievements().size());
|
||||
Assert.assertEquals(0, emptyAchievementsList.getAllAchievements().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAchievements() throws Exception {
|
||||
List<String> filledList = filledAchievementsList.getAllAchievements();
|
||||
|
||||
Assert.assertEquals("I miejsce w ogólnopolskim konkursie ortograficznym", filledList.get(0));
|
||||
Assert.assertEquals("III miejsce w ogólnopolskim konkursie plastycznym", filledList.get(1));
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
package io.github.wulkanowy.api.notes;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class NotesListTest extends StudentAndParentTestCase {
|
||||
|
||||
private NotesList filled;
|
||||
|
||||
private NotesList empty;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
filled = new NotesList(getSnp("UwagiOsiagniecia-filled.html"));
|
||||
empty = new NotesList(getSnp("UwagiOsiagniecia-empty.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAllNotesTest() throws Exception {
|
||||
Assert.assertEquals(3, filled.getAllNotes().size());
|
||||
Assert.assertEquals(0, empty.getAllNotes().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDateTest() throws Exception {
|
||||
List<Note> filledList = filled.getAllNotes();
|
||||
|
||||
Assert.assertEquals("06.06.2017", filledList.get(0).getDate());
|
||||
Assert.assertEquals("01.10.2016", filledList.get(2).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTeacherTest() throws Exception {
|
||||
List<Note> filledList = filled.getAllNotes();
|
||||
|
||||
Assert.assertEquals("Jan Kowalski [JK]", filledList.get(0).getTeacher());
|
||||
Assert.assertEquals("Kochański Leszek [KL]", filledList.get(2).getTeacher());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCategoryTest() throws Exception {
|
||||
List<Note> filledList = filled.getAllNotes();
|
||||
|
||||
Assert.assertEquals("Zaangażowanie społeczne", filledList.get(0).getCategory());
|
||||
Assert.assertEquals("Zachowanie na lekcji", filledList.get(2).getCategory());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getContentTest() throws Exception {
|
||||
List<Note> filledList = filled.getAllNotes();
|
||||
|
||||
Assert.assertEquals("Pomoc przy pikniku charytatywnym", filledList.get(0).getContent());
|
||||
Assert.assertEquals("Przeszkadzanie w prowadzeniu lekcji", filledList.get(2).getContent());
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class SchoolInfoTest extends StudentAndParentTestCase {
|
||||
|
||||
private SchoolInfo schoolInfo;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
schoolInfo = new SchoolInfo(getSnp("Szkola.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNameTest() throws Exception {
|
||||
Assert.assertEquals("Zespół Szkół nr 64", schoolInfo.getSchoolData().getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAddressTest() throws Exception {
|
||||
Assert.assertEquals("ul. Wiśniowa 128, 01-234 Rogalowo, Nibylandia",
|
||||
schoolInfo.getSchoolData().getAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPhoneNumberTest() throws Exception {
|
||||
Assert.assertEquals("55 5555555", schoolInfo.getSchoolData().getPhoneNumber());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getHeadmasterTest() throws Exception {
|
||||
Assert.assertEquals("Antoni Sobczyk", schoolInfo.getSchoolData().getHeadmaster());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPedagoguesTest() throws Exception {
|
||||
Assert.assertArrayEquals(new String[]{
|
||||
"Zofia Czerwińska [ZC]",
|
||||
"Aleksander Krzemiński [AK]",
|
||||
"Karolina Kowalska [KK]",
|
||||
"Bartek Dąbrowski [BD]"
|
||||
}, schoolInfo.getSchoolData().getPedagogues());
|
||||
}
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
package io.github.wulkanowy.api.school;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class TeachersInfoTest extends StudentAndParentTestCase {
|
||||
|
||||
private TeachersInfo teachersInfo;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
teachersInfo = new TeachersInfo(getSnp("Szkola.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClassNameTest() throws Exception {
|
||||
Assert.assertEquals("1a", teachersInfo.getTeachersData().getClassName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClassTeacherTest() throws Exception {
|
||||
Assert.assertArrayEquals(new String[]{
|
||||
"Karolina Kowalska [AN]",
|
||||
"Antoni Sobczyk [AS]"
|
||||
}, teachersInfo.getTeachersData().getClassTeacher());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTeachersDataSubjectsNameTest() throws Exception {
|
||||
List<Subject> subjects = teachersInfo.getTeachersData().getSubjects();
|
||||
|
||||
Assert.assertEquals("Biologia", subjects.get(0).getName());
|
||||
Assert.assertEquals("Język angielski", subjects.get(6).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTeachersDataSubjectsTeachersTest() throws Exception {
|
||||
List<Subject> subjects = teachersInfo.getTeachersData().getSubjects();
|
||||
|
||||
Assert.assertArrayEquals(new String[]{"Karolina Kowalska [AN]"},
|
||||
subjects.get(0).getTeachers());
|
||||
Assert.assertEquals("Karolina Kowalska [AN]",
|
||||
subjects.get(0).getTeachers()[0]);
|
||||
|
||||
Assert.assertArrayEquals(new String[]{
|
||||
"Karolina Kowalska [AN]",
|
||||
"Mateusz Kowal [MK]",
|
||||
"Amelia Mazur [AM]"
|
||||
}, subjects.get(6).getTeachers());
|
||||
}
|
||||
}
|
@ -1,242 +0,0 @@
|
||||
package io.github.wulkanowy.api.timetable;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class TimetableTest extends StudentAndParentTestCase {
|
||||
|
||||
private Timetable std;
|
||||
|
||||
private Timetable full;
|
||||
|
||||
private Timetable holidays;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
std = new Timetable(getSnp("PlanLekcji-std.html"));
|
||||
full = new Timetable(getSnp("PlanLekcji-full.html"));
|
||||
holidays = new Timetable(getSnp("PlanLekcji-holidays.html"));
|
||||
}
|
||||
|
||||
// Week
|
||||
|
||||
@Test
|
||||
public void getWeekTableTest() throws Exception {
|
||||
Assert.assertEquals(5, std.getWeekTable().getDays().size());
|
||||
Assert.assertEquals(5, full.getWeekTable().getDays().size());
|
||||
Assert.assertEquals(5, holidays.getWeekTable().getDays().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStartDayDateTest() throws Exception {
|
||||
Assert.assertEquals("2017-06-19", std.getWeekTable().getStartDayDate());
|
||||
Assert.assertEquals("2017-06-19", full.getWeekTable().getStartDayDate());
|
||||
Assert.assertEquals("2017-07-31", holidays.getWeekTable().getStartDayDate());
|
||||
}
|
||||
|
||||
// ExamDay
|
||||
|
||||
@Test
|
||||
public void getDayNameTest() throws Exception {
|
||||
Assert.assertEquals("poniedziałek", std.getWeekTable().getDay(0).getDayName());
|
||||
Assert.assertEquals("piątek", std.getWeekTable().getDay(4).getDayName());
|
||||
Assert.assertEquals("wtorek", full.getWeekTable().getDay(1).getDayName());
|
||||
Assert.assertEquals("czwartek", full.getWeekTable().getDay(3).getDayName());
|
||||
Assert.assertEquals("środa", holidays.getWeekTable().getDay(2).getDayName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayDateTest() throws Exception {
|
||||
Assert.assertEquals("2017-06-19", std.getWeekTable().getDay(0).getDate());
|
||||
Assert.assertEquals("2017-06-23", std.getWeekTable().getDay(4).getDate());
|
||||
Assert.assertEquals("2017-06-20", full.getWeekTable().getDay(1).getDate());
|
||||
Assert.assertEquals("2017-06-22", full.getWeekTable().getDay(3).getDate());
|
||||
Assert.assertEquals("2017-08-02", holidays.getWeekTable().getDay(2).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayIsFreeTest() throws Exception {
|
||||
Assert.assertFalse(std.getWeekTable().getDay(0).isFreeDay());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(2).isFreeDay());
|
||||
Assert.assertTrue(holidays.getWeekTable().getDay(4).isFreeDay());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayFreeDayName() throws Exception {
|
||||
Assert.assertNotEquals("Wakacje", std.getWeekTable().getDay(0).getFreeDayName());
|
||||
Assert.assertNotEquals("Ferie letnie", full.getWeekTable().getDay(1).getFreeDayName());
|
||||
Assert.assertNotEquals("Wakacje", holidays.getWeekTable().getDay(2).getFreeDayName());
|
||||
Assert.assertEquals("Ferie letnie", holidays.getWeekTable().getDay(4).getFreeDayName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDayLessonsTest() throws Exception {
|
||||
Assert.assertEquals(8, std.getWeekTable().getDay(0).getLessons().size());
|
||||
Assert.assertEquals(14, full.getWeekTable().getDay(2).getLessons().size());
|
||||
Assert.assertEquals(14, holidays.getWeekTable().getDay(4).getLessons().size());
|
||||
}
|
||||
|
||||
// Lesson
|
||||
|
||||
@Test
|
||||
public void getLessonNumberTest() throws Exception {
|
||||
Assert.assertEquals("2", std.getWeekTable().getDay(0).getLesson(1).getNumber());
|
||||
Assert.assertEquals("5", std.getWeekTable().getDay(2).getLesson(4).getNumber());
|
||||
Assert.assertEquals("0", full.getWeekTable().getDay(0).getLesson(0).getNumber());
|
||||
Assert.assertEquals("13", full.getWeekTable().getDay(4).getLesson(13).getNumber());
|
||||
Assert.assertEquals("3", holidays.getWeekTable().getDay(3).getLesson(3).getNumber());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonDayTest() throws Exception {
|
||||
Assert.assertEquals("2017-06-19", std.getWeekTable().getDay(0).getLesson(1).getDate());
|
||||
Assert.assertEquals("2017-06-23", std.getWeekTable().getDay(4).getLesson(4).getDate());
|
||||
Assert.assertEquals("2017-06-20", full.getWeekTable().getDay(1).getLesson(6).getDate());
|
||||
Assert.assertEquals("2017-06-22", full.getWeekTable().getDay(3).getLesson(3).getDate());
|
||||
Assert.assertEquals("2017-08-02", holidays.getWeekTable().getDay(2).getLesson(8).getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonSubjectTest() throws Exception {
|
||||
Assert.assertEquals("Historia", std.getWeekTable().getDay(0).getLesson(1).getSubject());
|
||||
Assert.assertEquals("Zajęcia techniczne", std.getWeekTable().getDay(2).getLesson(4).getSubject());
|
||||
Assert.assertEquals("Wychowanie fizyczne", std.getWeekTable().getDay(1).getLesson(1).getSubject());
|
||||
Assert.assertEquals("Język angielski", full.getWeekTable().getDay(0).getLesson(1).getSubject());
|
||||
Assert.assertEquals("Wychowanie do życia w rodzinie", full.getWeekTable().getDay(2).getLesson(0).getSubject());
|
||||
Assert.assertEquals("Wychowanie fizyczne", full.getWeekTable().getDay(3).getLesson(1).getSubject());
|
||||
Assert.assertEquals("Uroczyste zakończenie roku szkolnego", full.getWeekTable().getDay(4).getLesson(0).getSubject());
|
||||
Assert.assertEquals("Fizyka", full.getWeekTable().getDay(0).getLesson(0).getSubject());
|
||||
Assert.assertEquals("Metodologia programowania", full.getWeekTable().getDay(1).getLesson(0).getSubject());
|
||||
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getSubject());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonTeacherTest() throws Exception {
|
||||
Assert.assertEquals("Bogatka Katarzyna", std.getWeekTable().getDay(0).getLesson(1).getTeacher());
|
||||
Assert.assertEquals("Chlebowski Stanisław", std.getWeekTable().getDay(2).getLesson(4).getTeacher());
|
||||
Assert.assertEquals("Kobczyk Iwona", full.getWeekTable().getDay(0).getLesson(1).getTeacher());
|
||||
Assert.assertEquals("Bączek Grzegorz", full.getWeekTable().getDay(0).getLesson(7).getTeacher());
|
||||
Assert.assertEquals("Nowak Jadwiga", full.getWeekTable().getDay(2).getLesson(0).getTeacher());
|
||||
Assert.assertEquals("Nowicka Irena", full.getWeekTable().getDay(3).getLesson(1).getTeacher());
|
||||
Assert.assertEquals("Baran Małgorzata", full.getWeekTable().getDay(4).getLesson(0).getTeacher());
|
||||
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getTeacher());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonRoomTest() throws Exception {
|
||||
Assert.assertEquals("", std.getWeekTable().getDay(3).getLesson(3).getRoom());
|
||||
Assert.assertEquals("33", full.getWeekTable().getDay(0).getLesson(7).getRoom());
|
||||
Assert.assertEquals("19", full.getWeekTable().getDay(0).getLesson(0).getRoom());
|
||||
Assert.assertEquals("32", full.getWeekTable().getDay(1).getLesson(0).getRoom());
|
||||
Assert.assertEquals("32", full.getWeekTable().getDay(1).getLesson(8).getRoom());
|
||||
Assert.assertEquals("32", full.getWeekTable().getDay(2).getLesson(8).getRoom());
|
||||
Assert.assertEquals("G4", full.getWeekTable().getDay(3).getLesson(1).getRoom());
|
||||
Assert.assertEquals("37", full.getWeekTable().getDay(4).getLesson(0).getRoom());
|
||||
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getRoom());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonDescriptionTest() throws Exception {
|
||||
Assert.assertEquals("", std.getWeekTable().getDay(3).getLesson(3).getDescription());
|
||||
Assert.assertEquals("przeniesiona z lekcji 7, 01.12.2017", full.getWeekTable().getDay(1).getLesson(1).getDescription());
|
||||
Assert.assertEquals("okienko dla uczniów", full.getWeekTable().getDay(0).getLesson(7).getDescription());
|
||||
Assert.assertEquals("przeniesiona z lekcji 7, 20.06.2017", full.getWeekTable().getDay(1).getLesson(2).getDescription());
|
||||
Assert.assertEquals("przeniesiona z lekcji 4, 20.06.2017", full.getWeekTable().getDay(1).getLesson(3).getDescription());
|
||||
Assert.assertEquals("zastępstwo (poprzednio: Religia)", full.getWeekTable().getDay(2).getLesson(0).getDescription());
|
||||
Assert.assertEquals("zastępstwo (poprzednio: Wychowanie fizyczne)", full.getWeekTable().getDay(3).getLesson(1).getDescription());
|
||||
Assert.assertEquals("", full.getWeekTable().getDay(4).getLesson(0).getDescription());
|
||||
Assert.assertEquals("egzamin", full.getWeekTable().getDay(3).getLesson(0).getDescription());
|
||||
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getDescription());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonGroupNameTest() throws Exception {
|
||||
Assert.assertEquals("CH", std.getWeekTable().getDay(0).getLesson(2).getGroupName());
|
||||
Assert.assertEquals("JNPW", std.getWeekTable().getDay(4).getLesson(0).getGroupName());
|
||||
Assert.assertEquals("", full.getWeekTable().getDay(0).getLesson(7).getGroupName());
|
||||
Assert.assertEquals("zaw2", full.getWeekTable().getDay(1).getLesson(0).getGroupName());
|
||||
Assert.assertEquals("wf2", full.getWeekTable().getDay(1).getLesson(3).getGroupName());
|
||||
Assert.assertEquals("zaw1", full.getWeekTable().getDay(3).getLesson(1).getGroupName());
|
||||
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getGroupName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonStartTimeTest() throws Exception {
|
||||
Assert.assertEquals("08:00", std.getWeekTable().getDay(0).getLesson(0).getStartTime());
|
||||
Assert.assertEquals("14:10", std.getWeekTable().getDay(3).getLesson(7).getStartTime());
|
||||
Assert.assertEquals("07:10", full.getWeekTable().getDay(0).getLesson(0).getStartTime());
|
||||
Assert.assertEquals("12:20", full.getWeekTable().getDay(2).getLesson(6).getStartTime());
|
||||
Assert.assertEquals("12:20", holidays.getWeekTable().getDay(2).getLesson(6).getStartTime());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonEndTimeTest() throws Exception {
|
||||
Assert.assertEquals("08:45", std.getWeekTable().getDay(1).getLesson(0).getEndTime());
|
||||
Assert.assertEquals("12:15", std.getWeekTable().getDay(2).getLesson(4).getEndTime());
|
||||
Assert.assertEquals("07:55", full.getWeekTable().getDay(1).getLesson(0).getEndTime());
|
||||
Assert.assertEquals("19:00", full.getWeekTable().getDay(3).getLesson(13).getEndTime());
|
||||
Assert.assertEquals("19:00", holidays.getWeekTable().getDay(3).getLesson(13).getEndTime());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsEmptyTest() throws Exception {
|
||||
Assert.assertFalse(std.getWeekTable().getDay(1).getLesson(4).isEmpty());
|
||||
Assert.assertTrue(std.getWeekTable().getDay(3).getLesson(7).isEmpty());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(1).isEmpty());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(2).isEmpty());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(7).isEmpty());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(2).getLesson(9).isEmpty());
|
||||
Assert.assertTrue(holidays.getWeekTable().getDay(0).getLesson(5).isEmpty());
|
||||
Assert.assertTrue(holidays.getWeekTable().getDay(4).getLesson(13).isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsDivisionIntoGroupsTest() throws Exception {
|
||||
Assert.assertTrue(std.getWeekTable().getDay(0).getLesson(2).isDivisionIntoGroups());
|
||||
Assert.assertTrue(std.getWeekTable().getDay(4).getLesson(0).isDivisionIntoGroups());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(7).isDivisionIntoGroups());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isDivisionIntoGroups());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(3).getLesson(1).isDivisionIntoGroups());
|
||||
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isDivisionIntoGroups());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsPlanningTest() throws Exception {
|
||||
Assert.assertFalse(std.getWeekTable().getDay(4).getLesson(4).isPlanning());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(1).isPlanning());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isPlanning());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(4).getLesson(0).isPlanning());
|
||||
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isPlanning());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsRealizedTest() throws Exception {
|
||||
Assert.assertTrue(std.getWeekTable().getDay(3).getLesson(3).isRealized());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(0).getLesson(1).isRealized());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isRealized());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(0).isRealized());
|
||||
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isRealized());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsMovedOrCanceledTest() throws Exception {
|
||||
Assert.assertFalse(std.getWeekTable().getDay(3).getLesson(3).isMovedOrCanceled());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(0).getLesson(7).isMovedOrCanceled());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(3).isMovedOrCanceled());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(0).isMovedOrCanceled());
|
||||
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isMovedOrCanceled());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLessonIsNewMovedInOrChangedTest() throws Exception {
|
||||
Assert.assertFalse(std.getWeekTable().getDay(3).getLesson(3).isNewMovedInOrChanged());
|
||||
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(1).isNewMovedInOrChanged());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(2).isNewMovedInOrChanged());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isNewMovedInOrChanged());
|
||||
Assert.assertTrue(full.getWeekTable().getDay(3).getLesson(1).isNewMovedInOrChanged());
|
||||
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isNewMovedInOrChanged());
|
||||
}
|
||||
}
|
@ -1,106 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class BasicInformationTest extends StudentAndParentTestCase {
|
||||
|
||||
private BasicInformation basicInformation;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
basicInformation = new BasicInformation(getSnp("UczenDanePodstawowe.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalFirstNameTest() throws Exception {
|
||||
Assert.assertEquals("Maria", basicInformation.getPersonalData().getFirstName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalSurnameTest() throws Exception {
|
||||
Assert.assertEquals("Kamińska", basicInformation.getPersonalData().getSurname());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalFirstAndLastNameTest() throws Exception {
|
||||
Assert.assertEquals("Maria Kamińska",
|
||||
basicInformation.getPersonalData().getFirstAndLastName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalNameTest() throws Exception {
|
||||
Assert.assertEquals("Maria Aneta Kamińska", basicInformation.getPersonalData().getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalDateAndBirthPlaceTest() throws Exception {
|
||||
Assert.assertEquals("01.01.1900, Warszawa",
|
||||
basicInformation.getPersonalData().getDateAndBirthPlace());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalPeselTest() throws Exception {
|
||||
Assert.assertEquals("12345678900", basicInformation.getPersonalData().getPesel());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalGenderTest() throws Exception {
|
||||
Assert.assertEquals("Kobieta", basicInformation.getPersonalData().getGender());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isPersonalPolishCitizenshipTest() throws Exception {
|
||||
Assert.assertTrue(basicInformation.getPersonalData().isPolishCitizenship());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalFamilyNameTest() throws Exception {
|
||||
Assert.assertEquals("Nowak", basicInformation.getPersonalData().getFamilyName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPersonalParentsNames() throws Exception {
|
||||
Assert.assertEquals("Gabriela, Kamil",
|
||||
basicInformation.getPersonalData().getParentsNames());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBasicAddressTest() throws Exception {
|
||||
Assert.assertEquals("ul. Sportowa 16, 00-123 Warszawa",
|
||||
basicInformation.getAddressData().getAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBasicRegisteredAddressTest() throws Exception {
|
||||
Assert.assertEquals("ul. Sportowa 17, 00-123 Warszawa",
|
||||
basicInformation.getAddressData().getRegisteredAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBasicCorrespondenceAddressTest() throws Exception {
|
||||
Assert.assertEquals("ul. Sportowa 18, 00-123 Warszawa",
|
||||
basicInformation.getAddressData().getCorrespondenceAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getContactPhoneNumberTest() throws Exception {
|
||||
Assert.assertEquals("005554433",
|
||||
basicInformation.getContactDetails().getPhoneNumber());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getContactCellPhoneNumberTest() throws Exception {
|
||||
Assert.assertEquals("555444333",
|
||||
basicInformation.getContactDetails().getCellPhoneNumber());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getContactEmailTest() throws Exception {
|
||||
Assert.assertEquals("wulkanowy@example.null",
|
||||
basicInformation.getContactDetails().getEmail());
|
||||
}
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
package io.github.wulkanowy.api.user;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.github.wulkanowy.api.StudentAndParentTestCase;
|
||||
|
||||
public class FamilyInformationTest extends StudentAndParentTestCase {
|
||||
|
||||
private FamilyInformation familyInformation;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
familyInformation = new FamilyInformation(getSnp("UczenDanePodstawowe.html"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFamilyMembers() throws Exception {
|
||||
Assert.assertEquals(2, familyInformation.getFamilyMembers().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNameTest() throws Exception {
|
||||
List<FamilyMember> list = familyInformation.getFamilyMembers();
|
||||
Assert.assertEquals("Marianna Pająk", list.get(0).getName());
|
||||
Assert.assertEquals("Dawid Świątek", list.get(1).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getKinshipTest() throws Exception {
|
||||
List<FamilyMember> list = familyInformation.getFamilyMembers();
|
||||
Assert.assertEquals("matka", list.get(0).getKinship());
|
||||
Assert.assertEquals("ojciec", list.get(1).getKinship());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAddressTest() throws Exception {
|
||||
List<FamilyMember> list = familyInformation.getFamilyMembers();
|
||||
Assert.assertEquals("ul. Sportowa 16, 00-123 Warszawa", list.get(0).getAddress());
|
||||
Assert.assertEquals("ul. Sportowa 18, 00-123 Warszawa", list.get(1).getAddress());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTelephonesTest() throws Exception {
|
||||
List<FamilyMember> list = familyInformation.getFamilyMembers();
|
||||
Assert.assertEquals("555111222", list.get(0).getTelephones());
|
||||
Assert.assertEquals("555222111", list.get(1).getTelephones());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getEmailTest() throws Exception {
|
||||
List<FamilyMember> list = familyInformation.getFamilyMembers();
|
||||
Assert.assertEquals("wulkanowy@example.null", list.get(0).getEmail());
|
||||
Assert.assertEquals("wulkanowy@example.null", list.get(1).getEmail());
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Oceny</title>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Oceny</h1>
|
||||
<div class="filters">
|
||||
<div>
|
||||
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
|
||||
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
|
||||
<option value="1234">1</option>
|
||||
<option selected="selected" value="1235">2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<footer>wersja: 17.05.0000.24042</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,24 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Uonet+</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="startScreen">
|
||||
<div class="holder">
|
||||
<div class="content">
|
||||
<div class="panel linkownia pracownik klient">
|
||||
<a href="https://uonetplus-opiekun.vulcan.net.pl/symbol/534213/Start/Index/">
|
||||
<div class="imagedHeader directLink">
|
||||
<div id="idEmptyAppUczeń">
|
||||
<div class="name">Uczeń</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,37 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Strona główna</title>
|
||||
</head>
|
||||
<body>
|
||||
<ul id="idSection">
|
||||
<li>
|
||||
<label for="uczenDropDownList">Uczeń:</label>
|
||||
<select id="uczenDropDownList" name="uczenDropDownList">
|
||||
<option selected="selected"
|
||||
value="https://uonetplus-opiekun.fakelog.cf/Default/123456/Uczen/UczenOnChange?&id=100">
|
||||
Jan Kowal
|
||||
</option>
|
||||
</select>
|
||||
</li>
|
||||
<li>
|
||||
<label for="dziennikDropDownList">Dziennik:</label>
|
||||
<select id="dziennikDropDownList" name="dziennikDropDownList">
|
||||
<option selected="selected"
|
||||
value="https://uonetplus-opiekun.fakelog.cf/Default/123456/Dziennik/DziennikOnChange?&id=1300">
|
||||
3Ti 2017
|
||||
</option>
|
||||
<option value="https://uonetplus-opiekun.fakelog.cf/Default/123456/Dziennik/DziennikOnChange?&id=1200">
|
||||
2Ti 2016
|
||||
</option>
|
||||
<option value="https://uonetplus-opiekun.fakelog.cf/Default/123456/Dziennik/DziennikOnChange?&id=1100">
|
||||
1Ti 2015
|
||||
</option>
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<footer>wersja: 17.09.0008.26553</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,408 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Frekwencja</title>
|
||||
<style>
|
||||
.x-sp-nieobecny-w-oddziale:before {
|
||||
content: 'nieobecny w oddziale';
|
||||
background: grey;
|
||||
}
|
||||
.x-obecnosc:before {
|
||||
content: 'obecność';
|
||||
background: green;
|
||||
}
|
||||
.presentData td:not(.padding-zero):not(.x-sp-nieobecny-w-oddziale):not(:first-child):before {
|
||||
content: 'pusta';
|
||||
background: grey;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Frekwencja</h1>
|
||||
<table class="presentData">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Lekcja</th>
|
||||
<th>poniedziałek<br>31.08.2015</th>
|
||||
<th>wtorek<br>01.09.2015</th>
|
||||
<th>środa<br>02.09.2015</th>
|
||||
<th>czwartek<br>03.09.2015</th>
|
||||
<th>piątek<br>04.09.2015</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Uroczyste rozpoczęcie roku szkolnego 2015/2016</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Wychowanie do życia w rodzinie</span>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język angielski</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język niemiecki</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Systemy operacyjne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Chemia</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Systemy operacyjne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Geografia</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Tworzenie stron internetowych</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Matematyka</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język polski</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Tworzenie stron internetowych</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Fizyka</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Matematyka</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Wychowanie fizyczne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język polski</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Historia</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Wychowanie fizyczne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td class="x-sp-nieobecny-w-oddziale"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h1 id="statystyki">Statystyki</h1>
|
||||
<div>
|
||||
<label for="idPrzedmiot">Przedmiot:</label>
|
||||
<select id="idPrzedmiot" name="idPrzedmiot">
|
||||
<option value="-1">Wszystkie</option>
|
||||
<option value="1">Religia</option>
|
||||
<option value="4">Język polski</option>
|
||||
<option value="5">Język angielski</option>
|
||||
<option value="9">Język niemiecki</option>
|
||||
<option value="50">Historia</option>
|
||||
<option value="56">Wiedza o społeczeństwie</option>
|
||||
<option value="58">Matematyka</option>
|
||||
<option value="59">Fizyka</option>
|
||||
<option value="61">Chemia</option>
|
||||
<option value="63">Biologia</option>
|
||||
<option value="64">Geografia</option>
|
||||
<option value="71">Informatyka</option>
|
||||
<option value="75">Wychowanie fizyczne</option>
|
||||
<option value="88">Edukacja dla bezpieczeństwa</option>
|
||||
<option value="91">Wychowanie do życia w rodzinie</option>
|
||||
<option value="94">Zajęcia z wychowawcą</option>
|
||||
<option value="106">Techniki biurowe</option>
|
||||
<option value="108">Urządzenia techniki komputerowej</option>
|
||||
<option value="109">Naprawa komputera</option>
|
||||
<option value="113">Systemy operacyjne</option>
|
||||
<option value="114">Sieci komputerowe i administrowanie sieciami</option>
|
||||
<option value="118">Tworzenie stron internetowych</option>
|
||||
<option value="492">Opieka nad uczniami</option>
|
||||
<option value="664">Fizyka doświadczalna</option>
|
||||
<option value="0">Brak opisu lekcji</option>
|
||||
</select>
|
||||
</div>
|
||||
<h2>Frekwencja od początku roku szkolnego: 100,00%</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>IX</th>
|
||||
<th>X</th>
|
||||
<th>XI</th>
|
||||
<th>XII</th>
|
||||
<th>I</th>
|
||||
<th>II</th>
|
||||
<th>III</th>
|
||||
<th>IV</th>
|
||||
<th>V</th>
|
||||
<th>VI</th>
|
||||
<th>VII</th>
|
||||
<th>VIII</th>
|
||||
<th>Razem</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Obecność</td>
|
||||
<td>142</td>
|
||||
<td>143</td>
|
||||
<td>139</td>
|
||||
<td>110</td>
|
||||
<td>131</td>
|
||||
<td>75</td>
|
||||
<td>126</td>
|
||||
<td>139</td>
|
||||
<td>92</td>
|
||||
<td>114</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>1211</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nieobecność nieusprawiedliwiona</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nieobecność usprawiedliwiona</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nieobecność z przyczyn szkolnych</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spóźnienie nieusprawiedliwione</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spóźnienie usprawiedliwione</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Zwolnienie</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</main>
|
||||
<footer>wersja: 17.07.0002.24480</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,498 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Frekwencja</title>
|
||||
<style>
|
||||
.x-obecnosc:before {
|
||||
content: 'obecność';
|
||||
background: green;
|
||||
}
|
||||
.x-nieobecnosc-nieuspr:before {
|
||||
content: 'nieobecność nieusprawiedliwiona';
|
||||
background: red;
|
||||
}
|
||||
.x-nieobecnosc-uspr:before {
|
||||
content: 'nieobecność usprawiedliwiona';
|
||||
background: orange;
|
||||
}
|
||||
.x-nieobecnosc-przycz-szkol:before {
|
||||
content: 'nieobecność z przyczyn szkolnych';
|
||||
background: lightblue;
|
||||
}
|
||||
.x-sp-nieusprawiedliwione:before {
|
||||
content: 'spóźnienie nieusprawiedliwione';
|
||||
background: yellow;
|
||||
}
|
||||
.x-sp-spr:before {
|
||||
content: 'spóźnienie usprawiedliwione';
|
||||
background: black;
|
||||
color: white;
|
||||
}
|
||||
.x-sp-zwolnienie:before {
|
||||
content: 'zwolnienie';
|
||||
background: purple;
|
||||
}
|
||||
.x-sp-nieobecny-w-oddziale:before {
|
||||
content: 'nieobecny w oddziale';
|
||||
background: grey;
|
||||
}
|
||||
.x-obecnosc:before {
|
||||
content: 'obecność';
|
||||
background: green;
|
||||
}
|
||||
.presentData td:not(.padding-zero):not(.x-sp-nieobecny-w-oddziale):not(:first-child):before {
|
||||
content: 'pusta';
|
||||
background: grey;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Frekwencja</h1>
|
||||
<table class="presentData">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Lekcja</th>
|
||||
<th>poniedziałek<br>05.09.2016</th>
|
||||
<th>wtorek<br>06.09.2016</th>
|
||||
<th>środa<br>07.09.2016</th>
|
||||
<th>czwartek<br>08.09.2016</th>
|
||||
<th>piątek<br>09.09.2016</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Multimedia i grafika komputerowa</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Użytkowanie urządzeń peryferyjnych komputera</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Religia</span>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język niemiecki</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Użytkowanie urządzeń peryferyjnych komputera</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język niemiecki</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-uspr">
|
||||
<span>Sieci komputerowe i administrowanie sieciami</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Fizyka</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Historia</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Wychowanie fizyczne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-uspr">
|
||||
<span>Wiedza o kulturze</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Naprawa komputera</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Wychowanie fizyczne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język angielski</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Wychowanie fizyczne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-uspr">
|
||||
<span>Język polski</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Sieci komputerowe i administrowanie sieciami</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Metodologia programowania</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-przycz-szkol">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Matematyka</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-uspr">
|
||||
<span>Metodologia programowania</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język niemiecki</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-sp-nieusprawiedliwione">
|
||||
<span>Sieci komputerowe i administrowanie sieciami</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Język polski</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Podstawy przedsiębiorczości</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-uspr">
|
||||
<span>Matematyka</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Fizyka</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-sp-spr">
|
||||
<span>Język polski</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Systemy operacyjne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Zajęcia z wychowawcą</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-uspr">
|
||||
<span>Religia</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td></td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-nieobecnosc-nieuspr">
|
||||
<span>Naprawa komputera</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Systemy operacyjne</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-obecnosc">
|
||||
<span>Urządzenia techniki komputerowej</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="padding-zero">
|
||||
<div class="x-sp-zwolnienie">
|
||||
<span>Zajęcia z wychowawcą</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h1 id="statystyki">Statystyki</h1>
|
||||
<div>
|
||||
<label for="idPrzedmiot">Przedmiot:</label>
|
||||
<select id="idPrzedmiot" name="idPrzedmiot">
|
||||
<option value="-1">Wszystkie</option>
|
||||
<option value="1">Religia</option>
|
||||
<option value="4">Język polski</option>
|
||||
<option value="5">Język angielski</option>
|
||||
<option value="9">Język niemiecki</option>
|
||||
<option value="50">Historia</option>
|
||||
<option value="57">Wiedza o kulturze</option>
|
||||
<option value="58">Matematyka</option>
|
||||
<option value="59">Fizyka</option>
|
||||
<option value="70">Podstawy przedsiębiorczości</option>
|
||||
<option value="75">Wychowanie fizyczne</option>
|
||||
<option value="77">Praktyka zawodowa</option>
|
||||
<option value="91">Wychowanie do życia w rodzinie</option>
|
||||
<option value="94">Zajęcia z wychowawcą</option>
|
||||
<option value="108">Urządzenia techniki komputerowej</option>
|
||||
<option value="109">Naprawa komputera</option>
|
||||
<option value="110">Użytkowanie urządzeń peryferyjnych komputera</option>
|
||||
<option value="113">Systemy operacyjne</option>
|
||||
<option value="114">Sieci komputerowe i administrowanie sieciami</option>
|
||||
<option value="116">Multimedia i grafika komputerowa</option>
|
||||
<option value="120">Metodologia programowania</option>
|
||||
<option value="492">Opieka nad uczniami</option>
|
||||
<option value="0">Brak opisu lekcji</option>
|
||||
</select>
|
||||
</div>
|
||||
<h2>Frekwencja od początku roku szkolnego: 80,94%</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>IX</th>
|
||||
<th>X</th>
|
||||
<th>XI</th>
|
||||
<th>XII</th>
|
||||
<th>I</th>
|
||||
<th>II</th>
|
||||
<th>III</th>
|
||||
<th>IV</th>
|
||||
<th>V</th>
|
||||
<th>VI</th>
|
||||
<th>VII</th>
|
||||
<th>VIII</th>
|
||||
<th>Razem</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Obecność</td>
|
||||
<td>135</td>
|
||||
<td>103</td>
|
||||
<td>108</td>
|
||||
<td>54</td>
|
||||
<td>37</td>
|
||||
<td>100</td>
|
||||
<td>33</td>
|
||||
<td>90</td>
|
||||
<td>103</td>
|
||||
<td>59</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>822</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nieobecność nieusprawiedliwiona</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>2</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>4</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nieobecność usprawiedliwiona</td>
|
||||
<td>6</td>
|
||||
<td>27</td>
|
||||
<td>29</td>
|
||||
<td>30</td>
|
||||
<td>44</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>16</td>
|
||||
<td>13</td>
|
||||
<td>27</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>192</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nieobecność z przyczyn szkolnych</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>7</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spóźnienie nieusprawiedliwione</td>
|
||||
<td>4</td>
|
||||
<td></td>
|
||||
<td>1</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>2</td>
|
||||
<td>2</td>
|
||||
<td></td>
|
||||
<td>2</td>
|
||||
<td>1</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Spóźnienie usprawiedliwione</td>
|
||||
<td>1</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Zwolnienie</td>
|
||||
<td></td>
|
||||
<td>1</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>1</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</main>
|
||||
<footer>wersja: 17.07.0002.24480</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,85 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Terminarz sprawdzianów</title>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Sprawdziany</h1>
|
||||
<h2>Tydzień 23.10.2017 - 29.10.2017</h2>
|
||||
<div>
|
||||
<h2>poniedziałek, 23.10.2017</h2>
|
||||
<article>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Przedmiot i grupa:</div>
|
||||
<div class="wartosc">Sieci komputerowe 3Ti|zaw2</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Rodzaj sprawdzianu:</div>
|
||||
<div class="wartosc">Sprawdzian</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Opis:</div>
|
||||
<div class="wartosc">Łącza danych</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Nauczyciel i data wpisu:</div>
|
||||
<div class="wartosc">Adam Wiśniewski [AW], 16.10.2017</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
<div>
|
||||
<h2>wtorek, 24.10.2017</h2>
|
||||
<article>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Przedmiot i grupa:</div>
|
||||
<div class="wartosc">Język angielski 3Ti|J1</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Rodzaj sprawdzianu:</div>
|
||||
<div class="wartosc">Sprawdzian</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Opis:</div>
|
||||
<div class="wartosc">Czasy teraźniejsze</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Nauczyciel i data wpisu:</div>
|
||||
<div class="wartosc">Natalia Nowak [NN], 17.10.2017</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div>
|
||||
<h2>piątek, 27.10.2017</h2>
|
||||
<article>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Przedmiot i grupa:</div>
|
||||
<div class="wartosc">Metodologia programowania 3Ti|zaw2</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Rodzaj sprawdzianu:</div>
|
||||
<div class="wartosc">Sprawdzian</div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Opis:</div>
|
||||
<div class="wartosc"></div>
|
||||
</div>
|
||||
<div class="daneWiersz">
|
||||
<div class="tytul">Nauczyciel i data wpisu:</div>
|
||||
<div class="wartosc">Małgorzata Nowacka [MN], 16.10.2017</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div class="navigation">
|
||||
<a href="/symbol/123456/Sprawdziany.mvc/Terminarz?data=636437088000000000&rokSzkolny=2017&rodzajWidoku=2" class="button-prev">Poprzedni tydzień</a>
|
||||
<a href="/symbol/123456/Sprawdziany.mvc/Terminarz?data=636449184000000000&rokSzkolny=2017&rodzajWidoku=2" class="button-next">Następny tydzień</a>
|
||||
</div>
|
||||
</main>
|
||||
<footer>wersja: 17.08.0001.24874</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,108 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Oceny</title>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Oceny</h1>
|
||||
<div class="filters">
|
||||
<div>
|
||||
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
|
||||
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
|
||||
<option value="1234567">1</option>
|
||||
<option selected="selected" value="7654321">2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<table class="ocenySzczegoly-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Przedmiot</th>
|
||||
<th>Ocena cząstkowa</th>
|
||||
<th>Opis</th>
|
||||
<th>Waga</th>
|
||||
<th>Data</th>
|
||||
<th>Nauczyciel</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Zachowanie</td>
|
||||
<td>Brak ocen</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Zajęcia z wychowawcą</td>
|
||||
<td class="break-word">
|
||||
<span class="ocenaCzastkowa" style="color:#000000;">5</span>
|
||||
</td>
|
||||
<td class="break-word">A1, Dzień Kobiet w naszej klasie</td>
|
||||
<td>1,00</td>
|
||||
<td>21.03.2017</td>
|
||||
<td>Patryk Maciejewski</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Edukacja dla bezpieczeństwa</td>
|
||||
<td class="break-word">
|
||||
<span class="ocenaCzastkowa" style="color:#F04C4C;">4-</span>
|
||||
</td>
|
||||
<td class="break-word">S1, PIERWSZA POMOC I RESUSCYTACJA</td>
|
||||
<td>5,00</td>
|
||||
<td>31.03.2017</td>
|
||||
<td>Weronika Ratajczak</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fizyka</td>
|
||||
<td class="break-word">
|
||||
<span class="ocenaCzastkowa" style="color:#6ECD07;">2</span>
|
||||
</td>
|
||||
<td class="break-word">O, Odpowiedź</td>
|
||||
<td>3,00</td>
|
||||
<td>25.06.2017</td>
|
||||
<td>Jakub Michalak</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Język angielski</td>
|
||||
<td class="break-word">
|
||||
<span class="ocenaCzastkowa" style="color:#1289F7;">5</span>
|
||||
</td>
|
||||
<td class="break-word">BW3, Writing</td>
|
||||
<td>3,00</td>
|
||||
<td>02.06.2017</td>
|
||||
<td>Oliwia Woźniak</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Wiedza o społeczeństwie</td>
|
||||
<td>Brak ocen</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Wychowanie fizyczne</td>
|
||||
<td class="break-word"><span class="ocenaCzastkowa" style="color:#6ECD07;">1</span></td>
|
||||
<td class="break-word">STR</td>
|
||||
<td>8,00</td>
|
||||
<td>02.04.2017</td>
|
||||
<td>Klaudia Dziedzic</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Język polski</td>
|
||||
<td class="break-word"><span class="ocenaCzastkowa" style="color:#6ECD07;">1</span></td>
|
||||
<td class="break-word">K, Kordian</td>
|
||||
<td>5,00</td>
|
||||
<td>06.02.2017</td>
|
||||
<td>Amelia Stępień</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</main>
|
||||
<footer>wersja: 17.02.0000.23328</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,70 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Oceny</title>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Oceny</h1>
|
||||
<div class="filters">
|
||||
<div>
|
||||
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
|
||||
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
|
||||
<option selected="selected" value="1234">1</option>
|
||||
<option value="1235">2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<table class="ocenyZwykle-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Przedmiot</th>
|
||||
<th>Oceny cząstkowe</th>
|
||||
<th>Średnia</th>
|
||||
<th>Przewidywana ocena roczna</th>
|
||||
<th>Ocena roczna</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Zachowanie</td>
|
||||
<td class="break-word">Brak ocen</td>
|
||||
<td>-</td>
|
||||
<td>bardzo dobre</td>
|
||||
<td>bardzo dobre</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Język polski</td>
|
||||
<td class="break-word">0</td>
|
||||
<td>3,53</td>
|
||||
<td>-</td>
|
||||
<td>dobry</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Wychowanie fizyczne</td>
|
||||
<td class="break-word">0</td>
|
||||
<td>5,05</td>
|
||||
<td>bardzo dobry</td>
|
||||
<td>celujący</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Język angielski</td>
|
||||
<td class="break-word">0</td>
|
||||
<td>4,4</td>
|
||||
<td>4/5</td>
|
||||
<td>bardzo dobry</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Wiedza o społeczeństwie</td>
|
||||
<td class="break-word">Brak ocen</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</main>
|
||||
<footer>wersja: 17.02.0000.23328</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,64 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Witryna ucznia i rodzica – Oceny</title>
|
||||
</head>
|
||||
<body>
|
||||
<main class="mainContainer">
|
||||
<h1>Oceny</h1>
|
||||
<div class="filters">
|
||||
<div>
|
||||
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
|
||||
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
|
||||
<option value="1234">1</option>
|
||||
<option selected="selected" value="1235">2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<table class="ocenyZwykle-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Przedmiot</th>
|
||||
<th>Oceny cząstkowe</th>
|
||||
<th>Przewidywana ocena roczna</th>
|
||||
<th>Ocena roczna</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Zachowanie</td>
|
||||
<td class="break-word">-</td>
|
||||
<td>bardzo dobre</td>
|
||||
<td>bardzo dobre</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Praktyka zawodowa</td>
|
||||
<td class="break-word">-</td>
|
||||
<td>-</td>
|
||||
<td>celujący</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Metodologia programowania</td>
|
||||
<td class="break-word">-</td>
|
||||
<td>bardzo dobry</td>
|
||||
<td>celujący</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Podstawy przedsiębiorczości</td>
|
||||
<td class="break-word">-</td>
|
||||
<td>3/4</td>
|
||||
<td>dostateczny</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Wychowanie do życia w rodzinie</td>
|
||||
<td class="break-word">-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</main>
|
||||
<footer>wersja: 17.05.0000.24042</footer>
|
||||
</body>
|
||||
</html>
|
@ -1,15 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Logowanie</title>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1">
|
||||
<div>
|
||||
Adres <b>example@wulkanowy.io</b> nie został zarejestrowany w dzienniku uczniowskim jako adres rodzica, bądź ucznia.
|
||||
Jeśli jesteś rodzicem (prawnym opiekunem) ucznia (lub uczniem) szkoły korzystającej z dziennika „UONET +” udaj się do
|
||||
wychowawcy i poproś o wprowadzenie Twojego adresu e-mail do Twoich danych.
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
@ -1,17 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Working...</title>
|
||||
</head>
|
||||
<body>
|
||||
<form method="POST" name="hiddenform" action="https://fake-log.com/Default/LoginEndpoint.aspx">
|
||||
<input type="hidden" name="wa" value="wsignin1.0">
|
||||
<input type="hidden" name="wresult" value="<trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512"><trust:RequestSecurityTokenResponse Context="https://uonetplus.fake-log.com/Default/LoginEndpoint.aspx"><trust:RequestedSecurityToken><saml:Assertion AssertionID="_12345678-1234-1234-1234-1234567890ab" IssueInstant="2017-10-18T22:00:29.006Z" Issuer="CUFSTokenService" MajorVersion="1" MinorVersion="1" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"><saml:AttributeStatement><saml:Attribute AttributeName="UserInstance" AttributeNamespace="http://schemas.fake-log.com/ws/identity/claims"><saml:AttributeValue>Default</saml:AttributeValue><saml:AttributeValue>demo12345</saml:AttributeValue><saml:AttributeValue>incorrect value</saml:AttributeValue><saml:AttributeValue>warszawa</saml:AttributeValue><saml:AttributeValue>asdf</saml:AttributeValue><saml:AttributeValue>asdfsdf</saml:AttributeValue></saml:Attribute></saml:AttributeStatement></saml:Assertion></trust:RequestedSecurityToken></trust:RequestSecurityTokenResponse></trust:RequestSecurityTokenResponseCollection>">
|
||||
<input type="hidden" name="wctx" value="https://fake-log.com/Default/LoginEndpoint.aspx">
|
||||
<noscript>
|
||||
<p>Script is disabled. Click Submit to continue.</p>
|
||||
<input type="submit" value="Submit">
|
||||
</noscript>
|
||||
</form>
|
||||
<script language="javascript">window.setTimeout('document.forms[0].submit()', 0);</script>
|
||||
</body>
|
||||
</html>
|
@ -1,18 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Logowanie (demo123)</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="MainDiv">
|
||||
<form>
|
||||
<div class="ErrorMessage center">
|
||||
Zła nazwa użytkownika lub hasło
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div id="globalfooter">
|
||||
<div id="left">16.2.0.4450</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,22 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Dziennik UONET+</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="MainPage_InfoPage">
|
||||
<div class="startScreen">
|
||||
<div class="topBar">
|
||||
<div class="loginBox">
|
||||
<div>
|
||||
<a href="/LoginEndpoint.aspx" class="loginButton"></a>
|
||||
<a href="/LoginEndpoint.aspx" class="loginButton">Zaloguj się</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomBar"><span>Uonet+ wersja 17.09.0007.26300</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,16 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Uonet+</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="startScreen">
|
||||
<div class="topBar">
|
||||
<div class="panelTopBar">
|
||||
<span class="userdata">example@wulkanowy.io (<a href="/demo123/LoginEndpoint.aspx?logout=true">wyloguj</a>)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,23 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Przerwa techniczna</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="page_error">
|
||||
<div id="info_error">
|
||||
<div class="info_error">
|
||||
<h1>Przerwa techniczna</h1>
|
||||
<p>Aktualnie trwają prace konserwacyjne. Witryna będzie dostępna za kilka minut.</p>>
|
||||
</div>
|
||||
<div class="error_link">
|
||||
<a href="http://www.vulcan.edu.pl">Przejdź do strony głównej</a>
|
||||
<br>
|
||||
<br>
|
||||
<p>3</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,18 +0,0 @@
|
||||
<trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
|
||||
<trust:RequestSecurityTokenResponse Context="https://uonetplus.fake-log.com/Default/LoginEndpoint.aspx">
|
||||
<trust:RequestedSecurityToken>
|
||||
<saml:Assertion AssertionID="_12345678-1234-1234-1234-1234567890ab" IssueInstant="2017-10-18T22:00:29.006Z" Issuer="CUFSTokenService" MajorVersion="1" MinorVersion="1" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
|
||||
<saml:AttributeStatement>
|
||||
<saml:Attribute AttributeName="UserInstance" AttributeNamespace="http://schemas.fake-log.com/ws/identity/claims">
|
||||
<saml:AttributeValue>Default</saml:AttributeValue>
|
||||
<saml:AttributeValue>demo12345</saml:AttributeValue>
|
||||
<saml:AttributeValue>incorrect value</saml:AttributeValue>
|
||||
<saml:AttributeValue>warszawa</saml:AttributeValue>
|
||||
<saml:AttributeValue>asdf</saml:AttributeValue>
|
||||
<saml:AttributeValue>asdfsdf</saml:AttributeValue>
|
||||
</saml:Attribute>
|
||||
</saml:AttributeStatement>
|
||||
</saml:Assertion>
|
||||
</trust:RequestedSecurityToken>
|
||||
</trust:RequestSecurityTokenResponse>
|
||||
</trust:RequestSecurityTokenResponseCollection>
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"Id": 12345,
|
||||
"Tresc": "Witam, …. \nPozdrawiam Krzysztof Czerkas"
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user