def ensure_tab_is__once():
pyautogui.hotkey(‘ctrl’, ‘l’)
pyautogui.hotkey(‘ctrl’, ‘c’)
time.sleep(3)
screenWidth, screenHeight = pyautogui.size()
centerX, centerY = screenWidth // 2, screenHeight // 2
pyautogui.click(centerX, centerY)
current_url = pyperclip.paste()
print(f”[] 1. sekmenin URL’si: {current_url}”)
if not current_url.startswith(_URL):
print(“[!] 1. sekme değil. Sekme kapatılıp yeniden açılıyor.”)
pyautogui.hotkey(“ctrl”, “w”)
time.sleep(3)
pyautogui.hotkey(“ctrl”, “t”)
pyperclip.copy(_URL)
pyautogui.hotkey(“ctrl”, “l”)
pyautogui.hotkey(“ctrl”, “v”)
pyautogui.press(“enter”)
time.sleep(7)
else:
print(“[✓] 1. sekme olarak doğrulandı.”)
def send_prompt_to_tab(index, title):
switch_to_tab(index)
print(f”[] {index+1}. sekmede prompt gönderiliyor: {title}”)
pyautogui.press(“enter”)
# Klavyede aşağı tuşuna 4 kez bas
for _ in range(4):
pyautogui.press(“down”)
time.sleep(0.6)
# Esc + Shift farklı yolla bir kere bas
keyboard.press(Key.shift)
keyboard.press(Key.esc)
keyboard.release(Key.esc)
keyboard.release(Key.shift)
time.sleep(1)
pyautogui.hotkey(‘shift’, ‘esc’)
# Prompt hazırla ve yapıştır
prompt = random.choice(PROMPTS).format(title=title)
pyperclip.copy(prompt)
pyautogui.hotkey(“ctrl”, “v”)
time.sleep(2)
pyautogui.press(“enter”)
time.sleep(2)
def extract_and_save_article(title, index):
global error_counter
print(f”[] {index+1}. sekmede içerik kopyalanıyor: {title}”)
screenWidth, screenHeight = pyautogui.size()
# Merkez noktasından 80 piksel sola kaydır
centerX = screenWidth // 2 – 80
centerY = screenHeight // 2
pyautogui.click(centerX, centerY)
time.sleep(2) # Tıklama sonrası bekleme
# Alt+Z kombinasyonu (pynput ile)
keyboard.press(Key.alt)
keyboard.press(‘z’)
keyboard.release(‘z’)
keyboard.release(Key.alt)
time.sleep(3) # pencere veya kopyalama işleminin gerçekleşmesi için bekleme
# Alt+C kombinasyonu (pynput ile)
keyboard.press(Key.alt)
keyboard.press(‘c’)
keyboard.release(‘c’)
keyboard.release(Key.alt)
time.sleep(4) # içeriğin panoya alınması için bekleme
# Panodan içerik al
content = pyperclip.paste()
screenWidth, screenHeight = pyautogui.size()
# Merkez noktasından 80 piksel sola kaydır
centerX = screenWidth // 2 – 80
centerY = screenHeight // 2
pyautogui.click(centerX, centerY)
time.sleep(2) # Tıklama sonrası bekleme
# Hatalı içerik kontrolü
if any(keyword in content for keyword in ERROR_KEYWORDS):
print(f”[!] HATA: ‘{title}’ başlıklı içerik hatalı.”)
error_counter += 1
# Mevcut sekmeyi resetle -> yeniden aç
switch_to_tab(index)
pyautogui.hotkey(“ctrl”, “l”)
pyperclip.copy(_URL)
pyautogui.hotkey(“ctrl”, “v”)
pyautogui.press(“enter”)
time.sleep(7)
if error_counter >= 3:
print(“[!!] 3 hata tespit edildi, Chrome yeniden başlatılıyor…”)
restart_chrome_and_open_tabs()
return False
# İçeriği kaydet
filename = clean_title(title) + “.txt”
filepath = os.path.join(OUTPUT_DIR, filename)
with open(filepath, ‘w’, encoding=’utf-8′) as f:
f.write(content)
print(f”[✓] ‘{title}’ başlıklı makale kaydedildi.”)
remove_title(title)
return True
def cleanup_tab():
print(“[] Sekme temizleniyor…”)
screenWidth, screenHeight = pyautogui.size()
centerX, centerY = screenWidth // 2, screenHeight // 2
pyautogui.click(centerX, centerY, button=’left’)
time.sleep(1)
pyautogui.hotkey(‘ctrl’, ‘shift’, ‘backspace’)
time.sleep(4)
pyautogui.press(‘enter’)
time.sleep(8)
pyautogui.press(‘f5’)
time.sleep(8)
print(“[✓] Sekme temizliği tamamlandı.”)