⚠️ WARNING / 警告:
This project is intended for educational and testing purposes only. Any illegal or unauthorized use is strictly at your own risk.
本项目仅供学习和测试用途,任何不合法或未授权的使用风险自负。
- Automated Appointment Checking:
Reliably monitors the Munich registration office for available slots. - Dual Modes:
Use either a command-line interface or a modern GUI (src/gui/main.py
). - Service-Ready:
Deploy as a Windows service usingServiceWrapper
. - Logging:
Detailed logs are saved in thelogs/
directory for auditing and debugging. - Configurable:
All major parameters (service/location IDs, target date, intervals) are easily adjustable insrc/config.py
andsettings.toml
. - Progress Feedback:
CLI mode usestqdm
for progress bars; GUI mode displays real-time logs.
- Python: 3.11 or newer
- OS: Windows (service mode supported)
- Dependencies:
See pyproject.toml and requirements.txt for all required packages.
run.bat
This script will:
- Create a virtual environment.
- Install dependencies.
- Launch the CLI interface (
src/Main.py
).
rungui.bat
This launches the GUI (src/gui/main.py
) for a visual experience.
- Edit configuration in
src/config.py
orsettings.toml
as needed. - Run
run.bat
orpython src/Main.py
.
- Run
rungui.bat
orpython src/gui/main.py
. - The GUI displays logs and allows for easier monitoring.
You can configure the appointment checker using either src/config.py
(for advanced users) or the user-friendly settings.toml
file.
Open settings.toml
and adjust the following parameters:
Name | Description | Example |
---|---|---|
SERVICE_ID |
The unique ID for the service you want to book (e.g., registration, passport, etc.). | "10339027" |
LOCATION_ID |
The unique ID for the office/location where you want the appointment. | "10187259" |
TARGET_DATE |
The specific date you want to book (format: YYYY-MM-DD ). Leave empty to list all dates. |
"2025-06-07" |
TIMEOUT |
Maximum time (in seconds) to wait for web elements to load (Selenium explicit wait). | 20 |
BREAK_INTERVAL |
Time (in seconds) to wait between each check for available appointments. | 5 |
RESTART_INTERVAL |
Time (in seconds) after which the script will restart the browser session. | 35 |
HEADLESS |
Run browser in headless mode (true = no window, false = show browser window). |
true |
SERVICE_ID = "10339027" # Service type (change to your desired service)
LOCATION_ID = "10187259" # Location ID (change to your desired location)
TARGET_DATE = "2025-06-07" # Target date (leave empty to list all available dates)
TIMEOUT = 20 # Selenium explicit wait time (seconds)
BREAK_INTERVAL = 5 # Interval between checks (seconds)
RESTART_INTERVAL = 35 # Restart interval (seconds)
HEADLESS = true # Run browser in headless mode (no window)
- Open
settings.toml
in a text editor. - Change the values as needed (see table above).
- Save the file.
- Run the program as usual (
run.bat
,rungui.bat
, or directly with Python).
You can override any setting by exporting environment variables before running the program. For example:
$env:DYNACONF_SERVICE_ID="your_service_id"
$env:DYNACONF_LOCATION_ID="your_location_id"
python src/Main.py
- All logs are saved in the
logs/YYYY-MM-DD.log
file. - Logs are also displayed in real-time in the GUI.
For more details on configuration, see comments in settings.toml
and src/config.py
.
Use ServiceWrapper
to install and manage this tool as a Windows service:
# Install the service
python ServiceWrapper.py install
# Start the service
python ServiceWrapper.py start
# Stop the service
python ServiceWrapper.py stop
# Uninstall the service
python ServiceWrapper.py remove
- No appointments found:
Check yourSERVICE_ID
,LOCATION_ID
, andTARGET_DATE
in the config. - Webdriver errors:
Ensure Chrome is installed and up to date. - Permission issues:
Run as administrator if installing as a service. - Logs:
Review logs in thelogs/
directory for error details.
MIT License
© 2025 [Ylogos]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ANY ILLEGAL USE IS AT YOUR OWN RISK.