{"id":23401545,"url":"https://github.com/byigitt/visa-checker","last_synced_at":"2025-04-06T16:15:24.690Z","repository":{"id":265107965,"uuid":"895129671","full_name":"byigitt/visa-checker","owner":"byigitt","description":"Schengen vizesi randevularını otomatik takip eden ve Telegram üzerinden bildirim gönderen bot.","archived":false,"fork":false,"pushed_at":"2025-01-07T11:59:17.000Z","size":108,"stargazers_count":98,"open_issues_count":0,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T10:45:28.098Z","etag":null,"topics":["bildirim","bot","randevu","schengen","takip","telegram","vize"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byigitt.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-27T16:00:40.000Z","updated_at":"2025-03-15T09:41:53.000Z","dependencies_parsed_at":"2024-11-27T18:20:30.454Z","dependency_job_id":"7a52425b-511a-4011-bf3d-973d258c0079","html_url":"https://github.com/byigitt/visa-checker","commit_stats":null,"previous_names":["byigitt/visa-checker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byigitt%2Fvisa-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byigitt%2Fvisa-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byigitt%2Fvisa-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byigitt%2Fvisa-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byigitt","download_url":"https://codeload.github.com/byigitt/visa-checker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247509238,"owners_count":20950232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bildirim","bot","randevu","schengen","takip","telegram","vize"],"created_at":"2024-12-22T11:16:53.419Z","updated_at":"2025-04-06T16:15:24.671Z","avatar_url":"https://github.com/byigitt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔍 Schengen Vize Randevu Takip Botu\n\nBu bot, Schengen vizesi için randevu durumlarını otomatik olarak takip eder ve yeni randevular açıldığında Telegram üzerinden bildirim gönderir.\n\n## 📋 Özellikler\n\n- 🔄 Otomatik randevu kontrolü\n- 🌍 Çoklu şehir ve ülke desteği\n- 🇪🇺 Farklı Schengen ülkeleri için randevu takibi\n- 📱 Telegram üzerinden anlık bildirimler\n- ⏰ Özelleştirilebilir kontrol sıklığı\n- 🚫 Rate limit koruması\n- 🔍 Detaylı hata ayıklama modu\n- 🏷️ Vize alt kategorilerine göre filtreleme (Tourism, Business, Student vb.)\n\n## 🛠 Sistem Gereksinimleri\n\n### Yazılım Gereksinimleri\n\n- Node.js (v16 veya üzeri)\n- Paket yöneticisi (npm, yarn veya pnpm)\n- Telegram Bot Token'ı\n- Telegram Kanal/Grup ID'si\n\n### Donanım/Hosting Gereksinimleri\n\nBot'un sürekli çalışabilmesi için aşağıdaki seçeneklerden birine ihtiyacınız var:\n\n1. **VPS (Virtual Private Server) - Önerilen 🌟**\n\n   - 7/24 kesintisiz çalışma\n   - Düşük maliyetli (aylık 50-100 lira)\n   - Önerilen sağlayıcılar (dolar bazlı): DigitalOcean, Linode, Vultr, OVH\n   - Önerilen sağlayıcılar (türk lirası bazlı): DeHost, Natro, Turhost\n\n2. **Kişisel Bilgisayar**\n\n   - 7/24 açık kalması gerekir\n   - Elektrik kesintilerinden etkilenir\n   - İnternet bağlantısı sürekli olmalı\n   - Bilgisayarın uyku moduna geçmesi engellenmelidir\n\n3. **Raspberry Pi**\n   - Düşük güç tüketimi\n   - 7/24 çalıştırılabilir\n   - Ekonomik çözüm\n   - Kurulum biraz teknik bilgi gerektirir\n\n\u003e ⚠️ **Ö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.\n\n## 🛠️ Kurulum\n\n### Gereksinimler\n\n- Node.js (v16 veya üzeri)\n- Paket yöneticisi (npm, yarn veya pnpm)\n- Telegram Bot Token'ı\n- Telegram Kanal/Grup ID'si\n\n### 1. Telegram Bot Oluşturma\n\n1. Telegram'da [@BotFather](https://t.me/botfather) ile konuşma başlatın\n2. `/newbot` komutunu gönderin\n3. Bot için bir isim belirleyin\n4. Bot için bir kullanıcı adı belirleyin (sonu 'bot' ile bitmeli)\n5. BotFather size bir token verecek, bu token'ı kaydedin\n\n### 2. Telegram Kanal ID'si Alma\n\n1. Bir Telegram kanalı oluşturun\n2. Botu kanala ekleyin ve admin yapın\n3. Kanala bir mesaj gönderin\n4. Bu URL'yi ziyaret edin: `https://api.telegram.org/bot\u003cBOT_TOKEN\u003e/getUpdates`\n   - `\u003cBOT_TOKEN\u003e` yerine botunuzun token'ını yazın\n5. JSON çıktısında `\"chat\":{\"id\":-100xxxxxxxxxx}` şeklinde bir değer göreceksiniz\n6. Bu ID'yi kaydedin (örn: -100xxxxxxxxxx)\n\n### 3. Projeyi Kurma\n\n1. Projeyi bilgisayarınıza indirin:\n\n```bash\ngit clone https://github.com/byigitt/visa-checker.git\ncd visa-checker\n```\n\n2. Gerekli paketleri yükleyin:\n\n```bash\n# npm kullanıyorsanız\nnpm install\n\n# yarn kullanıyorsanız\nyarn install\n\n# pnpm kullanıyorsanız\npnpm install\n```\n\n3. `.env.example` dosyasını `.env` olarak kopyalayın:\n\n```bash\ncp .env.example .env\n```\n\n4. `.env` dosyasını düzenleyin:\n\n```env\n# Telegram Yapılandırması\nTELEGRAM_BOT_TOKEN=your_bot_token_here        # Telegram bot token'ınız\nTELEGRAM_CHAT_ID=your_chat_id_here            # Telegram kanal ID'niz (örn: -100123456789)\nTELEGRAM_RATE_LIMIT=20                        # Telegram API için dakikada maksimum mesaj sayısı\nTELEGRAM_RETRY_AFTER=5000                     # Rate limit aşımında beklenecek süre (milisaniye)\nTELEGRAM_RATE_LIMIT_MINUTES=15                # Bildirimler arası minimum süre (dakika)\n\n# Uygulama Yapılandırması\nCHECK_INTERVAL=*/5 * * * *                    # Kontrol sıklığı (varsayılan: her 5 dakikada bir)\nTARGET_COUNTRY=Turkiye                        # Kaynak ülke (değiştirmeyin)\n\n# Randevu Filtreleme\nCITIES=Ankara,Istanbul                        # Takip edilecek şehirler (virgülle ayırın)\nMISSION_COUNTRY=Netherlands,France            # Randevusu takip edilecek ülkeler (virgülle ayırın)\nVISA_SUBCATEGORIES=Tourism,Business           # Takip edilecek vize alt kategorileri (virgülle ayırın, boş bırakılabilir)\n\n# API Yapılandırması\nVISA_API_URL=https://api.schengenvisaappointments.com/api/visa-list/?format=json\n\n# Önbellek Yapılandırması\nMAX_CACHE_SIZE=1000                          # Maksimum önbellek boyutu\nCACHE_CLEANUP_INTERVAL=86400000              # Önbellek temizleme sıklığı (ms)\nMAX_RETRIES=3                                # API hatası durumunda maksimum deneme sayısı\nRETRY_DELAY_BASE=1000                        # API hatası durumunda bekleme süresi (ms)\n\n# Hata Ayıklama\nDEBUG=false                                  # Hata ayıklama modu (true/false)\n```\n\n5. TypeScript kodunu derleyin:\n\n```bash\n# npm kullanıyorsanız\nnpm run build\n\n# yarn kullanıyorsanız\nyarn build\n\n# pnpm kullanıyorsanız\npnpm build\n```\n\n### 4. Botu Çalıştırma\n\n1. Geliştirme modunda çalıştırma:\n\n```bash\n# npm kullanıyorsanız\nnpm run dev\n\n# yarn kullanıyorsanız\nyarn dev\n\n# pnpm kullanıyorsanız\npnpm dev\n```\n\n2. Production modunda çalıştırma:\n\n```bash\n# npm kullanıyorsanız\nnpm start\n\n# yarn kullanıyorsanız\nyarn start\n\n# pnpm kullanıyorsanız\npnpm start\n```\n\n## ⚙️ Yapılandırma Seçenekleri\n\n### Telegram Ayarları\n\n- `TELEGRAM_BOT_TOKEN`: Telegram bot token'ınız\n- `TELEGRAM_CHAT_ID`: Telegram kanal ID'niz\n- `TELEGRAM_RATE_LIMIT`: Dakikada gönderilebilecek maksimum mesaj sayısı\n- `TELEGRAM_RETRY_AFTER`: Rate limit aşıldığında beklenecek süre (ms)\n- `TELEGRAM_RATE_LIMIT_MINUTES`: Bildirimler arası minimum süre\n\n### Randevu Takip Ayarları\n\n- `CHECK_INTERVAL`: Randevu kontrolü sıklığı (cron formatında)\n- `CITIES`: Takip edilecek şehirler (virgülle ayrılmış liste)\n- `MISSION_COUNTRY`: Randevusu takip edilecek ülkeler (virgülle ayrılmış liste)\n- `VISA_SUBCATEGORIES`: Takip edilecek vize alt kategorileri\n  - Örnek değerler: Tourism, Business, Student, Family Visit\n  - Virgülle ayrılmış liste olarak yazılır\n  - Boş bırakılırsa tüm alt kategoriler takip edilir\n  - Büyük/küçük harf duyarlı değildir\n  - Kısmi eşleşme yapar (örn: \"Tourism\" yazarsanız \"TOURISM VISA APPLICATION\" olanları da yakalar)\n\n### Sistem Ayarları\n\n- `MAX_CACHE_SIZE`: Önbellekteki maksimum randevu sayısı\n- `CACHE_CLEANUP_INTERVAL`: Önbellek temizleme sıklığı (ms)\n- `MAX_RETRIES`: API hatalarında tekrar deneme sayısı\n- `RETRY_DELAY_BASE`: API hataları arasında bekleme süresi\n- `DEBUG`: Detaylı log kayıtları için hata ayıklama modu\n\n## 📱 Bildirim Örneği\n\nBot, yeni bir randevu bulduğunda şu formatta bir mesaj gönderir:\n\n```\n🎯 YENİ VİZE RANDEVUSU BULUNDU!\n\n🏛️ Konsolosluk: France Visa Application Centre - Ankara\n📆 Randevu Tarihi: 05.12.2024\n🛂 Vize Kategorisi: Short Term / Kisa Donem / Court Sejour\n└ 📋 Alt Kategori: Professional\n👥 Bekleyen Kişi Sayısı: 1\n\n🔗 Randevu Almak İçin:\n[Randevu Sistemine Git](https://visa.vfsglobal.com/tur/en/fra/login)\n\n⏰ Son Güncelleme: 30 Kas 2024 08:55:31\n```\n\n## 🤔 Sık Sorulan Sorular\n\n1. **Bot çalışıyor mu?**\n\n   - Konsolda \"Vize randevu kontrolü başlatıldı\" mesajını görmelisiniz\n   - Debug modunu aktif ederek daha detaylı loglar görebilirsiniz\n\n2. **Telegram bildirimleri gelmiyor**\n\n   - Bot token'ınızı kontrol edin\n   - Kanal ID'sini kontrol edin\n   - Botun kanalda admin olduğundan emin olun\n\n3. **Belirli bir şehir/ülke için randevuları nasıl takip ederim?**\n\n   - `.env` dosyasında `CITIES` ve `MISSION_COUNTRY` değerlerini düzenleyin\n\n4. **Rate limit hatası alıyorum**\n\n   - `TELEGRAM_RATE_LIMIT_MINUTES` değerini artırın\n   - Kontrol sıklığını azaltın\n\n5. **Sadece belirli vize türlerini nasıl takip ederim?**\n   - `.env` dosyasında `VISA_SUBCATEGORIES` değişkenini kullanın\n   - Örnek: `VISA_SUBCATEGORIES=Tourism,Business,Student`\n   - Boş bırakırsanız tüm vize türleri takip edilir\n\n## 🚨 Hata Bildirimi\n\nBir hata bulduysanız veya öneriniz varsa, lütfen GitHub üzerinden issue açın.\n\n## 📄 Lisans\n\nBu proje MIT lisansı altında lisanslanmıştır. Daha fazla bilgi için [LICENSE](LICENSE) dosyasına bakın.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyigitt%2Fvisa-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyigitt%2Fvisa-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyigitt%2Fvisa-checker/lists"}