Files
subwatcher/doc/ARCHITECTURE_AND_FLOW.md
szbk d38fc3b390 feat(api): turkcealtyazi gerçek modunu stabil hale getir ve mock altyapısını kaldır
Mock fallback mantığını ve determinantik mock üretim kodlarını kaldırarak
TurkceAltyazi sağlayıcısını tamamen gerçek moda geçirdi. İyileştirilmiş
arama, indirme ve çerez yönetimi ile sağlam bir entegrasyon sağlandı.

- MockArtifact ve deterministic modüllerini kaldır
- TurkceAltyaziProvider'da mock fallback mantığını tamamen kaldır
- HTTP çerez yönetimi, retry mantığı ve hata işleme iyileştirmeleri
- ENABLE_TA_STEP_LOGS yapılandırması ile adım adım loglama
- TURKCEALTYAZI_ALLOW_MOCK_FALLBACK ortam değişkenini kaldır
- Dokümantasyonu gerçek mod reflektif olarak güncelle
- OpenSubtitles sağlayıcını gerçek entegrasyon tamamlanana kadar pasif yap
- Varsayılan kaynak etiketini 'mock' yerine 'unknown' olarak güncelle
2026-02-16 10:50:59 +03:00

83 lines
1.5 KiB
Markdown

# Mimari ve Is Akisi
## Servisler
## `services/core`
Sorumluluklar:
- Dizin izleme (`/media/tv`, `/media/movie`)
- Stabil dosya kontrolu
- Dosya adi parse
- ffprobe media analizi
- BullMQ pipeline orchestration
- Job/log API + SSE stream
- Review endpointleri
Queue'lar:
- `fileEvents`
- `mediaAnalysis`
- `subtitleFetch`
- `finalizeWrite`
Durumlar (ozet):
- `PENDING`
- `WAITING_FILE_STABLE`
- `PARSED`
- `ANALYZED`
- `REQUESTING_API`
- `FOUND_TEMP`
- `NORMALIZING_ENCODING`
- `WRITING_SUBTITLE`
- `DONE`
- `NEEDS_REVIEW`
- `NOT_FOUND`
- `AMBIGUOUS`
- `ERROR`
## `services/api`
Sorumluluklar:
- `/v1/subtitles/search`
- `/v1/subtitles/choose`
- archive extraction + guvenlik
- icerik tabanli SRT/ASS dogrulama
- scoring + best/ambiguous/not_found karari
- temp cleanup
Providerlar:
- `TurkceAltyaziProvider`
- `OpenSubtitlesProvider`
Not:
- TurkceAltyazi provider gercek HTTP+HTML akisi ile calisir.
- OpenSubtitles provider real entegrasyon tamamlanana kadar pasiftir.
## `services/ui`
Sayfalar:
- Dashboard
- Jobs
- Job Detail (SSE canli log)
- Review
- Settings
- Watched Paths
## Veri modeli (Mongo)
- `watched_paths`
- `settings`
- `media_files`
- `jobs`
- `job_logs`
## Uctan uca akis (movie ornegi)
1. Watcher `add/change` event yakalar.
2. `fileEvents` job olusur.
3. Stabil kontrol -> parse -> media kaydi.
4. `mediaAnalysis` ffprobe calistirir.
5. `subtitleFetch` API `search` cagirir.
6. API provider adaylarini indirir/isler.
7. best secilirse core `finalizeWrite` ile dosyayi yazar.
8. Job `DONE` olur, loglar UI'da canli akar.