Skip to content

Client-specific Python/Selenium desktop automation that performs scheduled voting workflows across AquaRetro and serveur‑prive.net, with persistent Chrome profiles, cooldown-aware scheduling, and mtcaptcha solving.

License

Notifications You must be signed in to change notification settings

IzeLeam/SPNBotVote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPNBotVote (SPNBot)

SPNBotVote

Client-specific Python + Selenium desktop automation for scheduled voting browser workflows
Automates a recurring “vote” flow across AquaRetro and serveur-prive.net with a persistent Chrome profile, cooldown-aware scheduling, and mtcaptcha solving.

Keywords: python, selenium, browser automation, rpa, workflow automation, scheduling, windows, chromedriver, mtcaptcha

Status: proprietary / not open source.

What it does (high-level)

  • Runs scheduled voting cycles on two sites:
    • Opens the voting entry point on AquaRetro.
    • Switches to the external voting tab (Serveur-Privé.Net).
    • Completes the vote flow and returns to AquaRetro to confirm the vote.
  • Handles session persistence via a dedicated Chrome user-data profile (so the account stays logged in between runs).
  • Detects “already voted” states and adapts its schedule based on the cooldown.
  • Integrates with a third-party captcha-solving service for mtcaptcha-protected steps.

Engineering highlights

  • Selenium reliability patterns
    • Explicit waits and safe click helpers to reduce flakiness.
    • Automatic scrolling + JS click fallback when elements are intercepted.
  • Cooldown-aware scheduling
    • Tracks last vote and sleeps until the next allowed window.
    • Adds small randomized offsets to look less “machine-perfect”.
    • Uses wall-clock-based sleep chunks to behave well across Windows suspend/resume.
  • Operational guardrails (Windows)
    • Profile lock inspection and targeted Chrome process termination to avoid corrupted profiles.
  • Packaging
    • PyInstaller spec included (SPNBot.spec) to ship as a Windows console executable.
  • Logging
    • Colorized console logs + persistent file logging (logs/spnbot.log).

Tech stack

  • Python 3
  • Selenium 4 + ChromeDriver (managed via webdriver-manager)
  • python-dotenv / dotenv for configuration
  • 2Captcha client (2captcha-python) for captcha token retrieval
  • PyInstaller for packaging

Code structure (overview)

  • main.py — orchestrates the voting loop, initializes the browser profile, and schedules runs.
  • bot/
    • aquaretro.py — navigation + confirmation on AquaRetro.
    • spn.py — SPN vote flow + validation states.
    • driver.py — Selenium wait/click helpers.
  • captcha/solver.py — mtcaptcha sitekey extraction and token injection.
  • utils/
    • selenium.py — Chrome profile + driver bootstrap, local driver caching.
    • timer.py — cooldown + sleep-window logic.
    • profile_lock.py — Windows profile lock detection/killing.
    • logger.py — console/file logging.

Notes on scope & ethics

This repository is shown for portfolio/engineering demonstration. It was developed for a specific client context and is not intended as a general-purpose product or “one size fits all” automation. Any automation must be used only where you have explicit authorization and where it complies with the applicable terms of service and local laws.

Contact / custom work

If you need a client-specific desktop automation tool (browser automation, account workflows, scheduled tasks, packaging to a single Windows executable, etc.), you can contact me on Discord: izeleam.

About

Client-specific Python/Selenium desktop automation that performs scheduled voting workflows across AquaRetro and serveur‑prive.net, with persistent Chrome profiles, cooldown-aware scheduling, and mtcaptcha solving.

Topics

Resources

License

Stars

Watchers

Forks

Languages