Tüm işler

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.

Tür
Kişisel araç · tek kullanıcı
Yıl
2026
Teknoloji
Python 3.12 · SQLite · Docker
Platform
Telegram · Google Cloud

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: /turnuvalar devam 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

/canli: anlık skor
/canli: canlı maç varken
/canli: canlı maç yokken

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.

  1. vlr.ggHTML + ICS
  2. ScraperMatchSource
  3. Trackerupcoming → live → completed
  4. SQLitemaçlar, bildirim bayrakları, sağlık
  5. Notifier
  6. 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

geliştirme
~8 gün
test
653
satır Python
~4.100
aylık barındırma
~₺0
RAM
30–90 MB

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.