| from telethon import events |
| import asyncio |
| from telethon.errors import DataInvalidError |
| from . import kanha_bot |
|
|
| target_chat = "@HeXamonbot" |
| teamkanha = "@teamkanha" |
|
|
| MAX_CLICKS = 30 |
| RETRY_CLICKS = 4 |
| BOT_DELAY = 2 |
|
|
|
|
| async def get_latest_message_with_button(client, chat_id): |
| """ |
| Get the latest message from the bot that still has a button. |
| """ |
| async for msg in client.iter_messages(chat_id, limit=1): |
| if msg.buttons: |
| return msg |
| return None |
|
|
|
|
| @kanha_bot.on(events.NewMessage(chats=target_chat)) |
| async def handle_lottery_start(event): |
| """Auto-click Poke Lottery buttons until no more are found.""" |
| client = event.client |
|
|
| |
| if not event.raw_text.lower().startswith("welcome to the poke lottery"): |
| return |
|
|
| clicks = 0 |
| retries = 0 |
| message = event |
| last_message = message |
|
|
| try: |
| await asyncio.sleep(1) |
|
|
| while clicks < MAX_CLICKS: |
| |
| message = await client.get_messages(message.chat_id, ids=message.id) |
|
|
| if message.buttons: |
| try: |
| await message.click(0, 0) |
| clicks += 1 |
| retries = 0 |
| except DataInvalidError: |
| raise RuntimeError("Button click failed: DataInvalidError") |
| except Exception as e: |
| raise RuntimeError(f"Button click failed: {str(e)}") |
|
|
| await asyncio.sleep(BOT_DELAY) |
| last_message = message |
| continue |
|
|
| |
| latest_with_button = await get_latest_message_with_button(client, message.chat_id) |
| if latest_with_button: |
| last_message = latest_with_button |
| try: |
| await last_message.click(0, 0) |
| clicks += 1 |
| retries = 0 |
| except Exception: |
| retries += 1 |
| else: |
| retries += 1 |
|
|
| if retries >= RETRY_CLICKS: |
| break |
|
|
| await asyncio.sleep(BOT_DELAY) |
|
|
| except Exception as e: |
| try: |
| await client.send_message( |
| teamkanha, |
| f"⚠️ Lottery AutoClicker Error:\n\n`{str(e)}`" |
| ) |
| except Exception: |
| pass |
|
|