Automated agent that logs into ManiaPlanet and sets a playlist based on lunar calendar. Uses skyfield for precise moon phase calculations and Selenium for web automation.
Runs daily at 00:00 UTC via GitHub Actions.
- π Playlist selection based on lunar phases (New Moon, Full Moon, Quarters)
- π₯οΈ Headless Chrome via Selenium
- βοΈ Configurable via environment variables
- π Automatic credential redaction in logs
-
Fork this repository
-
Add secrets (Settings β Secrets β Actions):
MANIAPLANET_LOGINβ your loginMANIAPLANET_PASSWORDβ your password
-
(Optional) Configure variables:
TARGET_URLβ playlist page URLLOGIN_URLβ login page URLPLAYLIST_IDSβ comma-separated IDs (e.g.3045, 3029)SPECIAL_PLAYLIST/DEFAULT_PLAYLIST
-
Run workflow manually or wait for scheduled run
Requirements: Python 3.14+
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtDry run (no browser):
$env:DRY_RUN="1"
python agent.pyFull run:
$env:MANIAPLANET_LOGIN="your_login"
$env:MANIAPLANET_PASSWORD="your_password"
python agent.py| Variable | Description |
|---|---|
PLAYLIST_IDS |
Comma-separated playlist IDs |
TARGET_URL |
Playlist management page |
LOGIN_URL |
Login page URL |
WAIT_TIMEOUT |
Selenium wait timeout (default: 30s) |
TEST_DATE |
Override date for testing (YYYY-MM-DD) |
Manual workflow (.github/workflows/chromedriver-provision.yml) to download and cache Chromedriver.
Variables:
CHROMEDRIVER_URLβ download URL for chromedriver archiveCHROMEDRIVER_SHA256β (optional) checksum for verification
Credentials stored in GitHub Secrets only. Logs are automatically redacted.
- Author:
tomekdot - Team:
vitalism-creative - Discord:
@tomekdot
MIT License. See LICENSE for details.