wscraper logo

Gitea Python E2E Tests Platform Layout

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 ```bash git clone cd ``` ## 2) Kurulum ### macOS / Linux ```bash python3.12 -m venv .venv source .venv/bin/activate python -m pip install -U pip python -m pip install -e . scrapling install ``` ### Windows (PowerShell) ```powershell 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) ```bat py -3.12 -m venv .venv .venv\Scripts\activate.bat python -m pip install -U pip python -m pip install -e . scrapling install ``` Not: Ortamı aktive ettikten sonra komutlar `wscraper ...` olarak kullanılabilir. İstersen `python -m wscraper ...` da kullanabilirsin. ## 3) HappyFappy Komutları ### Bookmarks Çekme ```bash wscraper happyfappy --action get-bookmarks -c cookies.txt -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 ``` ### 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 ``` 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ı ```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 ``` ## 5) Proje Dizini ```text . ├── pyproject.toml ├── requirements.txt ├── src/ │ └── wscraper/ │ ├── __init__.py │ ├── __main__.py │ ├── cli.py │ └── sites/ │ ├── __init__.py │ └── happyfappy.py └── README.md ``` ## 6) E2E Test (Canli) 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`)