URP Academic Affairs System Course Snatching Tool
Project description
URP Tools
Features
- Async login with captcha recognition and retry support
- Timetable export to Excel
- Teaching evaluation preview, selection, confirmation, and submission
- Course list preview, course-number filtering, course selection
- Continuous course-snatching mode
Requirements
- Python
>=3.10,<3.11 - Poetry
2.xfor development
[!CAUTION]
The current goal of this project is to be used on
jws.qgxy.cn
Installation
PyPI
pip install urp-tools
Install from source code
git clone https://github.com/Reversedeer/urp-academic-affairs-tools.git
cd urp-academic-affairs-tools
poetry install
Configuration
Create a .env file in the project root:
cp .env.example .env
Environment
| Variable | Description | Must | Default |
|---|---|---|---|
URP_BASE_URL |
URP base URL | Yes | https://jws.qgxy.cn |
URP_USERNAME |
Login username | Yes | null |
URP_PASSWORD |
Login password | Yes | null |
URP_DEFAULT_CHOICE |
Default evaluation choice | No | A |
URP_DEFAULT_COMMENT |
Default evaluation comment | No | 老师教学认真课程收获较大 |
URP_EVALUATION_WAIT_SECONDS |
Wait time before evaluation submission | No | 120 |
URP_EVALUATION_LIMIT |
Optional submission limit for evaluation | No | null |
URP_EVALUATION_CONCURRENCY |
Evaluation open/submit concurrency | No | 3 |
URP_COURSE_SNATCHING_ATTEMPTS |
Maximum snatching attempts; 0 means continuous mode |
No | 0 |
URP_COURSE_SNATCHING_CONCURRENCY |
Concurrent requests in snatching mode | No | 10 |
URP_COURSE_SNATCHING_RETRY_INTERVAL |
Delay between snatching rounds in seconds | No | 0.2 |
Usage
Run with Poetry
#Run with Poetry
poetry run urp-tools
#Run the PySide6 desktop interface
poetry run urp-tools-gui
#Run as a module
poetry run python -m urp_academic_affairs_tools.main
#Run the GUI as a module
poetry run python -m urp_academic_affairs_tools.gui
[!NOTE]
Due to server limitations, teaching evaluations require a 120-second submission wait.
Course selection displays a preview when the selection period is closed; the server still validates every submission.
Continuous course snatching stops after a successful response or a non-retryable course error.
License
This project is licensed under the Apache-2.0 License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file urp_tools-0.3.3.tar.gz.
File metadata
- Download URL: urp_tools-0.3.3.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bf86a14b578d1c24ad82509d1f805a5bc00288695ade5e73ccffcde1cc271d3
|
|
| MD5 |
deb5c510c810ca3d3a5b5bc08d3a369a
|
|
| BLAKE2b-256 |
9543041353fa1daf4b831fa9849f7a4cad39e5636551c50f5af782080a65b534
|
Provenance
The following attestation bundles were made for urp_tools-0.3.3.tar.gz:
Publisher:
release.yml on Reversedeer/urp-academic-affairs-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
urp_tools-0.3.3.tar.gz -
Subject digest:
5bf86a14b578d1c24ad82509d1f805a5bc00288695ade5e73ccffcde1cc271d3 - Sigstore transparency entry: 2164038499
- Sigstore integration time:
-
Permalink:
Reversedeer/urp-academic-affairs-tools@6701ac2c2690c604e30963f9df8b22a367cceaf4 -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/Reversedeer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6701ac2c2690c604e30963f9df8b22a367cceaf4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file urp_tools-0.3.3-py3-none-any.whl.
File metadata
- Download URL: urp_tools-0.3.3-py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c32504566ce4a3e973ac0ec35177816863199e21aa8358e8444cff6fac22d561
|
|
| MD5 |
c4e334c17bfe2cb06d02d0d1de3e7562
|
|
| BLAKE2b-256 |
532bbced4aac47360734bbc75af583febb7797cffbd4d36f52eadb5af3e56069
|
Provenance
The following attestation bundles were made for urp_tools-0.3.3-py3-none-any.whl:
Publisher:
release.yml on Reversedeer/urp-academic-affairs-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
urp_tools-0.3.3-py3-none-any.whl -
Subject digest:
c32504566ce4a3e973ac0ec35177816863199e21aa8358e8444cff6fac22d561 - Sigstore transparency entry: 2164038728
- Sigstore integration time:
-
Permalink:
Reversedeer/urp-academic-affairs-tools@6701ac2c2690c604e30963f9df8b22a367cceaf4 -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/Reversedeer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6701ac2c2690c604e30963f9df8b22a367cceaf4 -
Trigger Event:
push
-
Statement type: