import pyperclip
import time
import threading
import sys

kopyalananlar = []
calisiyor = True

def panoyu_dinle():
    global calisiyor
    try:
        son_veri = pyperclip.paste()
    except:
        son_veri = ""

    while calisiyor:
        try:
            guncel_veri = pyperclip.paste()

            if guncel_veri != son_veri:
                son_veri = guncel_veri
                
                if guncel_veri.strip() != "":
                    kopyalananlar.append(guncel_veri)
                    print(f"{guncel_veri}")
                    
            time.sleep(0.1)
        except Exception as e:
            pass

def main():
    global calisiyor
    
    t = threading.Thread(target=panoyu_dinle)
    t.daemon = True
    t.start()

    print("-" * 50)
    print("PANO DİNLENİYOR...")
    print("Metin kopyaladıkça buraya düşecek.")
    print("Bitirmek ve hepsini birleştirmek için 'e' yazıp Enter'a bas.")
    print("-" * 50)

    while True:
        giris = input()
        if giris.lower() == 'e':
            calisiyor = False
            break
            
    if kopyalananlar:
        toplu_metin = "\n".join(kopyalananlar)
        
        pyperclip.copy(toplu_metin)
        
        print("\n" + "=" * 50)
        print(f"TOPLAM {len(kopyalananlar)} ADET METİN BİRLEŞTİRİLDİ VE PANOYA KOPYALANDI!")
        print("=" * 50)
    else:
        print("Hiçbir metin kopyalanmadı.")

if __name__ == "__main__":
    main()