Spaces:
Running
Running
Download target_maia.py from BlueMoonBot/bot: direct link, hf CLI and curl.
- Browser
- Download file 2.78 kB
-
https://huggingface.co/spaces/BlueMoonBot/bot/resolve/main/target_maia.py
- Command line
-
hf download hf://spaces/BlueMoonBot/bot/target_maia.py
-
curl -L -o target_maia.py https://huggingface.co/spaces/BlueMoonBot/bot/resolve/main/target_maia.py
2.78 kB
| import time | |
| import requests | |
| # --- CONFIGURATION --- | |
| TOKEN = "lip_OFiAuROPc2oEicqT1YQg" # Your Lichess Token | |
| TARGET_BOTS = ["maia1", "maia5", "maia9"] | |
| # Challenge settings (3 mins blitz, casual) | |
| CHALLENGE_DATA = { | |
| "rated": "false", | |
| "clock.limit": 180, # 180 seconds = 3 minutes | |
| "clock.increment": 0, # 0 seconds increment | |
| "variant": "standard" | |
| } | |
| # --------------------- | |
| HEADERS = {"Authorization": f"Bearer {TOKEN}"} | |
| def check_my_bot_status(): | |
| """Checks if your bot is currently busy playing a game.""" | |
| try: | |
| response = requests.get("https://lichess.org/api/account", headers=HEADERS) | |
| if response.status_code == 200: | |
| # If the account data returns an active game ID, your bot is busy | |
| return response.json().get("playing", False) | |
| except Exception as e: | |
| print(f"Error checking status: {e}") | |
| return True # Default to True on failure to avoid spamming challenges | |
| def send_challenge(target): | |
| """Sends a direct challenge to a specific bot.""" | |
| url = f"https://lichess.org/api/challenge/{target}" | |
| try: | |
| response = requests.post(url, headers=HEADERS, data=CHALLENGE_DATA) | |
| if response.status_code == 200: | |
| print(f"[SUCCESS] Sent a challenge to {target}!") | |
| return True | |
| elif response.status_code == 400: | |
| # Often means the target bot is already completely full/busy | |
| print(f"[BUSY] Tried challenging {target}, but they declined or are full.") | |
| else: | |
| print(f"[INFO] Couldn't challenge {target}. Status Code: {response.status_code}") | |
| except Exception as e: | |
| print(f"Network error: {e}") | |
| return False | |
| def main(): | |
| print("Targeted Maia Matchmaker Loop Started...") | |
| print("This script will cycle through Maia 1, 5, and 9 whenever your bot is idle.") | |
| while True: | |
| # 1. Check if your bot is already playing someone else | |
| if check_my_bot_status(): | |
| print("Your bot is currently in a match. Waiting 30 seconds...") | |
| time.sleep(30) | |
| continue | |
| # 2. If free, try to challenge the Maias one by one | |
| print("Your bot is idle! Attempting to challenge targets...") | |
| for bot in TARGET_BOTS: | |
| success = send_challenge(bot) | |
| if success: | |
| # Give Lichess a moment to process the match creation | |
| print("Match created successfully. Pausing script for 2 minutes...") | |
| time.sleep(120) | |
| break | |
| # Tiny cooldown between hitting different bots to avoid rate limits | |
| time.sleep(2) | |
| # Cooldown period before checking if your bot is idle again | |
| time.sleep(45) | |
| if __name__ == "__main__": | |
| main() |