Valorant maçları kaçmasın diye: vlr.gg'yi izleyen kişisel bir Telegram botu.
Seçilen turnuvaları izler; maçtan 30 dakika önce, maç başlayınca ve bitince Türkçe bildirim gönderir. İstenince canlı skoru da getirir. Google Cloud'un ücretsiz katmanında 7/24 çalışır.
Problem
vlr.gg, profesyonel Valorant maçlarının ana kaynağı; ama bildirim sistemi de resmî bir API'si de yok. Maç kaçırmamak için siteyi sürekli kontrol etmek gerekiyor.
Çözüm
Bot seçilen turnuvaları akıllı aralıklarla ve siteye yük bindirmeden kontrol eder, değişiklikleri kendi veritabanında tutar ve yalnızca gerçekten yeni bir şey olduğunda yazar.
Haber verdiği anlar
Bot Türkçe yazar; aşağıdakiler gerçek bildirimlerin ekran görüntüleri.
- Turnuva takibi:
/turnuvalardevam eden ve yaklaşan turnuvaları butonlarla listeler, tek dokunuşla takip açılır ya da kapanır. - Günlük özet: her sabah 10:00'da o günün maçları; maç yoksa sessiz.
- Hatırlatma ve canlı: maçtan 30 dk önce hatırlatma, maç canlıya geçince haber.
- Sonuç: seri skoru ve harita harita skorlar.
- Kendini izleme: vlr.gg'nin sayfa yapısı değişirse ya da bir sorun tekrarlarsa bot sahibine uyarı, düzelince "✅ Düzeldi" gönderir.
/canli: skor, istendiği anda
Takip edilen canlı maçların o anki skorunu getirir: biten haritalar ve oynanan haritanın raunt skoru. 🔄 Yenile mesajı yerinde günceller. Skor yalnızca istenince çekilir; 30 saniyelik önbellek art arda basışlarda siteye yük bindirmez ve vlr.gg yavaşken bile yanıt en geç 8 saniyede gelir.
🔴 G2 Esports 1–0 Team Liquid
Valorant Champions 2026 — Decider (C) · Bo3
✅ Split 13–10
▶️ Abyss 9–6 (oynanıyor)
🔗 Maç sayfası
🕐 12:42 itibarıyla
Mimari
Tek bir Python süreci, Docker içinde. Scraper bir arayüzün arkasında durur; gerekirse başka bir veri kaynağı takılabilir. Karar mantığı (tracker) Telegram'ı tanımaz ve saf fonksiyonlardan oluşur; bu yüzden kolayca test edilir.
- vlr.ggHTML + ICS
- ScraperMatchSource
- Trackerupcoming → live → completed
- SQLitemaçlar, bildirim bayrakları, sağlık
- Notifier
- Telegram
JobQueue akıllı yoklama · günlük özet
Öne çıkan mühendislik
Resmî API olmadan güvenilir veri
vlr.gg için kendi scraper'ı var. Sayfa yapısı değişirse kaydedilmiş gerçek sayfalarla yazılmış testler bunu yakalıyor, canlıda bot sahibine uyarı gidiyor. Siteye yük olmamak için istekler arasında en az 1 saniye beklenir, hata olursa bekleme giderek uzar ve bot kendini tanıtan bir User-Agent kullanır.
Saat dilimi tuzağı
Maç sayfasındaki data-utc-ts alanı adına rağmen UTC değil; yaz ve kış saatine göre değişen New York saati. Liste sayfası ise saati ziyaretçinin konumuna göre basıyor; sunucu ABD'ye taşınınca saatler Chicago saatine kaydı. Asıl saat kaynağı gerçek UTC veren takvim beslemesi (ICS) yapıldı; bulgu üç bağımsız kaynakla doğrulandı ve testlerle sabitlendi.
Aynı bildirim asla iki kez gitmez
Her bildirim türü için veritabanında bir bayrak var ve bayrak yalnızca Telegram gönderimi başarılı olunca işaretleniyor. Kesintide yeniden deneme aralığı 60 saniyeden 15 dakikaya kadar uzar; bot özet saatinde kapalıysa özet açılınca telafi edilir. Sunucu yeniden başlatma testlerinde mükerrer mesaj çıkmadı.
Sıfır maliyetli barındırma
Google Cloud'un ücretsiz katmanındaki tuzaklar tek tek ele alındı: ücretli varsayılan disk, yanıltıcı fiyat tahmini, deneme kredisi yüzünden hiç tetiklenmeyen bütçe alarmı. Yakın maç yokken vlr.gg 30 dakikada bir, maç yaklaşınca ya da canlıyken 1–2 dakikada bir kontrol edilir. Sonuç: 11 günde net ~₺0,02.
Rakamlarla
Gayriresmî bir hobi projesidir; vlr.gg ve Riot Games ile bağlantılı değildir. Valorant, Riot Games, Inc.'in ticari markasıdır. Bot kişiseldir ve yalnızca sahibine yanıt verir; kaynak kodu paylaşılmamaktadır.
Sizin işinize özel bir bot ya da otomasyon mu lazım?
Tekrarlayan bir kontrolü, bildirimi ya da veri toplama işini birlikte otomatikleştirelim.