import os
import shutil
import requests
import time
# Ana klasör ve dosya yolları
base_dir = "C:/Users/Veysel/Desktop/forumlar"
yanit_dir = os.path.join(base_dir, "yanit")
api_file_path = os.path.join(base_dir, "yanitapi.txt")
tamam_dir = os.path.join(base_dir, "tamam")
# API bilgilerini oku ve bir liste oluştur
api_info = []
with open(api_file_path, "r", encoding="utf-8") as api_file:
for line in api_file:
parts = line.strip().split(" | ")
if len(parts) == 3:
api_info.append(parts)
else:
print(f"Hatalı satır: {line.strip()}")
# Ana döngü
while True:
print("Yanıt dosyaları kontrol ediliyor...")
# Yanıt dosyalarını listele
yanit_files = [f for f in os.listdir(yanit_dir) if f.endswith(".txt")]
# Eğer yanıt dosyası varsa işlem yap
if yanit_files:
print(f"{len(yanit_files)} adet yanıt dosyası bulundu.")
for yanit_file in yanit_files:
print(f"İşlenen dosya: {yanit_file}")
# Dosya adından site adını ve konu id'sini al
site, konu_id = yanit_file.split("-")
konu_id = konu_id.split(".")[0] # ".txt" uzantısını kaldır
# Eşleşen API bilgilerini bul
api_entry = None
for entry in api_info:
if site in entry[0]:
api_entry = entry
break
if api_entry:
api_url, api_user, api_key = api_entry
print(f"API bilgileri: URL={api_url}, Kullanıcı={api_user}, Anahtar={api_key}")
# Yanıt dosyasının içeriğini oku
with open(os.path.join(yanit_dir, yanit_file), "r", encoding="utf-8") as f:
reply_message = f.read()
print(f"Yanıt mesajı: {reply_message}")
# API'ye yanıtı gönder
headers = {
"Content-type": "application/x-www-form-urlencoded",
"XF-Api-User": api_user,
"XF-Api-Key": api_key
}
data = {
"thread_id": konu_id,
"message": reply_message
}
print("API isteği gönderiliyor...")
try:
response = requests.post(api_url, headers=headers, data=data, timeout=180)
# Yanıt başarılı ise dosyayı tamamlandı klasörüne taşı
if response.status_code == 200:
shutil.move(os.path.join(yanit_dir, yanit_file), os.path.join(tamam_dir, yanit_file))
print(f"Yanıt gönderildi ve dosya taşındı: {yanit_file}")
else:
print(f"Yanıt gönderilemedi. Durum kodu: {response.status_code}")
except Exception as e:
print(f"Hata oluştu: {e}")
else:
print(f"Site adı '{site}' için API bilgisi bulunamadı. Dosya: {yanit_file}")
else:
print("Yanıt dosyası bulunamadı.")
# 5 dakika bekle
print("5 dakika bekleniyor...")
time.sleep(300)