Home

Kargo Takip - Türkiye Kargo Takip Modülü

Türkiye'deki kargo şirketleri için web scraping tabanlı kargo takip modülü.

Özellikler

  • 🚚 Aras Kargo desteği
  • 🔍 Gerçek zamanlı kargo durumu sorgulama
  • 📦 Detaylı kargo bilgileri
  • 🛡️ TypeScript desteği
  • 🎭 User-Agent rotasyonu
  • 🚀 Modüler yapı (yeni kargo şirketleri kolayca eklenebilir)

Kurulum

npm install kargo-takip

Geliştirme için

git clone https://github.com/sw3do/kargo-takip-module.git
cd kargo-takip-module
npm install
npm run build

Kullanım

Temel Kullanım

import { CargoTracker, TrackingStatus } from 'kargo-takip';

const tracker = new CargoTracker();

const result = await tracker.trackArasKargo('KARGO_KODUN');

if (result.success && result.data) {
  console.log('Status:', result.data.status);
  console.log('Sender:', result.data.senderBranch);
  console.log('Receiver:', result.data.receiverBranch);
  
  if (result.status === TrackingStatus.DELIVERED) {
    console.log('Delivered to:', result.data.recipient);
    console.log('Delivery date:', result.data.deliveryDate);
  }
}

// Kaynakları temizle
await tracker.close();

Örnek Çalıştırma

npm run dev
# veya
ts-node example.ts

API

CargoTracker

trackArasKargo(trackingNumber: string): Promise<TrackingResult>

Aras Kargo için kargo takibi yapar.

trackWithProvider(providerName: string, trackingNumber: string): Promise<TrackingResult>

Belirtilen provider ile kargo takibi yapar.

getProviders(): string[]

Mevcut provider'ları listeler.

close(): Promise<void>

Tüm browser instance'larını kapatır.

TrackingResult

interface TrackingResult {
  success: boolean;
  status: TrackingStatus;
  data?: CargoInfo;
  error?: string;
}

CargoInfo

interface CargoInfo {
  trackingNumber: string;
  status: string;
  senderBranch: string;
  receiverBranch: string;
  shipmentDate: string;
  deliveryDate?: string;
  recipient?: string;
  sender?: string;
  cargoType: string;
  weight: string;
  packageCount: string;
  waybillNumber: string;
  paymentType: string;
  deliveryMethod?: string;
  smsCode?: string;
  failureReasons?: FailureReason[];
}

Desteklenen Kargo Şirketleri

  • Aras Kargo - Tam destek
  • 🔄 MNG Kargo - Planlanan
  • 🔄 Yurtiçi Kargo - Planlanan
  • 🔄 PTT Kargo - Planlanan

Geliştirme

Yeni Provider Ekleme

import { CargoProvider, TrackingResult } from '../types';

export class YeniKargo implements CargoProvider {
  public readonly name: string = 'Yeni Kargo';
  
  public async track(trackingNumber: string): Promise<TrackingResult> {
    // Implementation
  }
}

Build

npm run build

Test

npm test

Dokümantasyon

📖 Online Dokümantasyon - GitHub Pages üzerinde otomatik güncellenen dokümantasyon

Yerel dokümantasyon oluşturmak için:

# Dokümantasyonu oluştur
npm run docs

Dokümantasyon docs/ klasöründe oluşturulur ve http://localhost:8080 adresinde görüntülenebilir.

Lisans

MIT

Uyarı

Bu modül web scraping kullanır. Kargo şirketlerinin web sitelerindeki değişiklikler modülün çalışmasını etkileyebilir. Kullanım sıklığınızı makul seviyelerde tutun.