Skip to content

Repository files navigation

UETDS Telegram Bot

Bu proje, Türkiye Cumhuriyeti e-Devlet kapısı üzerinden UETDS (Ulusal Elektronik Takograf Veri Sunucu) Tarifesiz Yolcu Taşımacılığı işlemlerini otomatikleştiren bir Telegram Bot uygulamasıdır.

Özellikler

Ana Sistem: UETDS Tarifesiz Yolcu Taşımacılığı

  • Türkiye'de taksi, dolmuş, özel araç gibi tarifesiz yolcu taşımacılığı için zorunlu bildirim sistemi
  • e-Devlet kapısı (kamu.turkiye.gov.tr) üzerinden sefer bildirimleri
  • Manuel web sitesi form doldurma sürecinin bot ile otomatikleştirilmesi

Bot'un Temel Yetenekleri

Kimlik Doğrulama

  • e-Devlet girişi: TC kimlik no ve şifre ile giriş
  • CAPTCHA çözme: Telegram üzerinden kullanıcıdan CAPTCHA kodu alma
  • Session yönetimi: Persistent browser ile oturum sürdürme
  • Firma seçimi: Çoklu firma durumunda otomatik seçim

Sefer Yönetimi

  • Sefer ekleme: Tarih, saat, plaka bilgileri ile sefer oluşturma
  • Sefer listeleme: Mevcut seferleri görüntüleme ve filtreleme
  • Plaka bazlı seferler: Belirli plakaya ait seferleri listeleme
  • Transfer işlemleri: Havalimanı-şehir arası transfer seferleri

Yolcu ve Grup Yönetimi

  • Grup ekleme: Seferlere grup ataması
  • Yolcu ekleme: Bireysel yolcu bilgileri ekleme
  • Uyruk seçimi: 200+ ülke desteği ile yolcu uyruğu

Güzergah Sistemi

  • Şehir-ilçe mapping: Türkiye geneli şehir ve ilçe kodları
  • Transfer önerileri: Popüler güzergah şablonları
  • Otomatik kod bulma: Şehir/ilçe isimlerinden sistem kodlarına çevirme

Teknolojiler

  • Node.js (v22.0.0+) + ES Modules
  • Puppeteer - Web otomasyon ve browser yönetimi
  • node-telegram-bot-api - Telegram bot API
  • Cheerio + Axios - HTML parsing ve HTTP istekleri
  • Persistent Browser - Oturum sürekliliği için browser instance'ları

Kurulum

Gereksinimler

  • Node.js 22.0.0 veya üstü
  • NPM veya Yarn
  • Chromium/Chrome browser (Puppeteer için)

Adımlar

  1. Projeyi klonlayın:
git clone <repository-url>
cd telegram-boat
  1. Bağımlılıkları yükleyin:
npm install
  1. Environment dosyasını oluşturun:
cp .env.example .env
  1. .env dosyasını düzenleyin:
NODE_ENV=production
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
UAB_BASE=https://kamu.turkiye.gov.tr
UAB_TCNO=your_tc_number
UAB_SIFRE=your_password
DEBUG_MODE=false
HEADLESS=true

# Timeout ayarları (ms)
CAPTCHA_TIMEOUT=180000
PAGE_TIMEOUT=30000
NAVIGATION_TIMEOUT=30000
JCRYPTION_TIMEOUT=15000
  1. Bot'u başlatın:
npm start

# Geliştirme için:
npm run dev

Kullanım

Temel Komutlar

Giriş İşlemleri

  • /start - Bot'u başlat ve yardım menüsü
  • /login - e-Devlet girişi yap
  • /status - Session durumu kontrol et
  • /close - Browser kapat

Sefer İşlemleri

  • /seferlistesi - Tüm seferleri listele
  • /sefer [PLAKA] - Hızlı sefer (bugün için)

Plaka Yönetimi

  • /plaka [PLAKA] - Aktif plaka set et
  • /plakalistesi - Kayıtlı plakalardan seç
  • /myplaka - Mevcut plakayı göster
  • /plakaminseferlerinilistele - Aktif plakadaki seferler
  • /plakadanseferlistele [PLAKA] - Belirli plakadaki seferler

Transfer İşlemleri (Bugün)

  • /transfer SAAT SAAT - Transfer başlat
  • /güzergah ŞEHİR İLÇE - ŞEHİR İLÇE - Transfer güzergahı seç

İleri Tarih İşlemleri

  • /ileritarih - İleri tarih için transfer
  • /ileritarihiptal - İleri tarih işlemini iptal et

Yolcu İşlemleri

  • /grupekle - Seçili sefere grup ekle
  • /yolcuekle - Seçili sefere yolcu ekle
  • /yolculistesi - Seferdeki yolcuları listele
  • /yolcustatus - Aktif yolcu süreç durumu
  • /yolcutemizle - Yolcu sürecini temizle

Sistem Komutları

  • /systemstatus - Sistem durumu
  • /cleanup - Geçici dosyaları temizle
  • /debug - Debug mod aç/kapat
  • /health - Bot sağlık durumu
  • /info - Sistem bilgileri
  • /ping - Bot yanıt testi
  • /version - Bot versiyonu
  • /help - Detaylı yardım menüsü

Örnek Kullanım

# Transfer işlemi
/transfer 11:11 23:39
/güzergah İSTANBUL FATİH - İSTANBUL KADIKÖY

# Plaka ile işlemler
/plaka 34ABC123
/plakadanseferlistele 34ABC123

Proje Yapısı

├── classes/                 # Core sınıflar
│   ├── BrowserManager.js    # Browser instance yönetimi
│   ├── CaptchaHandler.js    # CAPTCHA çözme sistemi
│   └── UABManager.js        # UAB sistem entegrasyonu
├── commands/                # Telegram komut handler'ları
│   ├── loginCommands.js     # Giriş komutları
│   ├── plakaCommands.js     # Plaka yönetimi
│   ├── transferCommands.js  # Transfer işlemleri
│   ├── passengerCommands.js # Yolcu işlemleri
│   └── utilityCommands.js   # Yardımcı komutlar
├── config/                  # Konfigürasyon dosyaları
│   ├── env.js              # Environment variables
│   ├── cities-districts.js # Şehir/ilçe kodları
│   └── countries.js        # Ülke kodları
├── utils/                   # Yardımcı fonksiyonlar
│   ├── passengerManager.js # Merkezi yolcu yönetimi
│   └── journeyUtils.js     # Sefer yardımcı fonksiyonları
├── htmls/                   # Web sayfası örnekleri (debug)
├── ss/                     # Screenshot'lar ve geçici dosyalar
├── index.js                # Ana uygulama dosyası
└── package.json            # Proje bağımlılıkları

Geliştirme

Debug Modu

Debug modunu açmak için .env dosyasında:

DEBUG_MODE=true

Loglama

global.debugLog?.("Debug mesajı", data);

Browser Ayarları

Geliştirme sırasında browser'ı görmek için:

HEADLESS=false

Güvenlik

  • TC kimlik bilgileri ve şifreler .env dosyasında saklanır
  • Session bilgileri memory'de tutulur, disk'e yazılmaz
  • CAPTCHA image'ları geçici olarak oluşturulup silinir
  • Browser session'ları güvenli şekilde yönetilir

Sorun Giderme

Yaygın Sorunlar

  1. CAPTCHA Timeout

    • .env dosyasında CAPTCHA_TIMEOUT değerini artırın
    • Telegram'da CAPTCHA kodunu hızlıca girin
  2. Session Expired

    • /login komutu ile yeniden giriş yapın
    • Browser açık tutmaya çalışın
  3. Plaka Bulunamadı

    • /plakalistesi ile mevcut plakaları kontrol edin
    • Plaka formatının doğru olduğundan emin olun
  4. Form Hatası

    • Şehir/ilçe kodlarının doğru olduğundan emin olun
    • Tarih formatını kontrol edin (GG/AA/YYYY)

Memory Kullanımı

# Sistem durumunu kontrol edin
/systemstatus

# Cleanup yapın
/cleanup

Katkıda Bulunma

  1. Fork yapın
  2. Feature branch oluşturun (git checkout -b feature/AmazingFeature)
  3. Commit yapın (git commit -m 'Add some AmazingFeature')
  4. Branch'e push yapın (git push origin feature/AmazingFeature)
  5. Pull Request oluşturun

Lisans

Bu proje MIT lisansı altında lisanslanmıştır.

Yasal Uyarı ve Sorumluluk Reddi

Bu proje bağımsız bir açık kaynak çalışmasıdır; T.C. Ulaştırma ve Altyapı Bakanlığı, e-Devlet Kapısı veya herhangi bir kamu kurumu tarafından geliştirilmemiş, onaylanmamış ya da desteklenmemektedir.

Yazılımı yalnızca erişim ve işlem yapma yetkiniz bulunan hesaplar, veriler ve hizmetler üzerinde kullanın. Kimlik bilgilerinin ve kişisel verilerin korunması; gerekli izin ve aydınlatmaların alınması; yapılan bildirimlerin doğruluğu; ilgili mevzuata, kurum kurallarına ve hizmet şartlarına uyum tamamen kullanıcının sorumluluğundadır.

Yazılım, MIT Lisansı'nda belirtildiği üzere, herhangi bir açık veya zımni garanti olmaksızın "olduğu gibi" sunulur. Yürürlükteki hukukun izin verdiği ölçüde; geliştirici ve katkıda bulunanlar yazılımın kullanımından, kullanılamamasından veya hatalı/izinsiz kullanımından doğan idari, hukuki, mali ya da teknik sonuçlardan sorumlu tutulamaz. Bu açıklama hukuki danışmanlık niteliğinde değildir.

İletişim

Sorularınız için GitHub Issues kullanın.


Not: Bu bot resmî e-Devlet sistemleriyle etkileşim kurar. Kullanmadan önce yukarıdaki yasal uyarıyı okuyun ve güncel T.C. mevzuatına uygun hareket edin.

About

Bu proje, Türkiye Cumhuriyeti e-Devlet kapısı üzerinden UETDS (Ulusal Elektronik Takograf Veri Sunucu) Tarifesiz Yolcu Taşımacılığı işlemlerini otomatikleştiren bir Telegram Bot uygulamasıdır.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages