Ana Kodun Açıklaması - phaticusthiccy/Telegram-Activity GitHub Wiki

gui.py kodunun amacı, kullanıcının bilgisayarında çalışan oyunları izlemek ve Telegram profil durumunu buna göre güncellemektir.

Uygulama, kullanıcıdan oyun isimleri girdisi alır. Kullanıcı, bir giriş alanına oyun ismini yazarak ve "Ekle" düğmesine tıklayarak veya Enter tuşuna basarak oyunları bir listeye ekleyebilir. Kullanıcı ayrıca bir oyunu seçerek ve "Kaldır" düğmesine tıklayarak veya Sil tuşuna basarak oyunları listeden kaldırabilir.

Uygulamanın temel çıktısı, kullanıcının Telegram profil durumudur. Bu durum, kullanıcının o anda oynadığı oyunu ve oyunu başlattığından bu yana geçen süreyi yansıtacak şekilde güncellenir. Eğer hiçbir oyun oynanmıyorsa, profil durumu kullanıcı tarafından girilen varsayılan biyografiye ayarlanır.


Amacına ulaşmak için kod şu mantığı izler:

Kullanıcı arayüzü, giriş alanları, listbox'lar ve düğmeler gibi çeşitli Tkinter araçları kullanılarak oluşturulur.

Kullanıcı tarafından eklenen oyun isimleri added_games listesinde saklanır.

Kod, bir JSON dosyasından (process_mapping.json) oyun isimleri ile karşılık gelen süreç isimlerinin eşlemesini yükler.

Uygulama, psutil kütüphanesini kullanarak added_games listesindeki oyunların kullanıcının bilgisayarında çalışıp çalışmadığını sürekli olarak kontrol eder.

Eğer bir oyun çalışıyorsa, uygulama oyunun başlangıç zamanından itibaren geçen süreyi hesaplar ve Telethon kütüphanesini kullanarak kullanıcının Telegram profil durumunu günceller.

Eğer hiçbir oyun çalışmıyorsa, uygulama kullanıcının Telegram profil durumunu girilen varsayılan biyografiye ayarlar. Uygulama, asenkron bir olay döngüsünde çalışır, Telegram profil durumunu her 60 saniyede bir günceller ve GUI'yi canlı tutmak için periyodik olarak güncellemeler yapar.


Önemli mantık akışları ve veri dönüşümleri:

find_process_name fonksiyonu, yüklenen süreç eşlemesinde arama yaparak verilen bir oyun ismine karşılık gelen süreç ismini bulmak için kullanılır.

get_process_name ve get_friendly_name fonksiyonları, yüklenen süreç eşlemesini kullanarak oyun isimleri ile karşılık gelen süreç isimleri arasında dönüşüm yapmak için kullanılır.

is_game_running fonksiyonu, çalışan süreçleri dönerek ve isimlerini karşılaştırarak verilen bir oyun isminin kullanıcının bilgisayarında çalışıp çalışmadığını kontrol eder.

update_status fonksiyonu, asenkron olarak çalışan ve o anda çalışan oyun ile geçen süreye göre kullanıcının Telegram profil durumunu güncelleyen bir fonksiyondur.

main fonksiyonu, uygulamanın özüdür. Asenkron bir olay döngüsünde çalışır ve sürekli olarak çalışan oyunları kontrol eder ve Telegram profil durumunu günceller.

Kod ayrıca kullanıcı girdilerini işleme, mesajlar görüntüleme ve GUI penceresini yönetme için yardımcı fonksiyonlar içerir.