File size: 2,664 Bytes
4b4b617 90eb5f8 4b4b617 c8b8478 4b4b617 c8b8478 90eb5f8 c8b8478 90eb5f8 c8b8478 90eb5f8 4b4b617 c8b8478 4b4b617 90eb5f8 4b4b617 90eb5f8 4b4b617 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | from fastapi import FastAPI
from playwright.async_api import async_playwright
import base64
app = FastAPI()
BEARER = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5M2NmYTBkMGU4YzlmMzdiZTA4Y2IyMCIsImlhdCI6MTczMjM5NTc5OSwiZXhwIjoxNzczMDAwNTk5fQ.Mc-LS_NMe0lpBQrQE4DEGs83iVBHIp8LvzBdeaUbmHo"
@app.get("/")
def home():
return {"status": "Silent Auto-React API is Running 🟢"}
@app.get("/api/react")
async def do_react(url: str, emojis: str):
try:
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
context = await browser.new_context(
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
)
await context.add_cookies([{
"name": "ain",
"value": BEARER,
"domain": "asitha.top",
"path": "/"
}])
page = await context.new_page()
await page.goto("https://asitha.top/channel-react", wait_until="networkidle")
try:
# Wait for the button. If it doesn't appear in 10 seconds, it will fail and jump to the 'except' block to take a screenshot.
await page.wait_for_selector("button:has-text('Pay 1 COIN')", timeout=10000)
except Exception as e:
# 📸 TAKE SCREENSHOT IF IT FAILS
screenshot_bytes = await page.screenshot(full_page=True)
screenshot_b64 = base64.b64encode(screenshot_bytes).decode('utf-8')
await browser.close()
return {"success": False, "error": "Stuck on login screen.", "image": screenshot_b64}
inputs = await page.locator("input").all()
if len(inputs) >= 2:
await inputs[0].fill(url)
await inputs[1].fill(emojis)
await page.locator("button:has-text('Pay 1 COIN')").click()
await page.wait_for_timeout(4000)
await browser.close()
return {"success": True, "message": "Reaction injected successfully!"}
else:
# 📸 TAKE SCREENSHOT IF BOXES ARE MISSING
screenshot_bytes = await page.screenshot(full_page=True)
screenshot_b64 = base64.b64encode(screenshot_bytes).decode('utf-8')
await browser.close()
return {"success": False, "error": "Could not find text boxes.", "image": screenshot_b64}
except Exception as e:
return {"success": False, "error": str(e)} |