Bu bot, Schengen vizesi için randevu durumlarını otomatik olarak takip eder ve yeni randevular açıldığında Telegram üzerinden bildirim gönderir.
- 🔄 Otomatik randevu kontrolü
- 🌍 Çoklu şehir ve ülke desteği
- 🇪🇺 Farklı Schengen ülkeleri için randevu takibi
- 📱 Telegram üzerinden anlık bildirimler
- ⏰ Özelleştirilebilir kontrol sıklığı
- 🚫 Rate limit koruması
- 🔍 Detaylı hata ayıklama modu
- 🏷️ Vize alt kategorilerine göre filtreleme (Tourism, Business, Student vb.)
- Node.js (v16 veya üzeri)
- Paket yöneticisi (npm, yarn veya pnpm)
- Telegram Bot Token'ı
- Telegram Kanal/Grup ID'si
Bot'un sürekli çalışabilmesi için aşağıdaki seçeneklerden birine ihtiyacınız var:
-
VPS (Virtual Private Server) - Önerilen 🌟
- 7/24 kesintisiz çalışma
- Düşük maliyetli (aylık 50-100 lira)
- Önerilen sağlayıcılar (dolar bazlı): DigitalOcean, Linode, Vultr, OVH
- Önerilen sağlayıcılar (türk lirası bazlı): DeHost, Natro, Turhost
-
Kişisel Bilgisayar
- 7/24 açık kalması gerekir
- Elektrik kesintilerinden etkilenir
- İnternet bağlantısı sürekli olmalı
- Bilgisayarın uyku moduna geçmesi engellenmelidir
-
Raspberry Pi
- Düşük güç tüketimi
- 7/24 çalıştırılabilir
- Ekonomik çözüm
- Kurulum biraz teknik bilgi gerektirir
⚠️ Önemli Not: Bot'un randevuları kaçırmaması için sürekli çalışır durumda olması gerekir. VPS kullanımı, kesintisiz çalışma ve düşük maliyet açısından en ideal çözümdür.
- Node.js (v16 veya üzeri)
- Paket yöneticisi (npm, yarn veya pnpm)
- Telegram Bot Token'ı
- Telegram Kanal/Grup ID'si
- Telegram'da @BotFather ile konuşma başlatın
/newbot
komutunu gönderin- Bot için bir isim belirleyin
- Bot için bir kullanıcı adı belirleyin (sonu 'bot' ile bitmeli)
- BotFather size bir token verecek, bu token'ı kaydedin
- Bir Telegram kanalı oluşturun
- Botu kanala ekleyin ve admin yapın
- Kanala bir mesaj gönderin
- Bu URL'yi ziyaret edin:
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates
<BOT_TOKEN>
yerine botunuzun token'ını yazın
- JSON çıktısında
"chat":{"id":-100xxxxxxxxxx}
şeklinde bir değer göreceksiniz - Bu ID'yi kaydedin (örn: -100xxxxxxxxxx)
- Projeyi bilgisayarınıza indirin:
git clone https://github.com/byigitt/visa-checker.git
cd visa-checker
- Gerekli paketleri yükleyin:
# npm kullanıyorsanız
npm install
# yarn kullanıyorsanız
yarn install
# pnpm kullanıyorsanız
pnpm install
.env.example
dosyasını.env
olarak kopyalayın:
cp .env.example .env
.env
dosyasını düzenleyin:
# Telegram Yapılandırması
TELEGRAM_BOT_TOKEN=your_bot_token_here # Telegram bot token'ınız
TELEGRAM_CHAT_ID=your_chat_id_here # Telegram kanal ID'niz (örn: -100123456789)
TELEGRAM_RATE_LIMIT=20 # Telegram API için dakikada maksimum mesaj sayısı
TELEGRAM_RETRY_AFTER=5000 # Rate limit aşımında beklenecek süre (milisaniye)
TELEGRAM_RATE_LIMIT_MINUTES=15 # Bildirimler arası minimum süre (dakika)
# Uygulama Yapılandırması
CHECK_INTERVAL=*/5 * * * * # Kontrol sıklığı (varsayılan: her 5 dakikada bir)
TARGET_COUNTRY=Turkiye # Kaynak ülke (değiştirmeyin)
# Randevu Filtreleme
CITIES=Ankara,Istanbul # Takip edilecek şehirler (virgülle ayırın)
MISSION_COUNTRY=Netherlands,France # Randevusu takip edilecek ülkeler (virgülle ayırın)
VISA_SUBCATEGORIES=Tourism,Business # Takip edilecek vize alt kategorileri (virgülle ayırın, boş bırakılabilir)
# API Yapılandırması
VISA_API_URL=https://api.schengenvisaappointments.com/api/visa-list/?format=json
# Önbellek Yapılandırması
MAX_CACHE_SIZE=1000 # Maksimum önbellek boyutu
CACHE_CLEANUP_INTERVAL=86400000 # Önbellek temizleme sıklığı (ms)
MAX_RETRIES=3 # API hatası durumunda maksimum deneme sayısı
RETRY_DELAY_BASE=1000 # API hatası durumunda bekleme süresi (ms)
# Hata Ayıklama
DEBUG=false # Hata ayıklama modu (true/false)
- TypeScript kodunu derleyin:
# npm kullanıyorsanız
npm run build
# yarn kullanıyorsanız
yarn build
# pnpm kullanıyorsanız
pnpm build
- Geliştirme modunda çalıştırma:
# npm kullanıyorsanız
npm run dev
# yarn kullanıyorsanız
yarn dev
# pnpm kullanıyorsanız
pnpm dev
- Production modunda çalıştırma:
# npm kullanıyorsanız
npm start
# yarn kullanıyorsanız
yarn start
# pnpm kullanıyorsanız
pnpm start
TELEGRAM_BOT_TOKEN
: Telegram bot token'ınızTELEGRAM_CHAT_ID
: Telegram kanal ID'nizTELEGRAM_RATE_LIMIT
: Dakikada gönderilebilecek maksimum mesaj sayısıTELEGRAM_RETRY_AFTER
: Rate limit aşıldığında beklenecek süre (ms)TELEGRAM_RATE_LIMIT_MINUTES
: Bildirimler arası minimum süre
CHECK_INTERVAL
: Randevu kontrolü sıklığı (cron formatında)CITIES
: Takip edilecek şehirler (virgülle ayrılmış liste)MISSION_COUNTRY
: Randevusu takip edilecek ülkeler (virgülle ayrılmış liste)VISA_SUBCATEGORIES
: Takip edilecek vize alt kategorileri- Örnek değerler: Tourism, Business, Student, Family Visit
- Virgülle ayrılmış liste olarak yazılır
- Boş bırakılırsa tüm alt kategoriler takip edilir
- Büyük/küçük harf duyarlı değildir
- Kısmi eşleşme yapar (örn: "Tourism" yazarsanız "TOURISM VISA APPLICATION" olanları da yakalar)
MAX_CACHE_SIZE
: Önbellekteki maksimum randevu sayısıCACHE_CLEANUP_INTERVAL
: Önbellek temizleme sıklığı (ms)MAX_RETRIES
: API hatalarında tekrar deneme sayısıRETRY_DELAY_BASE
: API hataları arasında bekleme süresiDEBUG
: Detaylı log kayıtları için hata ayıklama modu
Bot, yeni bir randevu bulduğunda şu formatta bir mesaj gönderir:
🎯 YENİ VİZE RANDEVUSU BULUNDU!
🏛️ Konsolosluk: France Visa Application Centre - Ankara
📆 Randevu Tarihi: 05.12.2024
🛂 Vize Kategorisi: Short Term / Kisa Donem / Court Sejour
└ 📋 Alt Kategori: Professional
👥 Bekleyen Kişi Sayısı: 1
🔗 Randevu Almak İçin:
[Randevu Sistemine Git](https://visa.vfsglobal.com/tur/en/fra/login)
⏰ Son Güncelleme: 30 Kas 2024 08:55:31
-
Bot çalışıyor mu?
- Konsolda "Vize randevu kontrolü başlatıldı" mesajını görmelisiniz
- Debug modunu aktif ederek daha detaylı loglar görebilirsiniz
-
Telegram bildirimleri gelmiyor
- Bot token'ınızı kontrol edin
- Kanal ID'sini kontrol edin
- Botun kanalda admin olduğundan emin olun
-
Belirli bir şehir/ülke için randevuları nasıl takip ederim?
.env
dosyasındaCITIES
veMISSION_COUNTRY
değerlerini düzenleyin
-
Rate limit hatası alıyorum
TELEGRAM_RATE_LIMIT_MINUTES
değerini artırın- Kontrol sıklığını azaltın
-
Sadece belirli vize türlerini nasıl takip ederim?
.env
dosyasındaVISA_SUBCATEGORIES
değişkenini kullanın- Örnek:
VISA_SUBCATEGORIES=Tourism,Business,Student
- Boş bırakırsanız tüm vize türleri takip edilir
Bir hata bulduysanız veya öneriniz varsa, lütfen GitHub üzerinden issue açın.
Bu proje MIT lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakın.