Due to issues with the Internet.ee domain registry, our main domain, paste.ee, is currently disabled due to abuse reports. We are looking into alternative domains to continue operation, but for now the pastee.dev domain is the primary domain.
If you wish to blame someone, blame the scum using this site as a malware host.
Description: code2
Submitted on August 5, 2025 at 12:48 PM
Expires on September 4, 2025 at 12:48 PM (4 weeks from now)

New Paste 1 (Text)

import os
import time
import random
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service

# ----------- AYARLAR & XPATH'LER -----------
EXAM_START_URL = "https://panel.evdekiakademi.com/"
GEMINI_URL = "https://gemini.google.com/"
SCREENSHOT_PATH = "question.png"
XPATH_PLUS_BTN = '/html/body/chat-app/main/side-navigation-v2/bard-sidenav-container/bard-sidenav-content/div[2]/div/div[2]/chat-window/div/input-container/div/input-area-v2/div/div/div[2]/div/uploader/div/div/button/mat-icon'
XPATH_UPLOAD_BTN = '/html/body/div[7]/div/div/mat-card/mat-action-list/images-files-uploader/button[1]'
XPATH_FILE_INPUT = "//input[@type='file']"
XPATH_PROMPT_BOX = '/html/body/chat-app/main/side-navigation-v2/bard-sidenav-container/bard-sidenav-content/div[2]/div/div[2]/chat-window/div/input-container/div/input-area-v2/div/div/div[1]/div/div/rich-textarea/div[1]/p'
XPATH_SEND_BTN = '/html/body/chat-app/main/side-navigation-v2/bard-sidenav-container/bard-sidenav-content/div[2]/div/div[2]/chat-window/div/input-container/div/input-area-v2/div/div/div[3]/div/div[2]/button'
XPATH_GEMINI_ANSWER = '//div[contains(@class,"response-content")]//pre'

PROMPT_TEXT = '''
Bu görselde çoktan seçmeli bir soru var. Cevabı sadece şu formatta JSON olarak ver:
{
"cevap": "D"
}
Eğer cevaptan emin değilsen yine de bir şık seç. Lütfen sadece bu JSON formatını kullan, başka hiçbir şey yazma.
'''

def wait_xpath(driver, xpath, timeout=20):
    return WebDriverWait(driver, timeout).until(
        EC.presence_of_element_located((By.XPATH, xpath))
    )

def wait_clickable(driver, xpath, timeout=20):
    return WebDriverWait(driver, timeout).until(
        EC.element_to_be_clickable((By.XPATH, xpath))
    )

def random_delay(a=1, b=3):
    time.sleep(random.uniform(a, b))

def main():
    chrome_options = Options()
    chrome_options.add_argument("--start-maximized")
    chrome_options.add_argument(r"--user-data-dir=C:\Users\sbatu\AppData\Local\Google\Chrome\User Data")
    chrome_options.add_argument(r'--profile-directory=Profile 2')
    driver_path = os.path.join(os.getcwd(), "chromedriver.exe")
    service = Service(driver_path)
    driver = webdriver.Chrome(service=service, options=chrome_options)
    try:
        print("[*] Başlangıç sayfası açılıyor. Sınavı manuel aç, soruyu tam görünür yap.")
        driver.get(EXAM_START_URL)
        while True:
            input("[*] Soruyu tam olarak görünür yaptıysan ve ekran görüntüsü alınmasını istiyorsan ENTER'a bas...")
            print("[*] Ekran görüntüsü alınıyor...")
            driver.save_screenshot(SCREENSHOT_PATH)
            print(f"[*] '{SCREENSHOT_PATH}' olarak kaydedildi.")
            print("[*] Yeni sekmede Gemini açılıyor...")
            driver.execute_script("window.open('');")
            driver.switch_to.window(driver.window_handles[-1])
            driver.get(GEMINI_URL)
            random_delay(5, 8)
            print("[*] Artı (+) tuşuna basılıyor...")
            plus_btn = wait_clickable(driver, XPATH_PLUS_BTN)
            plus_btn.click()
            random_delay(1, 2)
            print("[*] Dosya yükle butonuna basılıyor...")
            upload_btn = wait_clickable(driver, XPATH_UPLOAD_BTN)
            upload_btn.click()
            random_delay(1, 2)
            print("[*] Dosya inputuna ekran görüntüsü gönderiliyor...")
            file_input = wait_xpath(driver, XPATH_FILE_INPUT)
            abs_path = os.path.abspath(SCREENSHOT_PATH)
            file_input.send_keys(abs_path)
            random_delay(6, 10)
            print("[*] JSON promptu yapıştırılıyor...")
            prompt_box = wait_xpath(driver, XPATH_PROMPT_BOX)
            prompt_box.click()
            prompt_box.send_keys(PROMPT_TEXT)
            random_delay(1, 2)
            send_btn = wait_clickable(driver, XPATH_SEND_BTN)
            send_btn.click()
            print("[*] Prompt gönderildi, Gemini cevabı bekleniyor...")
            answer_elem = WebDriverWait(driver, 40).until(
                EC.presence_of_element_located((By.XPATH, XPATH_GEMINI_ANSWER))
            )
            answer_text = answer_elem.text.strip()
            print(f"[*] Gemini cevabı:\n{answer_text}")
            try:
                answer_json = json.loads(answer_text)
                secilen_sik = answer_json.get("cevap", "").upper()
                if secilen_sik not in ["A", "B", "C", "D"]:
                    raise ValueError("Geçersiz şık")
            except Exception:
                print("[!] JSON parse hatası veya geçersiz cevap, rastgele şık seçiliyor.")
                secilen_sik = random.choice(["A", "B", "C", "D"])
            print(f"[*] Seçilen şık: {secilen_sik}")
            print("[*] Ana sınav sekmesine dönülüyor...")
            driver.switch_to.window(driver.window_handles[0])
            random_delay(1, 2)
            print("[*] Şıkları arıyor, seçim senin onayına bırakıldı...")
            options = driver.find_elements(By.CLASS_NAME, "secenek")
            matched = False
            for opt in options:
                text = opt.text.strip()
                if text.startswith(secilen_sik):
                    opt.click()
                    matched = True
                    print(f"[*] '{secilen_sik}' şıkkı seçildi. Onaylamak için kendin tıkla.")
                    break
            if not matched:
                print("[!] Şık bulunamadı, manuel seçmen gerekecek.")
            print("[*] Yeni soruyu açıp aynı şekilde devam edebilirsin.")
    except KeyboardInterrupt:
        print("[*] Bot kapatıldı.")
    except Exception as e:
        print("[!] Hata:", e)
    finally:
        driver.quit()

if __name__ == "__main__":
    main()