diff --git a/README.md b/README.md
index 50ca743..b3995ef 100644
--- a/README.md
+++ b/README.md
@@ -1,131 +1,254 @@
-
+
+
-
-
-
-
+
+
+
-HappyFappy için komutlar paketlenmiş `wscraper` CLI üzerinden çalışır. Proje çoklu site desteği için `src/` paket yapısına göre düzenlenmiştir.
-## 1) Repo Clone
+# wscraper
-```bash
-git clone
-cd
-```
+`wscraper`, tracker bookmark / wishlist akışlarını ortak bir Python adapter katmanında toplayan çoklu tracker scraper paketidir. Bugünkü kullanım şekli iki parçalıdır:
-## 2) Kurulum
+- `bin/wscraper/`: Python paketinin kendisi, tracker adapter'ları ve CLI
+- `bin/wscraper-service/server.py`: `q-buffer` backend'in HTTP ile konuştuğu host-side servis
+
+`q-buffer` watcher akışı artık `wscraper` CLI'yi doğrudan Docker içinde spawn etmek yerine, host makinede çalışan `wscraper-service` üzerinden kullanır. Bunun ana nedeni `scrapling + Playwright` zincirinin tracker tarafında daha stabil çalışmasının host ortamında olmasıdır.
+
+## Desteklenen Tracker'lar
+
+- `happyfappy` (`hf`)
+- `privatehd` (`phd`)
+
+Desteklenen ortak aksiyonlar:
+
+- `get-bookmarks`
+- `download-torrent-files`
+- `remove-bookmark`
+
+## Mimari
+
+`wscraper` paket yapısı artık tracker-registry tabanlıdır:
+
+- `src/wscraper/registry.py`
+ - desteklenen tracker adapter'larını kaydeder
+- `src/wscraper/types.py`
+ - ortak `BookmarkItem`, `DownloadResult`, `TrackerAdapter` tiplerini tanımlar
+- `src/wscraper/sites/happyfappy.py`
+ - HappyFappy adapter'ı
+- `src/wscraper/sites/privatehd.py`
+ - PrivateHD adapter'ı
+- `src/wscraper/cli.py`
+ - tüm tracker'lar için ortak CLI entrypoint
+
+Bu sayede yeni tracker eklemek için mevcut CLI'yi kopyalamak yerine sadece yeni bir adapter yazmak yeterlidir.
+
+## Kurulum
### macOS / Linux
```bash
-python3 -m venv .venv
+cd bin/wscraper
+python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e .
scrapling install
```
-### Windows (PowerShell)
+Alternatif:
+
+- `python3.12` yoksa `python3.11` veya `python3.10` kullan
+- `scrapling install`, Playwright/browser bağımlılıklarını kurar
+
+### Windows PowerShell
```powershell
-py -3.11 -m venv .venv
+cd bin/wscraper
+py -3.12 -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install -e .
scrapling install
```
-### Windows (CMD)
+## CLI Kullanımı
-```bat
-py -3.11 -m venv .venv
-.venv\Scripts\activate.bat
-python -m pip install -U pip
-python -m pip install -e .
-scrapling install
+Genel form:
+
+```bash
+wscraper --action [opsiyonlar]
```
-Not: Ortamı aktive ettikten sonra komutlar `wscraper ...` olarak kullanılabilir. İstersen `python -m wscraper ...` da kullanabilirsin.
-
-## 3) HappyFappy Komutları
-
-### Bookmarks Çekme
+### Bookmark / Wishlist Çekme
```bash
wscraper happyfappy --action get-bookmarks -c cookies.txt -o bookmarks.json
+wscraper privatehd --action get-bookmarks -c cookies.txt -o bookmarks.json
+```
+
+İsteğe bağlı `wishlist_url` override:
+
+```bash
+wscraper privatehd --action get-bookmarks -c cookies.txt --wishlist-url "https://privatehd.to/bookmarks" -o bookmarks.json
```
### Torrent Dosyası İndirme
```bash
-wscraper happyfappy --action download-torrent-files -u "https://www.happyfappy.net/torrents.php?id=110178" -c cookies.txt -o torrent
+wscraper happyfappy --action download-torrent-files \
+ -c cookies.txt \
+ -u "https://www.happyfappy.net/torrents.php?id=110178" \
+ --title "Sample" \
+ --image-url "https://example.com/poster.jpg" \
+ -o torrent
```
-### Torrent İndir + Bookmark Kaldır
-
-`--rm-bookmark` (kisa alias: `-rmb`) flag'i verildiginde, torrent dosyasi basariyla indirildikten sonra ayni torrent detay sayfasindaki bookmark remove mekanizmasi dinamik olarak bulunur ve tetiklenir.
-
```bash
-wscraper happyfappy --action download-torrent-files --rm-bookmark -u "https://www.happyfappy.net/torrents.php?id=110178" -c cookies.txt -o torrent
+wscraper privatehd --action download-torrent-files \
+ -c cookies.txt \
+ -u "https://privatehd.to/torrent/12345" \
+ --download-url "https://privatehd.to/download.php?id=12345" \
+ --title "Sample" \
+ -o torrent
```
-Davranis kurallari:
-
-- Torrent indirme basarisizsa bookmark silme adimina gecilmez.
-- `--rm-bookmark` verilmis ve bookmark silme basarisizsa komut `exit code 1` ile biter.
-- `--rm-bookmark` verilmemisse yalnizca indirme akisi calisir.
-
-Bookmark remove tespiti tek bir sabit HTML selector'ine bagli degildir:
-
-- oncelik `onclick`/event sinyalleri (or. `Unbookmark(...)`)
-- `id/class/href` icinde bookmark semantigi
-- remove/delete/unbookmark benzeri metin ve attribute sinyalleri
-- torrent id ile iliskili kontrol eslestirmesi
-
-## 4) Kısa Alias Kullanımı
+### Bookmark Silme
+
+```bash
+wscraper happyfappy --action remove-bookmark \
+ -c cookies.txt \
+ -u "https://www.happyfappy.net/torrents.php?id=110178" \
+ --title "Sample"
+```
+
+```bash
+wscraper privatehd --action remove-bookmark \
+ -c cookies.txt \
+ -u "https://privatehd.to/torrent/12345" \
+ --remove-token "bookmark-delete-token" \
+ --title "Sample"
+```
+
+### Kısa Alias'lar
```bash
-# site alias: hf
-# action alias: gb (get-bookmarks), dtf (download-torrent-files)
wscraper hf -a gb -c cookies.txt -o bookmarks.json
-wscraper hf -a dtf -u "https://www.happyfappy.net/torrents.php?id=110178" -c cookies.txt -o torrent
-wscraper hf -a dtf --rm-bookmark -u "https://www.happyfappy.net/torrents.php?id=110178" -c cookies.txt -o torrent
-wscraper hf -a dtf -rmb -u "https://www.happyfappy.net/torrents.php?id=110178" -c cookies.txt -o torrent
+wscraper phd -a gb -c cookies.txt -o bookmarks.json
+wscraper hf -a dtf -c cookies.txt -u "https://www.happyfappy.net/torrents.php?id=110178" -o torrent
+wscraper phd -a rb -c cookies.txt -u "https://privatehd.to/torrent/12345" --remove-token "token"
```
-## 5) Proje Dizini
+## q-buffer ile Entegrasyon
+
+`q-buffer` içinde watcher tarafı artık şu şekilde çalışır:
+
+1. UI'dan watcher tanımlanır
+2. `q-buffer` backend cookie'yi şifreli saklar
+3. Docker içindeki `server`, host'taki `wscraper-service`e HTTP çağrısı yapar
+4. `wscraper-service`, `wscraper` adapter'ı ile bookmarkları çeker
+5. yeni bookmark için torrent dosyasını indirir
+6. `q-buffer` backend `.torrent` içeriğini alır ve qBittorrent'e yollar
+7. başarılı import sonrası bookmark tracker tarafında kaldırılır
+
+Bu yüzden `wscraper` tek başına bir CLI olmanın ötesinde artık `q-buffer watcher` entegrasyonunun backend scraping motorudur.
+
+## wscraper-service API
+
+`bin/wscraper-service/server.py` şu endpoint'leri sunar:
+
+- `GET /health`
+- `GET /trackers`
+- `POST /bookmarks`
+- `POST /download`
+- `POST /remove-bookmark`
+
+Örnek `POST /bookmarks` payload:
+
+```json
+{
+ "tracker": "happyfappy",
+ "cookie": "raw-cookie",
+ "wishlistUrl": "optional-override"
+}
+```
+
+Örnek `POST /download` payload:
+
+```json
+{
+ "tracker": "privatehd",
+ "cookie": "raw-cookie",
+ "wishlistUrl": "optional-override",
+ "item": {
+ "pageURL": "https://privatehd.to/torrent/12345",
+ "title": "Example",
+ "downloadURL": "https://privatehd.to/download.php?id=12345",
+ "removeToken": "bookmark-token"
+ }
+}
+```
+
+## q-buffer İlk Kurulumunda wscraper Nasıl Hazırlanır?
+
+Bu adım özellikle önemlidir. `q-buffer` reposunda scraping logic `bin/wscraper/` içindedir. Host servis ise `bin/wscraper-service/server.py` dosyasıdır. Yani:
+
+- `bin/wscraper/` yalnızca `server.py` değildir
+- `server.py`, ayrı `wscraper-service` klasöründedir
+- asıl tracker kodları `bin/wscraper/src/wscraper/...` altındadır
+
+İlk kurulum için önerilen yol:
+
+1. repo root'ta `.env.example` dosyasını `.env` olarak kopyala
+2. `.env` içinde watcher servis ayarlarını gözden geçir:
+ - `WSCRAPER_SERVICE_BASE_URL`
+ - `WSCRAPER_SERVICE_TOKEN`
+ - `WSCRAPER_SERVICE_HOST`
+ - `WSCRAPER_SERVICE_PORT`
+ - `WSCRAPER_SERVICE_PYTHON_BIN`
+3. repo root'ta şu komutu çalıştır:
+
+```bash
+./scripts/bootstrap.sh --dev-mode
+```
+
+Bu script:
+
+- Docker `web` ve `server` servislerini `up --build` ile kaldırır
+- host'ta `.runtime/wscraper-service/.venv` oluşturur
+- `scrapling[fetchers]` kurar
+- `scrapling install` çalıştırır
+- `bin/wscraper-service/server.py` servis sürecini başlatır
+
+Kurulum daha önce tamamsa script aynı işlemleri baştan yapmaz; sadece eksikleri tamamlar.
+
+## Dizin Yapısı
```text
-.
-├── pyproject.toml
-├── requirements.txt
-├── src/
-│ └── wscraper/
-│ ├── __init__.py
-│ ├── __main__.py
-│ ├── cli.py
-│ └── sites/
-│ ├── __init__.py
-│ └── happyfappy.py
-└── README.md
+bin/
+├── wscraper/
+│ ├── README.md
+│ ├── pyproject.toml
+│ ├── setup.py
+│ └── src/
+│ └── wscraper/
+│ ├── cli.py
+│ ├── registry.py
+│ ├── types.py
+│ └── sites/
+│ ├── happyfappy.py
+│ └── privatehd.py
+└── wscraper-service/
+ └── server.py
```
-## 6) E2E Test (Canli)
+## Notlar
-Bu testler gercek siteye istek atar ve link/selector kirilmalarini yakalamayi hedefler.
-
-```bash
-python -m pip install -e ".[test]"
-WSCRAPER_E2E=1 pytest -m e2e -s -vv --color=yes
-```
-
-Opsiyonel degiskenler:
-
-- `WSCRAPER_COOKIE_FILE` (varsayilan: `cookies.txt`)
-- `WSCRAPER_TEST_TORRENT_URL` (varsayilan: `https://www.happyfappy.net/torrents.php?id=110178`)
+- Cookie hem raw string hem Netscape cookie file formatında verilebilir
+- Tracker metadata alanları (`backgroundImage`, `downloadURL`, `removeToken`, `size`, `seeders`, `leechers`) adapter tarafından normalize edilir
+- `q-buffer` tarafında image proxy, watcher item cache ve qBittorrent enrichment katmanları bu scraper çıktısını kullanır