"""pornditt.com — direct HTML scrape.

KVS-style site (kt_player engine). Search URL: `/search/<slug>/?from=<page>` z slug-style
zapytaniem (spacje → `-`). Sceny renderują się na subdomenie `v.pornditt.com/videos/<id>/<slug>/`,
więc regex matchuje oba (z i bez `v.` prefix).

Sitetag `porndittcom` (legacy z porn-app DEFAULT_SITETAGS — suffix-stripped name).
"""
from __future__ import annotations

import re

from app.connectors.direct_scrapers._search_base import BaseSearchScraper


class PornDittScraper(BaseSearchScraper):
    sitetag = "porndittcom"
    _search_url_template = "https://pornditt.com/search/{query}/?from={page}"
    _scene_url_re = re.compile(
        r'href="(?P<url>https://(?:v\.)?pornditt\.com/videos/(?P<sid>\d+)/(?P<slug>[a-z0-9\-]+))/"',
        re.IGNORECASE,
    )

    def _format_query_for_url(self, query: str) -> str:
        # KVS slug: lowercase, spacja/interpunkcja → `-`. URL-encoded (`+`) tu nie zadziała.
        return re.sub(r"[^a-z0-9]+", "-", query.lower()).strip("-")
