Skip to content

Latest commit

Β 

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŒ™ ManiaPlanet Playlist Agent

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.

✨ Features

  • πŸŒ— Playlist selection based on lunar phases (New Moon, Full Moon, Quarters)
  • πŸ–₯️ Headless Chrome via Selenium
  • βš™οΈ Configurable via environment variables
  • πŸ”’ Automatic credential redaction in logs

πŸš€ Quick Start

  1. Fork this repository

  2. Add secrets (Settings β†’ Secrets β†’ Actions):

    • MANIAPLANET_LOGIN – your login
    • MANIAPLANET_PASSWORD – your password
  3. (Optional) Configure variables:

    • TARGET_URL – playlist page URL
    • LOGIN_URL – login page URL
    • PLAYLIST_IDS – comma-separated IDs (e.g. 3045, 3029)
    • SPECIAL_PLAYLIST / DEFAULT_PLAYLIST
  4. Run workflow manually or wait for scheduled run

🧰 Local Development

Requirements: Python 3.14+

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Dry run (no browser):

$env:DRY_RUN="1"
python agent.py

Full run:

$env:MANIAPLANET_LOGIN="your_login"
$env:MANIAPLANET_PASSWORD="your_password"
python agent.py

βš™οΈ Configuration

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)

πŸ”§ Chromedriver Provisioning

Manual workflow (.github/workflows/chromedriver-provision.yml) to download and cache Chromedriver.

Variables:

  • CHROMEDRIVER_URL – download URL for chromedriver archive
  • CHROMEDRIVER_SHA256 – (optional) checksum for verification

πŸ”’ Security

Credentials stored in GitHub Secrets only. Logs are automatically redacted.

πŸ‘€ Contact

  • Author: tomekdot
  • Team: vitalism-creative
  • Discord: @tomekdot

πŸ“ License

MIT License. See LICENSE for details.

About

This agent logs into ManiaPlanet and selects a playlist based on the lunar month day.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages