From 7eca36236198cdff4b01146f2ef9abb5131cfa14 Mon Sep 17 00:00:00 2001 From: MoTechSys Date: Tue, 6 Oct 2026 00:12:01 +0000 Subject: [PATCH 1/2] feat(bot): Telegram bot over the Basira API Thin client (python-telegram-bot 22) over POST /v1/check and /v1/check/image: status, verbatim source_text + reference, bold differences from the API diff, links, transparency line. No model, no storage (ADR-004), all prose from messages/*.json. Groups: /check (reply or argument). Polling default (E-059). Measured: ruff + mypy --strict clean, 73 tests; live 11/11 private scenarios, channel forward and group /check against https://basirapp.site. --- .github/workflows/ci.yml | 9 + AI_USAGE.md | 1 + CHANGELOG.md | 1 + Makefile | 8 +- README.md | 1 + docker-compose.yml | 12 + docs/DECISIONS.md | 1 + docs/INTEGRATIONS.md | 4 + integrations/telegram/.env.example | 11 + integrations/telegram/Dockerfile | 10 + integrations/telegram/README.md | 51 +++ integrations/telegram/bot/__init__.py | 7 + integrations/telegram/bot/client.py | 117 +++++ integrations/telegram/bot/config.py | 88 ++++ integrations/telegram/bot/handlers.py | 424 ++++++++++++++++++ integrations/telegram/bot/main.py | 105 +++++ integrations/telegram/bot/render.py | 422 +++++++++++++++++ integrations/telegram/bot/strings_ar.py | 87 ++++ integrations/telegram/pyproject.toml | 53 +++ integrations/telegram/scripts/live_e2e.py | 125 ++++++ integrations/telegram/tests/conftest.py | 71 +++ integrations/telegram/tests/fake_telegram.py | 214 +++++++++ .../telegram/tests/fixtures/err_413.json | 1 + .../telegram/tests/fixtures/err_422.json | 1 + .../telegram/tests/fixtures/found_quran.json | 1 + .../telegram/tests/fixtures/image_hadith.json | 1 + .../telegram/tests/fixtures/multi.json | 1 + .../tests/fixtures/needs_review_quran.json | 1 + .../telegram/tests/fixtures/no_quotes.json | 1 + .../tests/fixtures/not_found_hadith.json | 1 + .../tests/fixtures/partial_hadith.json | 1 + .../telegram/tests/fixtures/refusal.json | 1 + .../telegram/tests/fixtures/rules.json | 1 + .../telegram/tests/fixtures/sources.json | 1 + integrations/telegram/tests/test_client.py | 112 +++++ integrations/telegram/tests/test_handlers.py | 310 +++++++++++++ integrations/telegram/tests/test_render.py | 220 +++++++++ integrations/telegram/tests/test_strings.py | 31 ++ 38 files changed, 2506 insertions(+), 1 deletion(-) create mode 100644 integrations/telegram/.env.example create mode 100644 integrations/telegram/Dockerfile create mode 100644 integrations/telegram/README.md create mode 100644 integrations/telegram/bot/__init__.py create mode 100644 integrations/telegram/bot/client.py create mode 100644 integrations/telegram/bot/config.py create mode 100644 integrations/telegram/bot/handlers.py create mode 100644 integrations/telegram/bot/main.py create mode 100644 integrations/telegram/bot/render.py create mode 100644 integrations/telegram/bot/strings_ar.py create mode 100644 integrations/telegram/pyproject.toml create mode 100644 integrations/telegram/scripts/live_e2e.py create mode 100644 integrations/telegram/tests/conftest.py create mode 100644 integrations/telegram/tests/fake_telegram.py create mode 100644 integrations/telegram/tests/fixtures/err_413.json create mode 100644 integrations/telegram/tests/fixtures/err_422.json create mode 100644 integrations/telegram/tests/fixtures/found_quran.json create mode 100644 integrations/telegram/tests/fixtures/image_hadith.json create mode 100644 integrations/telegram/tests/fixtures/multi.json create mode 100644 integrations/telegram/tests/fixtures/needs_review_quran.json create mode 100644 integrations/telegram/tests/fixtures/no_quotes.json create mode 100644 integrations/telegram/tests/fixtures/not_found_hadith.json create mode 100644 integrations/telegram/tests/fixtures/partial_hadith.json create mode 100644 integrations/telegram/tests/fixtures/refusal.json create mode 100644 integrations/telegram/tests/fixtures/rules.json create mode 100644 integrations/telegram/tests/fixtures/sources.json create mode 100644 integrations/telegram/tests/test_client.py create mode 100644 integrations/telegram/tests/test_handlers.py create mode 100644 integrations/telegram/tests/test_render.py create mode 100644 integrations/telegram/tests/test_strings.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f510fa4..d68a454 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,6 +49,15 @@ jobs: - run: npm run lint && npm run typecheck && npm test -- --run - run: npm run build - run: npm audit --omit=dev --audit-level=high + bot: + runs-on: ubuntu-latest + defaults: { run: { working-directory: integrations/telegram } } + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: { python-version: "3.12", cache: pip } + - run: pip install -e '.[dev]' && pip install -e '../../backend' + - run: ruff check . && ruff format --check . && mypy --strict . && pytest -q secrets: runs-on: ubuntu-latest steps: diff --git a/AI_USAGE.md b/AI_USAGE.md index 0e87e0b..d28db4f 100644 --- a/AI_USAGE.md +++ b/AI_USAGE.md @@ -18,6 +18,7 @@ ### المزوّدون المدعومون أي واجهة متوافقة مع OpenAI: Gemini (مجاني 1,500/يوم)، Groq، OpenAI. يُضبط بـ `LLM_BASE_URL/LLM_API_KEY/LLM_MODEL`. التقييم الرسمي (`eval/REPORT.md`) يُشغَّل بـ `mock` ليكون **قابلًا للتكرار بالبايت**؛ ويُعاد بمزوّد حقيقي مع سطر «تباين الاستخراج». +- بوت تيليجرام (`integrations/telegram`) لا يحوي أي نموذج؛ هو عميل رقيق لواجهة بصيرة البرمجية. ## 2) في البناء (أثناء التطوير) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91a779a..31bcf72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/); versions are git - **E-057 whole-ayah anchor**: a complete ayah typed with no marker is detected whatever its words' frequency. - **E-058 phrase-rarity anchor**: short famous texts typed with no marker («إنما الأعمال بالنيات», «لا ضرر ولا ضرار», «إن الله مع الصابرين») are detected; runs extend backwards over leading particles; isnad fragments never anchor. Composer hint: no marker, no hamza needed. 15 tests + 7 smoke cases «as people write». - Evaluation: category B expectations are now resolved *by construction* from the corpus (`eval/materialize.rasm_expectation`). +- Telegram bot `integrations/telegram` (@BasiraCheckBot): thin client over `/v1/check` and `/v1/check/image`; no model, no storage, texts from `messages/*.json`; 73 tests; optional compose profile `bot`; CI job `bot` (E-059). ### Verified pytest 344 · ruff + mypy strict · eval-full **150/150 · unsafe 0 · 0/500** (fixture and full index) · IslamicEval 1B unchanged **78.54 %, false confirmations 2**. diff --git a/Makefile b/Makefile index 4676a43..168a8ed 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ URL ?= http://localhost:8000 .PHONY: help bootstrap fetch fetch-translations index fixture \ lint fmt test gates smoke web-install web-lint web-test web-build web-gates \ serve serve-mcp mcp-demo eval eval-full eval-english eval-english-picker \ - islamiceval islamiceval-1a scholar docker clean + islamiceval islamiceval-1a scholar docker clean bot-install bot-test help: ## list targets @awk 'BEGIN{FS=":.*## "} /^[a-z0-9-]+:.*## /{printf " \033[1m%-20s\033[0m %s\n",$$1,$$2}' $(MAKEFILE_LIST) @@ -78,3 +78,9 @@ scholar: ## scholar-lens probe against a running server (URL=...) clean: ## remove caches and build output (keeps corpora and venv) find . -type d \( -name __pycache__ -o -name .pytest_cache -o -name .mypy_cache -o -name .ruff_cache \) -prune -exec rm -rf {} + rm -rf frontend/dist eval/results + +# ---- Telegram bot (integrations/telegram) --------------------------------------------------------- +bot-install: ## venv + deps for the Telegram bot + cd integrations/telegram && python3 -m venv .venv && .venv/bin/pip install -q -e '.[dev]' +bot-test: ## bot gates: ruff + mypy strict + pytest + cd integrations/telegram && .venv/bin/ruff check . && .venv/bin/ruff format --check . && .venv/bin/mypy --strict . && .venv/bin/pytest -q diff --git a/README.md b/README.md index 1788dff..6d33790 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Full invariants I1–I17 and validator passes V1–V6: [`SAFETY.md`](SAFETY.md). | **Verification receipt** — stateless, replayable | `POST /v1/receipt` · `GET /v/{token}?h=` | live | | **MCP server** — 6 tools for AI assistants | `/mcp` (`BASIRA_MCP=1`) | live | | Developer gate: sources, grounding rules, measured model catalog | `/v1/sources` · `/v1/rules` · `/v1/models` | live | +| **Telegram bot** — forward a text or image, get the source verbatim | [@BasiraCheckBot](https://t.me/BasiraCheckBot) · `integrations/telegram/` | live | | Model settings — Genspark key saved once on the server | `/settings` · `PUT /v1/models/config` | live | ## Measured, not claimed diff --git a/docker-compose.yml b/docker-compose.yml index 5e39509..76057c3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,5 +29,17 @@ services: timeout: 5s retries: 3 + telegram-bot: # optional: docker compose --profile bot up + profiles: ["bot"] + build: ./integrations/telegram + env_file: [./integrations/telegram/.env] + environment: + BASIRA_API_URL: http://basira:8000 + depends_on: [basira] + read_only: true + tmpfs: [/tmp] + mem_limit: 128m + restart: unless-stopped + volumes: basira-data: diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md index fbd4954..a2b404d 100644 --- a/docs/DECISIONS.md +++ b/docs/DECISIONS.md @@ -89,3 +89,4 @@ | E-058 | 2026-10-06 | **Phrase-rarity anchor + backward extension + isnad guard.** `extract/anchor.detect` accepts an unmarked run of ≥ 3 tokens that occurs ≤ 60× verbatim in the whole corpus (with ≥ 1 content word, not isnad-shaped), and extends every run backwards over leading stop-words. Composer shows «لا يلزم قال تعالى… ولا الهمزات». | Supervisor feedback (2026-10-05): «إنما الأعمال بالنيات» alone → zero matches, with «قال رسول الله» → found; «judges will say the site does not work». Phrase rarity separates quotations (7×, 2×, 9×) from formulaic prose (92 083×, 3 248×, 1 191×) by three orders of magnitude; the band 27 ↔ 105 is empty. The old 6-content-word rule hid every short famous hadith. Verified: 15 new tests (`test_as_people_write.py`), smoke +7 unmarked cases, eval-full 150/150 · 0/500 unchanged. | `backend/app/extract/anchor.py`, `scripts/smoke.py`, `frontend/src/{Check.tsx,i18n.ts}` | | E-057 | 2026-10-05 | **CI activated; non-product material removed from the tree.** The workflow lives in `.github/workflows/ci.yml` and builds the sha256-pinned corpora → index → fixture before tests, so corpus-backed tests run instead of skipping. | Measured on a clean clone: pytest 304 passed, eval 150/150, unsafe 0. | `.github/workflows/ci.yml` | | E-058 | 2026-10-05 | **Release 0.3.1 hygiene.** Runtime deps and Python 3.12 declared; `run_1b.py` aligned with `Pipeline.check()` and IslamicEval re-measured (1B 78.54 %, false confirmations 2); docs point only at public documents; BUILD_SHA passed into the image. | A clean install failed at collection; `make islamiceval` crashed with ValueError. | `backend/pyproject.toml`, `eval/islamiceval/`, `Dockerfile`, `docs/` | +| E-059 | 2026-10-06 | **Telegram bot as a thin API client** (`integrations/telegram`). Long polling by default: no public port, no TLS endpoint, no webhook secret to manage, works behind NAT; webhook is opt-in. No storage: text and image bytes exist only for one request (ADR-004); logs carry counts and latency only. Every sentence about a quotation is a `messages/*.json` template; bold ranges come from the API `diff`. | 73 tests (render/client/handlers through the real PTB `Application`); live 11/11 private scenarios + channel forward + group `/check`. Privacy mode drops plain @mentions (0 updates measured) → groups use `/check`. | `integrations/telegram/**`, `Makefile`, `.github/workflows/ci.yml`, `docker-compose.yml` | diff --git a/docs/INTEGRATIONS.md b/docs/INTEGRATIONS.md index 982bb38..83a9df6 100644 --- a/docs/INTEGRATIONS.md +++ b/docs/INTEGRATIONS.md @@ -120,3 +120,7 @@ is what makes two faithful encodings of the Mushaf agree. `remote returned 1036 * OAuth / user accounts (nothing to protect; contradicts «لا نحفظ شيئًا»). * Semantic/embedding search as a verification primitive (non-deterministic; I7 reproducibility). * Serving tafsir, translations or any interpretive text (red line: never generate or curate religious text beyond the pinned corpora). + +## 4. Telegram bot + +[@BasiraCheckBot](https://t.me/BasiraCheckBot) — `integrations/telegram/` (README there). Forward any text or image; the bot calls `POST /v1/check` or `POST /v1/check/image` and renders the response with `messages/ar.json` only: status, verbatim `source_text`, reference, bold differences from `diff`, links, transparency line. No model in the bot, nothing stored. Run: `docker compose --profile bot up`. Decision: E-059. diff --git a/integrations/telegram/.env.example b/integrations/telegram/.env.example new file mode 100644 index 0000000..9879e55 --- /dev/null +++ b/integrations/telegram/.env.example @@ -0,0 +1,11 @@ +# Copy to .env (git-ignored). Never commit a real token. +TELEGRAM_BOT_TOKEN= # from @BotFather +BASIRA_API_URL=https://basirapp.site # or http://basira:8000 inside docker compose +BASIRA_WEB_URL=https://basirapp.site +BASIRA_EVAL_KEY= # optional, sent as X-Eval-Key +BOT_RATE_PER_MIN=10 # per user, in memory +MAX_TEXT=5000 +# Webhook mode (optional; polling when empty) +TELEGRAM_WEBHOOK_URL= +TELEGRAM_WEBHOOK_SECRET= +PORT=8080 diff --git a/integrations/telegram/Dockerfile b/integrations/telegram/Dockerfile new file mode 100644 index 0000000..1118088 --- /dev/null +++ b/integrations/telegram/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3.12-slim +ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 BOT_HEARTBEAT_FILE=/tmp/basira-bot.heartbeat +WORKDIR /app +COPY pyproject.toml ./ +COPY bot/ bot/ +RUN pip install --no-cache-dir . && useradd -r -u 10001 bot +USER bot +HEALTHCHECK --interval=30s --timeout=5s --retries=3 \ + CMD python -c "import time,sys;sys.exit(0 if time.time()-int(open('/tmp/basira-bot.heartbeat').read())<90 else 1)" +CMD ["python", "-m", "bot.main"] diff --git a/integrations/telegram/README.md b/integrations/telegram/README.md new file mode 100644 index 0000000..70839fd --- /dev/null +++ b/integrations/telegram/README.md @@ -0,0 +1,51 @@ +# Basira Telegram bot + +A thin client over the public Basira API. Send or forward a text or an image that quotes the Quran or Hadith; the +bot replies with the status, the source text **verbatim**, its reference, the differing words in **bold** (from the +API `diff`), source/search links and the transparency line. Live: **[@BasiraCheckBot](https://t.me/BasiraCheckBot)**. + +## What the bot does not do +- It holds no model and writes no religious text. Every sentence about a quotation is a template from + `messages/ar.json` (served by `GET /v1/messages/ar`); `source_text` / `ref_label_ar` are inserted as received. +- It issues no judgement; `tests/test_strings.py` and `tests/test_render.py` run the backend lexicon scanner. +- It stores nothing (ADR-004): no database, no files; image bytes live in a `BytesIO` closed after the request; + logs carry chat type, input kind, status counts and latency only (`test_logs_never_contain_user_text_or_ids`). +- An image is never `found` (the API enforces it; the bot shows the OCR text first, under «راجعه»). + +## Create a bot (@BotFather) +1. `/newbot` → name → username ending in `bot`. +2. Copy the token into `.env` as `TELEGRAM_BOT_TOKEN` (never into git). +3. `/setprivacy` → Enable (the bot then sees only commands and replies in groups). + +## Run +```bash +make bot-install && make bot-test # from the repo root +cd integrations/telegram && cp .env.example .env # fill the token +set -a; . ./.env; set +a; .venv/bin/python -m bot.main # long polling +docker compose --profile bot up -d # with the API container (BASIRA_API_URL=http://basira:8000) +``` +Webhook mode: set `TELEGRAM_WEBHOOK_URL` and `TELEGRAM_WEBHOOK_SECRET` (16–256 chars); the bot listens on `PORT` +at `/telegram`. + +## Usage and limits +| Input | Behaviour | +|---|---| +| `/start`, `/help` | welcome, transparency and privacy lines from `messages/ar.json`, site button | +| text / forward | `POST /v1/check` → one reply per result, split on block boundaries under 4096 chars | +| photo or PNG/JPEG/WebP document ≤ 6 MB | `POST /v1/check/image` (field `image`) → OCR text, then results | +| `/limits`, `/sources` | `GET /v1/rules?ui_lang=ar` (first 1500 chars), `GET /v1/sources` | +| groups | `/check ` or `/check` as a reply to a text/photo; plain messages are ignored | +| > 5000 chars | refused locally with `errors.text_too_long` | +| API 413/422/429/503 | `error.message_ar` verbatim (429 adds «حاول بعد دقيقة») | + +Rate limit 10 messages/minute/user (in memory). Timeouts: 30 s text, 60 s image; a «جارٍ الفحص…» placeholder is +edited into the result. **Known limit:** with privacy mode on, Telegram does not deliver plain `@mention` messages +to bots (measured: 0 updates), so in groups use `/check`; mentions work only if privacy is disabled or the bot is +an admin. + +## Measured (2026-10-06) +- `ruff check . && ruff format --check . && mypy --strict . && pytest -q` → **73 passed**, 0 lint/type errors. +- Live, real account → @BasiraCheckBot → https://basirapp.site (`scripts/live_e2e.py`): 11/11 private scenarios + (start, found, needs_review with bold «علي»/«عَلَىٰ», not_found + links, partial_match, refusal, no quotes, + sources, limits, unsupported file, image → `needs_review/image_unconfirmed`), plus channel forward (2 × found), + group `/check` reply, group plain text ignored, group `/check` usage. Bot latency 1.9–9.0 s per check. diff --git a/integrations/telegram/bot/__init__.py b/integrations/telegram/bot/__init__.py new file mode 100644 index 0000000..4a4c154 --- /dev/null +++ b/integrations/telegram/bot/__init__.py @@ -0,0 +1,7 @@ +"""Basira Telegram bot — a thin client over the public Basira API (POST /v1/check, /v1/check/image). + +The bot holds no model, writes no religious text and stores nothing: every word shown about a quotation comes +from the API response or from ``messages/*.json`` (served at ``GET /v1/messages/{lang}``). +""" + +__version__ = "0.1.0" diff --git a/integrations/telegram/bot/client.py b/integrations/telegram/bot/client.py new file mode 100644 index 0000000..7987f2e --- /dev/null +++ b/integrations/telegram/bot/client.py @@ -0,0 +1,117 @@ +"""Async HTTP client for the Basira API. Request bodies are never logged or kept after the call.""" + +from __future__ import annotations + +import asyncio +from typing import Any, cast + +import httpx + +from bot import __version__ + +JSON = dict[str, Any] + + +class BasiraError(Exception): + """Base class; ``message_ar`` is safe to show to the user as is.""" + + message_ar: str = "" + + +class ApiError(BasiraError): + """The API answered with its error envelope ``{"error": {"code", "message_ar", "message_en"}}``.""" + + def __init__(self, status: int, code: str, message_ar: str) -> None: + super().__init__(f"HTTP {status} {code}") + self.status = status + self.code = code + self.message_ar = message_ar + + +class UnreachableError(BasiraError): + """Connection failure, or a response that is not the API's JSON.""" + + +class ApiTimeoutError(BasiraError): + """The request exceeded its deadline.""" + + +class BasiraClient: + def __init__( + self, + base_url: str, + *, + eval_key: str = "", + text_timeout: float = 30.0, + image_timeout: float = 60.0, + transport: httpx.AsyncBaseTransport | None = None, + ) -> None: + headers = {"User-Agent": f"basira-telegram-bot/{__version__}", "Accept": "application/json"} + if eval_key: + headers["X-Eval-Key"] = eval_key + self._text_timeout = text_timeout + self._image_timeout = image_timeout + self._http = httpx.AsyncClient( + base_url=base_url, + headers=headers, + timeout=httpx.Timeout(text_timeout, connect=10.0), + transport=transport, + follow_redirects=False, + ) + self._messages: dict[str, JSON] = {} + self._lock = asyncio.Lock() + + async def aclose(self) -> None: + await self._http.aclose() + + async def _request(self, method: str, path: str, *, timeout: float | None = None, **kw: Any) -> JSON: + try: + r = await self._http.request(method, path, timeout=timeout or self._text_timeout, **kw) + except httpx.TimeoutException as e: + raise ApiTimeoutError(type(e).__name__) from None + except httpx.HTTPError as e: + raise UnreachableError(type(e).__name__) from None + try: + body = r.json() + except ValueError: + raise UnreachableError(f"HTTP {r.status_code} non-JSON") from None + if r.status_code >= 400: + err = body.get("error") if isinstance(body, dict) else None + if isinstance(err, dict) and isinstance(err.get("message_ar"), str): + raise ApiError(r.status_code, str(err.get("code", "")), err["message_ar"]) + raise UnreachableError(f"HTTP {r.status_code} without error envelope") + if not isinstance(body, dict | list): + raise UnreachableError("unexpected JSON") + return body if isinstance(body, dict) else {"items": body} + + async def check(self, text: str) -> JSON: + return await self._request("POST", "/v1/check", json={"text": text, "ui_lang": "ar"}) + + async def check_image(self, data: bytes, mime: str) -> JSON: + ext = {"image/png": "png", "image/jpeg": "jpg", "image/webp": "webp"}.get(mime, "bin") + return await self._request( + "POST", + "/v1/check/image", + timeout=self._image_timeout, + files={"image": (f"image.{ext}", data, mime)}, + data={"ui_lang": "ar"}, + ) + + async def rules(self) -> JSON: + return await self._request("GET", "/v1/rules", params={"ui_lang": "ar"}) + + async def sources(self) -> list[JSON]: + body = await self._request("GET", "/v1/sources") + return cast(list[JSON], body.get("items", [])) + + async def health(self) -> JSON: + return await self._request("GET", "/health", timeout=10.0) + + async def messages(self, lang: str = "ar") -> JSON: + """``messages/{lang}.json`` as served by the API; cached for the process lifetime once fetched.""" + if lang in self._messages: + return self._messages[lang] + async with self._lock: + if lang not in self._messages: + self._messages[lang] = await self._request("GET", f"/v1/messages/{lang}") + return self._messages[lang] diff --git a/integrations/telegram/bot/config.py b/integrations/telegram/bot/config.py new file mode 100644 index 0000000..de2d8a8 --- /dev/null +++ b/integrations/telegram/bot/config.py @@ -0,0 +1,88 @@ +"""Runtime settings, read once from the environment (see .env.example). Nothing here is ever logged.""" + +from __future__ import annotations + +import os +import re +from collections.abc import Mapping +from dataclasses import dataclass +from urllib.parse import urlparse + +DEFAULT_API = "https://basirapp.site" +DEFAULT_HEARTBEAT = "/tmp/basira-bot.heartbeat" # liveness stamp only, no user data +_TOKEN = re.compile(r"^\d{5,}:[A-Za-z0-9_-]{30,}$") + +# Limits mirror the API contract (docs/API.md §1, §6) so oversized input is refused before any request. +MAX_TEXT_CHARS = 5000 +MAX_IMAGE_BYTES = 6 * 1024 * 1024 +IMAGE_MIME = frozenset({"image/png", "image/jpeg", "image/webp"}) + + +class ConfigError(ValueError): + """Raised for a missing or malformed setting; the message never contains the value.""" + + +def _url(name: str, value: str) -> str: + u = urlparse(value) + if u.scheme not in {"http", "https"} or not u.netloc: + raise ConfigError(f"{name} must be an http(s) URL") + return value.rstrip("/") + + +def _int(env: Mapping[str, str], name: str, default: int, lo: int, hi: int) -> int: + raw = env.get(name, "").strip() + if not raw: + return default + try: + v = int(raw) + except ValueError as e: + raise ConfigError(f"{name} must be an integer") from e + if not lo <= v <= hi: + raise ConfigError(f"{name} must be in [{lo}, {hi}]") + return v + + +@dataclass(frozen=True, slots=True) +class Settings: + token: str + api_url: str = DEFAULT_API + web_url: str = DEFAULT_API + eval_key: str = "" + max_text: int = MAX_TEXT_CHARS + text_timeout: float = 30.0 + image_timeout: float = 60.0 + user_rate_per_min: int = 10 + webhook_url: str = "" + webhook_secret: str = "" + port: int = 8080 + heartbeat_file: str = DEFAULT_HEARTBEAT + + def __repr__(self) -> str: # never print secrets + return f"Settings(api_url={self.api_url!r}, webhook={'on' if self.webhook_url else 'off'})" + + @classmethod + def from_env(cls, env: Mapping[str, str] | None = None) -> Settings: + e = os.environ if env is None else env + token = e.get("TELEGRAM_BOT_TOKEN", "").strip() + if not _TOKEN.match(token): + raise ConfigError("TELEGRAM_BOT_TOKEN is missing or malformed (get one from @BotFather)") + webhook_url = e.get("TELEGRAM_WEBHOOK_URL", "").strip() + secret = e.get("TELEGRAM_WEBHOOK_SECRET", "").strip() + if webhook_url: + _url("TELEGRAM_WEBHOOK_URL", webhook_url) + if not re.fullmatch(r"[A-Za-z0-9_-]{16,256}", secret): + raise ConfigError( + "TELEGRAM_WEBHOOK_SECRET must be 16-256 chars of [A-Za-z0-9_-] in webhook mode" + ) + return cls( + token=token, + api_url=_url("BASIRA_API_URL", e.get("BASIRA_API_URL", "").strip() or DEFAULT_API), + web_url=_url("BASIRA_WEB_URL", e.get("BASIRA_WEB_URL", "").strip() or DEFAULT_API), + eval_key=e.get("BASIRA_EVAL_KEY", "").strip(), + max_text=_int(e, "MAX_TEXT", MAX_TEXT_CHARS, 1, MAX_TEXT_CHARS), + user_rate_per_min=_int(e, "BOT_RATE_PER_MIN", 10, 1, 120), + webhook_url=webhook_url, + webhook_secret=secret, + port=_int(e, "PORT", 8080, 1, 65535), + heartbeat_file=e.get("BOT_HEARTBEAT_FILE", "").strip() or DEFAULT_HEARTBEAT, + ) diff --git a/integrations/telegram/bot/handlers.py b/integrations/telegram/bot/handlers.py new file mode 100644 index 0000000..548f9b0 --- /dev/null +++ b/integrations/telegram/bot/handlers.py @@ -0,0 +1,424 @@ +"""Telegram update handlers. Thin: read the message, call the Basira API, render, reply. + +Privacy (ADR-004): message text and image bytes live only in local variables for the duration of one request; +images are downloaded into a ``BytesIO`` that is closed right after the API call. Logs carry the chat type, the +input kind, status counts, latency and error classes — never text, never user or chat ids. +""" + +from __future__ import annotations + +import asyncio +import contextlib +import html +import logging +import re +import time +from collections import deque +from collections.abc import Mapping +from io import BytesIO +from typing import Any + +from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Message, Update +from telegram.constants import ChatType, MessageEntityType, ParseMode +from telegram.error import BadRequest, Forbidden, TelegramError +from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters + +from bot import render +from bot import strings_ar as txt +from bot.client import ApiError, ApiTimeoutError, BasiraClient, BasiraError, UnreachableError +from bot.config import IMAGE_MIME, MAX_IMAGE_BYTES, Settings + +log = logging.getLogger("basira.bot") +_TAG = re.compile(r"<[^>]+>") +NEW_MESSAGE = filters.UpdateType.MESSAGE # edits, channel posts and business messages are ignored + + +class RateLimiter: + """Sliding one-minute window per user, in memory only (ids are never written anywhere).""" + + def __init__(self, per_minute: int, window: float = 60.0, clock: Any = time.monotonic) -> None: + self.per_minute = per_minute + self.window = window + self._clock = clock + self._hits: dict[int, deque[float]] = {} + + def allow(self, key: int) -> bool: + now = self._clock() + q = self._hits.setdefault(key, deque()) + while q and now - q[0] >= self.window: + q.popleft() + if len(q) >= self.per_minute: + return False + q.append(now) + if len(self._hits) > 5000: # bound memory: drop users idle for a full window + for k in [k for k, v in self._hits.items() if not v or now - v[-1] >= self.window]: + del self._hits[k] + return True + + +def chat_kind(update: Update) -> str: + chat = update.effective_chat + return chat.type if chat else "unknown" + + +def plain(html_text: str) -> str: + return html.unescape(_TAG.sub("", html_text)) + + +class BasiraBot: + def __init__(self, settings: Settings, client: BasiraClient) -> None: + self.s = settings + self.api = client + self.limiter = RateLimiter(settings.user_rate_per_min) + self.inflight = asyncio.Semaphore(8) + + # ------------------------------------------------------------------ wiring + def register(self, app: Application[Any, Any, Any, Any, Any, Any]) -> None: + cmd = NEW_MESSAGE & ~filters.VIA_BOT + app.add_handler(CommandHandler("start", self.cmd_start, filters=cmd)) + app.add_handler(CommandHandler("help", self.cmd_help, filters=cmd)) + app.add_handler(CommandHandler("limits", self.cmd_limits, filters=cmd)) + app.add_handler(CommandHandler("sources", self.cmd_sources, filters=cmd)) + app.add_handler(CommandHandler("check", self.cmd_check, filters=cmd)) + private = NEW_MESSAGE & filters.ChatType.PRIVATE & ~filters.VIA_BOT + groups = NEW_MESSAGE & filters.ChatType.GROUPS & ~filters.VIA_BOT + image = filters.PHOTO | filters.Document.IMAGE + app.add_handler(MessageHandler(private & filters.TEXT & ~filters.COMMAND, self.on_text)) + app.add_handler(MessageHandler(private & image, self.on_image)) + app.add_handler(MessageHandler(groups & filters.TEXT & ~filters.COMMAND, self.on_group_text)) + app.add_handler( + MessageHandler(groups & image & filters.CaptionEntity(MessageEntityType.MENTION), self.on_image) + ) + app.add_handler(MessageHandler(private & filters.COMMAND, self.on_unknown_command)) + app.add_handler( + MessageHandler(private & ~filters.COMMAND & ~filters.TEXT & ~image, self.on_unsupported) + ) + app.add_error_handler(self.on_error) + + # ------------------------------------------------------------------ helpers + async def _messages(self) -> Mapping[str, Mapping[str, str]]: + raw = await self.api.messages("ar") + return {k: v for k, v in raw.items() if isinstance(v, dict)} + + async def _send( + self, msg: Message, html_text: str, *, markup: InlineKeyboardMarkup | None = None + ) -> Message: + try: + return await msg.reply_text( + html_text, parse_mode=ParseMode.HTML, reply_markup=markup, do_quote=True + ) + except BadRequest: # an entity Telegram refuses to parse: same words, no formatting + log.warning("html_rejected fallback=plain") + return await msg.reply_text(plain(html_text), parse_mode=None, reply_markup=markup, do_quote=True) + + async def _edit( + self, sent: Message, html_text: str, *, markup: InlineKeyboardMarkup | None = None + ) -> None: + try: + await sent.edit_text(html_text, parse_mode=ParseMode.HTML, reply_markup=markup) + except BadRequest as e: + if "not modified" in str(e).lower(): + return + try: + await sent.edit_text(plain(html_text), parse_mode=None, reply_markup=markup) + except TelegramError: + await sent.reply_text(plain(html_text), parse_mode=None, reply_markup=markup) + + def _site_button(self) -> InlineKeyboardMarkup: + return InlineKeyboardMarkup([[InlineKeyboardButton(txt.OPEN_SITE, url=f"{self.s.web_url}/check")]]) + + async def _deliver(self, sent: Message, pieces: list[str]) -> None: + markup = self._site_button() + last = len(pieces) - 1 + await self._edit(sent, pieces[0], markup=markup if last == 0 else None) + for i, piece in enumerate(pieces[1:], 1): + await self._send(sent, piece, markup=markup if i == last else None) + + async def _error_text(self, err: BasiraError) -> str: + if isinstance(err, ApiError): + text = render.esc(err.message_ar) + return f"{text}\n{render.esc(txt.TRY_IN_A_MINUTE)}" if err.status == 429 else text + if isinstance(err, ApiTimeoutError): + return render.esc(txt.TIMEOUT) + return render.esc(txt.UNREACHABLE) + + async def _limited(self, update: Update) -> bool: + user = update.effective_user + if user is None or self.limiter.allow(user.id): + return False + msg = update.effective_message + if msg is not None: + try: + tpl = (await self._messages()).get("errors", {}).get("rate_limited", "") + except BasiraError: + tpl = "" + await self._send(msg, render.esc(tpl) + ("\n" if tpl else "") + render.esc(txt.TRY_IN_A_MINUTE)) + log.info("chat=%s rate_limited=bot", chat_kind(update)) + return True + + # ------------------------------------------------------------------ checks + async def check_text(self, update: Update, msg: Message, text: str, *, input_kind: str) -> None: + text = text.strip() + if not text: + await self._send( + msg, + render.esc(txt.USAGE_GROUP if chat_kind(update) != ChatType.PRIVATE else txt.USAGE_PRIVATE), + ) + return + if await self._limited(update): + return + t0 = time.perf_counter() + if len(text) > self.s.max_text: + try: + tpl = (await self._messages()).get("errors", {}).get("text_too_long", "") + await self._send(msg, render.esc(render.fill(tpl, {"max": self.s.max_text}))) + except BasiraError as e: + await self._send(msg, await self._error_text(e)) + log.info("chat=%s input=%s refused=too_long", chat_kind(update), input_kind) + return + sent = await self._send(msg, render.esc(txt.CHECKING)) + try: + async with self.inflight: + resp = await self.api.check(text) + messages = await self._messages() + except BasiraError as e: + await self._edit(sent, await self._error_text(e)) + log.info( + "chat=%s input=%s error=%s ms=%d", chat_kind(update), input_kind, type(e).__name__, _ms(t0) + ) + return + finally: + del text + await self._deliver(sent, render.render_check(resp, messages)) + log.info( + "chat=%s input=%s quotes=%s refusal=%s ms=%d", + chat_kind(update), + input_kind, + render.status_counts(resp), + bool((resp.get("flags") or {}).get("refusal")), + _ms(t0), + ) + + async def check_image( + self, update: Update, ctx: ContextTypes.DEFAULT_TYPE, msg: Message, source: Message + ) -> None: + if source.photo: + file_id, mime, size = source.photo[-1].file_id, "image/jpeg", source.photo[-1].file_size + elif source.document and (source.document.mime_type or "").lower() in IMAGE_MIME: + file_id, mime, size = ( + source.document.file_id, + (source.document.mime_type or "").lower(), + source.document.file_size, + ) + else: + await self._send(msg, render.esc(txt.UNSUPPORTED)) + return + if await self._limited(update): + return + t0 = time.perf_counter() + if size is not None and size > MAX_IMAGE_BYTES: + await self._send(msg, await self._too_large()) + log.info("chat=%s input=image refused=too_large", chat_kind(update)) + return + sent = await self._send(msg, render.esc(txt.CHECKING_IMAGE)) + buf = BytesIO() + try: + tg_file = await ctx.bot.get_file(file_id) + await tg_file.download_to_memory(buf) + if buf.getbuffer().nbytes > MAX_IMAGE_BYTES: + await self._edit(sent, await self._too_large()) + return + async with self.inflight: + resp = await self.api.check_image(buf.getvalue(), mime) + messages = await self._messages() + except BasiraError as e: + await self._edit(sent, await self._error_text(e)) + log.info("chat=%s input=image error=%s ms=%d", chat_kind(update), type(e).__name__, _ms(t0)) + return + except TelegramError as e: + await self._edit(sent, render.esc(txt.UNREACHABLE)) + log.info("chat=%s input=image telegram_error=%s", chat_kind(update), type(e).__name__) + return + finally: + buf.close() # the bytes are released here; nothing was written to disk + await self._deliver(sent, render.render_check(resp, messages, image=True)) + log.info( + "chat=%s input=image quotes=%s ms=%d", chat_kind(update), render.status_counts(resp), _ms(t0) + ) + + async def _too_large(self) -> str: + try: + tpl = (await self._messages()).get("errors", {}).get("image_too_large", "") + except BasiraError as e: + return await self._error_text(e) + return render.esc(render.fill(tpl, {"max_mb": MAX_IMAGE_BYTES // (1024 * 1024)})) + + # ------------------------------------------------------------------ commands + async def cmd_start(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None: + return + parts = [txt.WELCOME] + try: + fixed = (await self._messages()).get("fixed", {}) + parts += [ + f"{render.esc(fixed[k])}" + for k in ("transparency_notice", "privacy_notice") + if k in fixed + ] + except BasiraError: + pass + await self._send(msg, "\n\n".join(parts), markup=self._site_button()) + + async def cmd_help(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None: + return + text = render.fill( + txt.HELP, {"max_chars": self.s.max_text, "max_mb": MAX_IMAGE_BYTES // (1024 * 1024)} + ) + try: + footer = (await self._messages()).get("fixed", {}).get("footer") + if footer: + text += f"\n\n{render.esc(footer)}" + except BasiraError: + pass + await self._send(msg, text) + + async def cmd_limits(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None or await self._limited(update): + return + try: + rules = await self.api.rules() + except BasiraError as e: + await self._send(msg, await self._error_text(e)) + return + body = str(rules.get("text", "")) + cut = body[:1500] + if len(body) > 1500: + cut = cut[: cut.rfind("\n")] if "\n" in cut else cut + cut += "\n" + txt.ELLIPSIS + more = render.fill(txt.LIMITS_MORE, {"url": f"{self.s.api_url}/v1/rules?ui_lang=ar"}) + await self._send( + msg, + f"{txt.LIMITS_HEADING}\n
{render.esc(cut)}
\n{render.esc(more)}", + ) + + async def cmd_sources(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None or await self._limited(update): + return + try: + items = await self.api.sources() + except BasiraError as e: + await self._send(msg, await self._error_text(e)) + return + lines = [render.fill(txt.SOURCES_HEADING, {"url": render.esc(self.s.api_url)})] + for src in items: + records = src.get("records") + lines.append( + render.fill( + txt.SOURCE_LINE, + { + "name": render.esc(str(src.get("name", ""))), + "version": render.esc(str(src.get("version", ""))), + "records": f"{records:,}" if isinstance(records, int) else "—", + "license": render.esc(str(src.get("license", ""))), + }, + ) + ) + for piece in render.pack([[render.Block(html=line) for line in lines]]): + await self._send(msg, piece) + + async def cmd_check(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None or _from_bot(msg): + return + rest = (msg.text or "").split(maxsplit=1) + arg = rest[1] if len(rest) > 1 else "" + target = msg.reply_to_message + if arg.strip(): + await self.check_text(update, msg, arg, input_kind="command") + elif target is not None and (target.photo or target.document): + await self.check_image(update, ctx, msg, target) + elif target is not None and (target.text or target.caption): + await self.check_text(update, msg, target.text or target.caption or "", input_kind="reply") + else: + await self._send( + msg, + render.esc(txt.USAGE_GROUP if chat_kind(update) != ChatType.PRIVATE else txt.USAGE_PRIVATE), + ) + + # ------------------------------------------------------------------ messages + async def on_text(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None or _from_bot(msg): + return + kind = "forward" if msg.forward_origin else "text" + await self.check_text(update, msg, msg.text or "", input_kind=kind) + + async def on_group_text(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + """Groups: act only when this bot is mentioned (privacy mode delivers nothing else but commands).""" + msg = update.effective_message + if msg is None or _from_bot(msg) or not self._mentioned(msg, ctx): + return + text = self._strip_mention(msg.text or "", ctx) + target = msg.reply_to_message + if not text.strip() and target is not None: + if target.photo or target.document: + await self.check_image(update, ctx, msg, target) + return + text = target.text or target.caption or "" + await self.check_text(update, msg, text, input_kind="mention") + + async def on_image(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is None or _from_bot(msg): + return + if chat_kind(update) != ChatType.PRIVATE and not self._mentioned(msg, ctx): + return + await self.check_image(update, ctx, msg, msg) + + async def on_unknown_command(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is not None: + await self._send(msg, render.esc(txt.USAGE_PRIVATE)) + + async def on_unsupported(self, update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: + msg = update.effective_message + if msg is not None and not _from_bot(msg): + await self._send(msg, render.esc(txt.UNSUPPORTED)) + + async def on_error(self, update: object, ctx: ContextTypes.DEFAULT_TYPE) -> None: + err = ctx.error + log.error("handler_error=%s", type(err).__name__) + if isinstance(err, Forbidden): # blocked by the user / removed from the group: nothing to say + return + if isinstance(update, Update) and update.effective_message is not None: + with contextlib.suppress(TelegramError): + await update.effective_message.reply_text(txt.UNREACHABLE) + + # ------------------------------------------------------------------ mentions + def _mentioned(self, msg: Message, ctx: ContextTypes.DEFAULT_TYPE) -> bool: + me = f"@{ctx.bot.username}".lower() + ents = ( + msg.parse_entities([MessageEntityType.MENTION]) + if msg.text + else msg.parse_caption_entities([MessageEntityType.MENTION]) + ) + return any(v.lower() == me for v in ents.values()) + + def _strip_mention(self, text: str, ctx: ContextTypes.DEFAULT_TYPE) -> str: + return re.sub(rf"@{re.escape(ctx.bot.username)}\b", " ", text, flags=re.IGNORECASE) + + +def _from_bot(msg: Message) -> bool: + return bool(msg.from_user and msg.from_user.is_bot) + + +def _ms(t0: float) -> int: + return int((time.perf_counter() - t0) * 1000) + + +__all__ = ["BasiraBot", "RateLimiter", "UnreachableError"] diff --git a/integrations/telegram/bot/main.py b/integrations/telegram/bot/main.py new file mode 100644 index 0000000..45b9b24 --- /dev/null +++ b/integrations/telegram/bot/main.py @@ -0,0 +1,105 @@ +"""Entry point: ``python -m bot.main``. Long polling by default; webhook when TELEGRAM_WEBHOOK_URL is set (E-059).""" + +from __future__ import annotations + +import asyncio +import logging +import sys +import time +from pathlib import Path +from typing import Any + +from telegram import Update +from telegram.ext import Application, ApplicationBuilder + +from bot.client import BasiraClient, BasiraError +from bot.config import ConfigError, Settings +from bot.handlers import BasiraBot + +log = logging.getLogger("basira.bot") + + +def _configure_logging() -> None: + logging.basicConfig( + level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s %(message)s", stream=sys.stdout + ) + # httpx logs full request URLs at INFO — those contain the bot token. Keep them out of every log. + for noisy in ("httpx", "httpcore", "telegram.ext.Updater", "apscheduler"): + logging.getLogger(noisy).setLevel(logging.WARNING) + + +def build(settings: Settings) -> tuple[Application[Any, Any, Any, Any, Any, Any], BasiraClient]: + client = BasiraClient( + settings.api_url, + eval_key=settings.eval_key, + text_timeout=settings.text_timeout, + image_timeout=settings.image_timeout, + ) + app = ( + ApplicationBuilder() + .token(settings.token) + .concurrent_updates(16) + .connect_timeout(10) + .read_timeout(30) + .write_timeout(30) + .build() + ) + BasiraBot(settings, client).register(app) + beat = Path(settings.heartbeat_file) + tasks: set[asyncio.Task[None]] = set() + + async def heartbeat() -> None: # liveness for the container HEALTHCHECK: a timestamp, nothing else + while True: + beat.write_text(str(int(time.time()))) + await asyncio.sleep(30) + + async def post_init(application: Application[Any, Any, Any, Any, Any, Any]) -> None: + try: + h = await client.health() + log.info("basira_api=up build=%s corpus_loaded=%s", h.get("build_sha"), h.get("corpus_loaded")) + await client.messages("ar") + except BasiraError as e: # the bot still starts; every reply reports the outage honestly + log.warning("basira_api=unreachable error=%s", type(e).__name__) + me = await application.bot.get_me() + log.info("bot=@%s mode=%s", me.username, "webhook" if settings.webhook_url else "polling") + t = asyncio.create_task(heartbeat()) + tasks.add(t) + t.add_done_callback(tasks.discard) + + async def post_shutdown(_: Application[Any, Any, Any, Any, Any, Any]) -> None: + for t in tasks: + t.cancel() + await client.aclose() + + app.post_init = post_init + app.post_shutdown = post_shutdown + return app, client + + +def main() -> int: + _configure_logging() + try: + settings = Settings.from_env() + except ConfigError as e: + log.error("config_error %s", e) + return 2 + app, _ = build(settings) + allowed = [Update.MESSAGE] + if settings.webhook_url: + app.run_webhook( + listen="0.0.0.0", # inside the container; the proxy terminates TLS + port=settings.port, + url_path="telegram", + webhook_url=f"{settings.webhook_url.rstrip('/')}/telegram", + secret_token=settings.webhook_secret, + allowed_updates=allowed, + drop_pending_updates=False, + ) + else: + app.run_polling(allowed_updates=allowed, drop_pending_updates=False) + return 0 + + +if __name__ == "__main__": + asyncio.set_event_loop(asyncio.new_event_loop()) + raise SystemExit(main()) diff --git a/integrations/telegram/bot/render.py b/integrations/telegram/bot/render.py new file mode 100644 index 0000000..96d0977 --- /dev/null +++ b/integrations/telegram/bot/render.py @@ -0,0 +1,422 @@ +"""CheckResponse → Telegram HTML messages. + +Rules (SAFETY §1, AGENTS.md §2): +* Every sentence about a quotation is a template from ``messages`` (status / notice / labels / fixed), filled only + with matcher or corpus fields — the same variables as the web UI (frontend ``QuoteCard.statusVars``). +* ``source_text`` and ``ref_label_ar`` are inserted verbatim (HTML-escaped only). Bold marks come from the API + ``diff[].quote_chars`` / ``diff[].source_chars`` ranges; nothing is re-ordered, normalised or completed. +* Output is split on block boundaries so no message exceeds Telegram's 4096-character limit and no HTML tag is + ever cut in half. +""" + +from __future__ import annotations + +import re +import unicodedata +from collections.abc import Iterable, Mapping, Sequence +from dataclasses import dataclass, field +from html import escape +from typing import Any + +from bot import strings_ar as txt + +JSON = Mapping[str, Any] +Messages = Mapping[str, Mapping[str, str]] + +TELEGRAM_LIMIT = 4096 +BUDGET = 3800 # head-room under the hard limit (measured in UTF-16 units of the HTML source, a superset) +SOURCE_WINDOW_OVER = 400 # same windowing as the web DiffView: long records show the matched window ± pad +SOURCE_WINDOW_PAD = 120 +OCR_MAX = 1500 + +_VAR = re.compile(r"\{(\w+)\}") + + +def fill(tpl: str, values: Mapping[str, object]) -> str: + """Replace ``{name}`` only when ``name`` is supplied (identical to the web UI ``fill``).""" + return _VAR.sub(lambda m: str(values[m.group(1)]) if m.group(1) in values else m.group(0), tpl) + + +def u16(s: str) -> int: + return len(s.encode("utf-16-le")) // 2 + + +def esc(s: str) -> str: + return escape(s, quote=False) + + +def attr(s: str) -> str: + return escape(s, quote=True) + + +# ------------------------------------------------------------------ text with highlighted ranges +Run = tuple[str, bool] # (text, bold) + + +def merge_ranges(ranges: Iterable[Sequence[int]]) -> list[tuple[int, int]]: + rs = sorted((int(r[0]), int(r[1])) for r in ranges if len(r) == 2 and 0 <= int(r[0]) < int(r[1])) + out: list[tuple[int, int]] = [] + for a, b in rs: + if out and a <= out[-1][1]: + out[-1] = (out[-1][0], max(out[-1][1], b)) + else: + out.append((a, b)) + return out + + +def _cluster_bounds(text: str, a: int, b: int) -> tuple[int, int]: + """Widen [a, b) to whole letter clusters: a bold edge between a letter and its combining marks (harakat, + dagger alif) breaks the glyph in Telegram clients. Characters are never added, removed or re-ordered.""" + while 0 < a < len(text) and unicodedata.combining(text[a]): + a -= 1 + while b < len(text) and unicodedata.combining(text[b]): + b += 1 + return a, b + + +def runs(text: str, marks: Sequence[tuple[int, int]], offset: int = 0) -> list[Run]: + """Split ``text`` into plain/bold runs; ``marks`` are absolute ranges, ``text`` starts at ``offset``.""" + out: list[Run] = [] + i = 0 + for a0, b0 in marks: + a, b = _cluster_bounds(text, max(0, a0 - offset), min(len(text), b0 - offset)) + if b <= i or a >= len(text): + continue + a = max(a, i) + if a > i: + out.append((text[i:a], False)) + out.append((text[a:b], True)) + i = b + if i < len(text): + out.append((text[i:], False)) + return out + + +def runs_html(rs: Sequence[Run]) -> str: + return "".join(f"{esc(t)}" if bold else esc(t) for t, bold in rs if t) + + +@dataclass +class Block: + """One self-contained piece of HTML. ``rs`` blocks can be split further; ``html`` blocks are atomic.""" + + html: str = "" + rs: list[Run] = field(default_factory=list) + wrap: str = "" # "blockquote" | "blockquote expandable" | "i" | "" + prefix: str = "" # escaped HTML placed before the runs, repeated on continuation pieces + + def render(self) -> str: + if not self.rs: + return self.html + body = self.prefix + runs_html(self.rs) + if not self.wrap: + return body + tag = self.wrap.split()[0] + return f"<{self.wrap}>{body}" + + def split(self, budget: int) -> list[str]: + """Render, splitting the runs across pieces when the block alone exceeds ``budget``. + + Each piece is a complete, balanced HTML fragment (the wrapper and prefix are repeated); cuts prefer a + space so a word — and the marks on its letters — stays whole. Atomic ``html`` blocks are short fixed + lines and are returned as they are. + """ + whole = self.render() + if u16(whole) <= budget or not self.rs: + return [whole] + + def size(rs: list[Run]) -> int: + return u16(Block(rs=rs, wrap=self.wrap, prefix=self.prefix).render()) + + pieces: list[str] = [] + cur: list[Run] = [] + for text, bold in self.rs: + rest = text + while rest: + lo, hi = 0, len(rest) + while lo < hi: # largest prefix of `rest` that still fits next to `cur` + mid = (lo + hi + 1) // 2 + if size([*cur, (rest[:mid], bold)]) <= budget: + lo = mid + else: + hi = mid - 1 + if lo == 0: + if cur: + pieces.append(Block(rs=cur, wrap=self.wrap, prefix=self.prefix).render()) + cur = [] + continue + lo = 1 # a single character always fits an empty piece + if lo < len(rest): + sp = rest.rfind(" ", 0, lo) + if sp > lo // 2: + lo = sp + 1 + cur.append((rest[:lo], bold)) + rest = rest[lo:] + if rest: + pieces.append(Block(rs=cur, wrap=self.wrap, prefix=self.prefix).render()) + cur = [] + if cur: + pieces.append(Block(rs=cur, wrap=self.wrap, prefix=self.prefix).render()) + return pieces + + +def pack(groups: Sequence[Sequence[Block]], budget: int = BUDGET) -> list[str]: + """Pack groups of blocks (one group per quote) into messages; a group starts a new message when it does not + fit whole in the current one, and is split on block boundaries only when it is larger than a message.""" + msgs: list[str] = [] + cur = "" + + def flush() -> None: + nonlocal cur + if cur: + msgs.append(cur) + cur = "" + + for group in groups: + rendered = [b.render() for b in group if b.html or b.rs] + whole = "\n".join(rendered) + if not whole: + continue + sep = "\n\n" if cur else "" + if u16(cur) + u16(sep) + u16(whole) <= budget: + cur += sep + whole + continue + flush() + if u16(whole) <= budget: + cur = whole + continue + for b in group: + for piece in b.split(budget): + sep = "\n" if cur else "" + if u16(cur) + u16(sep) + u16(piece) > budget: + flush() + sep = "" + cur += sep + piece + flush() + return msgs + + +# ------------------------------------------------------------------ templates and variables +def msg(m: Messages, section: str, key: str, values: Mapping[str, object] | None = None) -> str | None: + tpl = m.get(section, {}).get(key) + return None if tpl is None else fill(tpl, values or {}) + + +def source_name(match: JSON, m: Messages) -> str: + corpus = match.get("corpus") + if corpus == "tanzil": + return m.get("labels", {}).get("source_quran", "") + if corpus == "hadeethenc": + return txt.HADEETHENC_NAME + book = str((match.get("ref") or {}).get("book", "")) + return txt.BOOK_NAMES.get(book, book) + + +def status_vars(q: JSON, m: Messages) -> dict[str, object]: + matches = q.get("matches") or [] + top = matches[0] if matches else None + return { + "source_name": source_name(top, m) if top else "", + "ref": top.get("ref_label_ar", "") if top else "", + "count": q.get("total_positions", 0), + "shown": len(matches), + "total": q.get("total_positions", 0), + "n": len(str(q.get("quoted_text", "")).split()), + } + + +def notice_vars(key: str, q: JSON, m: Messages) -> dict[str, object]: + v = status_vars(q, m) + matches = q.get("matches") or [] + top = matches[0] if matches else None + claimed = q.get("claimed_source") or {} + parsed = claimed.get("parsed") or {} + if key == "claimed_source_mismatch": + books = parsed.get("books") or [] + v["found_in"] = source_name(top, m) if top else "" + v["claimed"] = " و".join(txt.BOOK_NAMES.get(b, b) for b in books) or claimed.get("raw", "") + if key in {"claimed_ayah_mismatch", "claimed_ref_invalid"}: + v["found_ref"] = top.get("ref_label_ar", "") if top else "" + raw = claimed.get("raw") + if raw: + v["claimed_ref"] = raw + elif "surah" in parsed: + to = parsed.get("ayah_to") + v["claimed_ref"] = f"{parsed['surah']}:{parsed.get('ayah')}" + (f"-{to}" if to else "") + if key == "arabic_text_at_ref" and "surah" in parsed: + v["ref"] = f"{parsed['surah']}:{parsed.get('ayah')}" + if key == "grade_line" and top and top.get("grade"): + g = top["grade"] + v.update(grade_source=txt.HADEETHENC_NAME, version=g.get("version", ""), grade_text=g.get("text", "")) + v["takhrij"] = g.get("takhrij", "") + if key == "ohd_numbering" and top: + v["num"] = str((top.get("ref") or {}).get("num", "")) + return v + + +# ------------------------------------------------------------------ blocks +def _links(items: Iterable[JSON]) -> str: + seen: set[str] = set() + out: list[str] = [] + for link in items: + url, name = str(link.get("url", "")), str(link.get("name", "")) + if not url.startswith(("https://", "http://")) or url in seen: + continue + seen.add(url) + out.append(f'{esc(name or url)}') + return " · ".join(out) + + +def _source_block(match: JSON) -> Block | None: + text = str(match.get("source_text") or "") + if not text: + return None + marks = merge_ranges( + op.get("source_chars", []) for op in match.get("diff") or [] if op.get("op") != "equal" + ) + offset, shown = 0, text + rng = match.get("source_text_range") + if rng and len(text) > SOURCE_WINDOW_OVER: + offset = max(0, int(rng[0]) - SOURCE_WINDOW_PAD) + end = min(len(text), int(rng[1]) + SOURCE_WINDOW_PAD) + shown = text[offset:end] + rs = runs(shown, marks, offset) + if offset > 0: + rs.insert(0, (txt.ELLIPSIS + " ", False)) + if offset + len(shown) < len(text): + rs.append((" " + txt.ELLIPSIS, False)) + return Block(rs=rs, wrap="blockquote expandable" if len(shown) > 600 else "blockquote") + + +def quote_blocks(q: JSON, i: int, n: int, m: Messages) -> list[Block]: + status = str(q.get("status", "")) + label = m.get("labels", {}).get(status, status) + head = f"{txt.STATUS_ICON.get(status, '•')} {esc(label)} · {esc(txt.KIND.get(str(q.get('kind')), txt.KIND['unknown']))}" + if n > 1: + head = f"{esc(fill(txt.QUOTE_HEADING, {'i': i, 'n': n}))}\n" + head + blocks = [Block(html=head)] + + matches = list(q.get("matches") or []) + top = matches[0] if matches else None + line = msg(m, "status", str(q.get("message_key", "")), status_vars(q, m)) + if line: + blocks.append(Block(html=esc(line))) + + quoted = str(q.get("quoted_text", "")) + qmarks = merge_ranges( + op.get("quote_chars", []) for op in (top or {}).get("diff") or [] if op.get("op") != "equal" + ) + blocks.append(Block(rs=runs(quoted, qmarks), prefix=f"{esc(txt.YOUR_TEXT)}: «", wrap="")) + blocks[-1].rs.append(("»", False)) + + if top: + ref = str(top.get("ref_label_ar", "")) + segments = top.get("source_segments") or [] + blocks.append(Block(html=f"{esc(txt.SOURCE_TEXT)} — {esc(ref)}")) + if len(segments) > 1: + for seg in segments: + blocks.append(Block(html=f"{esc(str(seg.get('ref_label_ar', '')))}")) + blocks.append(Block(rs=[(str(seg.get("source_text", "")), False)], wrap="blockquote")) + else: + sb = _source_block(top) + if sb: + blocks.append(sb) + if qmarks: + blocks.append(Block(html=f"{esc(txt.DIFF_LEGEND)}")) + if top.get("grade"): + g = msg(m, "notice", "grade_line", notice_vars("grade_line", q, m)) + if g: + blocks.append(Block(html=esc(g))) + + for key in q.get("notice_keys") or []: + if key == "grade_line": + continue + t = msg(m, "notice", str(key), notice_vars(str(key), q, m)) + if t: + blocks.append(Block(html=f"{esc(t)}")) + + if len(matches) > 1: + others = " · ".join( + f'{esc(str(x.get("ref_label_ar", "")))}' + if str(x.get("source_url", "")).startswith("https://") + else esc(str(x.get("ref_label_ar", ""))) + for x in matches[1:] + ) + blocks.append(Block(html=f"{esc(txt.OTHER_POSITIONS)}: {others}")) + + link_items: list[JSON] = [] + if top: + open_src = m.get("labels", {}).get("open_source", "") + if str(top.get("source_url", "")).startswith("https://"): + link_items.append({"name": open_src, "url": top["source_url"]}) + link_items.extend(top.get("links") or []) + link_items.extend(q.get("external_search_links") or []) + links = _links(link_items) + if links: + blocks.append(Block(html=f"🔗 {links}")) + return blocks + + +def header_blocks(resp: JSON, m: Messages, *, image: bool) -> list[Block]: + out: list[Block] = [] + if image and resp.get("ocr_text"): + out.append(Block(html=f"{esc(txt.OCR_HEADING)}")) + ocr = str(resp["ocr_text"]) + if len(ocr) > OCR_MAX: + ocr = ocr[:OCR_MAX] + " " + txt.ELLIPSIS + out.append(Block(rs=[(ocr, False)], wrap="blockquote expandable")) + flags = resp.get("flags") or {} + for key in ("chain_message", "pii_suspected"): + if flags.get(key): + t = msg(m, "notice", key) + if t: + out.append(Block(html=f"ℹ️ {esc(t)}")) + if resp.get("extraction_degraded"): + t = msg(m, "notice", "extraction_degraded") + if t: + out.append(Block(html=f"ℹ️ {esc(t)}")) + return out + + +def footer_blocks(resp: JSON, m: Messages) -> list[Block]: + out: list[Block] = [] + t = msg(m, "fixed", str(resp.get("transparency_key") or "transparency_notice")) + if t: + out.append(Block(html=f"{esc(t)}")) + h = str(resp.get("determinism_hash") or "") + if h: + out.append(Block(html=f"#{esc(h[:16])}")) + return out + + +def render_check(resp: JSON, m: Messages, *, image: bool = False) -> list[str]: + """Render a ``/v1/check`` or ``/v1/check/image`` response into one or more Telegram HTML messages. + + ``flags.refusal`` (a religious question, not a quotation) → the refusal notice from ``messages`` and nothing + else: no quote card can be read as an answer to the question. + """ + flags = resp.get("flags") or {} + if flags.get("refusal"): + t = msg(m, "notice", "refusal") + return [f"ℹ️ {esc(t)}"] if t else [] + quotes = list(resp.get("quotes") or []) + head = header_blocks(resp, m, image=image) + if not quotes: + t = msg(m, "notice", "no_quotes") + if t: + head.append(Block(html=esc(t))) + return pack([head, footer_blocks(resp, m)]) + groups: list[list[Block]] = [head] if head else [] + n = len(quotes) + groups.extend(quote_blocks(q, i, n, m) for i, q in enumerate(quotes, 1)) + groups.append(footer_blocks(resp, m)) + return pack(groups) + + +def status_counts(resp: JSON) -> dict[str, int]: + """Counts by status — the only thing about a result that the bot ever logs.""" + c: dict[str, int] = {} + for q in resp.get("quotes") or []: + s = str(q.get("status", "?")) + c[s] = c.get(s, 0) + 1 + return c diff --git a/integrations/telegram/bot/strings_ar.py b/integrations/telegram/bot/strings_ar.py new file mode 100644 index 0000000..a201a44 --- /dev/null +++ b/integrations/telegram/bot/strings_ar.py @@ -0,0 +1,87 @@ +"""Every fixed string the bot itself authors (UI chrome only — never a word about a quotation's content). + +Status texts, notices, error messages, the transparency/privacy lines and the refusal text are NOT here: they +come verbatim from ``messages/*.json`` (served by ``GET /v1/messages/{lang}``) or from the API error envelope. +``tests/test_strings.py`` runs the backend's forbidden-lexicon scanner over every value in this module. +""" + +from __future__ import annotations + +from typing import Final + +# State markers (shape only); the label next to each comes from messages ``labels.``. +STATUS_ICON: Final[dict[str, str]] = { + "found": "✅", + "partial_match": "◐", + "needs_review": "⚠️", + "not_found": "○", +} + +WELCOME: Final = ( + "بصيرة — تحقق من نقل الآيات والأحاديث قبل النشر.\n" + "Basira checks Quran and Hadith quotations against their sources before you share them.\n\n" + "أرسل أو أعد توجيه (Forward) أي نص أو صورة فيها آية أو حديث، وسأعرض لك نص المصدر كما ورد " + "ومرجعه والفروق إن وُجدت." +) +HELP: Final = ( + "طريقة الاستخدام\n" + "• في المحادثة الخاصة: أرسل النص أو الصورة مباشرة، أو أعد توجيهها من أي محادثة.\n" + "• في المجموعات: ردّ على الرسالة بالأمر /check، أو اكتب /check ثم النص، أو اذكرني ثم النص.\n" + "• /limits حدود ما تفحصه بصيرة · /sources المصادر وإصداراتها ورخصها.\n\n" + "الحد الأقصى للنص {max_chars} حرف، وللصورة {max_mb} ميجابايت (PNG أو JPEG أو WebP)." +) +CHECKING: Final = "⏳ جارٍ الفحص…" +CHECKING_IMAGE: Final = "⏳ جارٍ قراءة الصورة وفحصها…" +OCR_HEADING: Final = "النص كما قُرئ من الصورة — راجعه" +USAGE_GROUP: Final = "ردّ على رسالة فيها نص أو صورة بالأمر /check، أو اكتب /check ثم النص." +USAGE_PRIVATE: Final = "أرسل نصًا أو صورة فيها آية أو حديث، أو أعد توجيهها إليّ." +UNSUPPORTED: Final = "أستقبل النصوص والصور فقط (PNG أو JPEG أو WebP)." +TRY_IN_A_MINUTE: Final = "حاول بعد دقيقة." +UNREACHABLE: Final = "تعذّر الوصول إلى خادم بصيرة الآن؛ حاول بعد قليل." +TIMEOUT: Final = "استغرق الفحص وقتًا أطول من المعتاد ولم يكتمل؛ حاول مرة أخرى بعد قليل." +QUOTE_HEADING: Final = "الاقتباس {i} من {n}" +YOUR_TEXT: Final = "نصك" +SOURCE_TEXT: Final = "نص المصدر" +OTHER_POSITIONS: Final = "مواضع أخرى" +LINKS: Final = "روابط" +DIFF_LEGEND: Final = "الكلمات المختلفة بالخط العريض." +ELLIPSIS: Final = "…" +LIMITS_HEADING: Final = "حدود ما تفحصه بصيرة" +LIMITS_MORE: Final = "النص الكامل: {url}" +SOURCES_HEADING: Final = "المصادر (من {url}/v1/sources)" +SOURCE_LINE: Final = "• {name}\n الإصدار: {version} · السجلات: {records}\n الرخصة: {license}" +OPEN_SITE: Final = "افتح موقع بصيرة" + +KIND: Final[dict[str, str]] = { + "quran": "قرآن", + "hadith_matn": "حديث", + "isnad": "إسناد", + "attributed_saying": "قول منسوب", + "unknown": "اقتباس", +} + +# Book titles for the ``{source_name}`` variable of the status templates — the same proper nouns as +# corpus/manifest.json ``books[].name_ar`` (and frontend QuoteCard BOOK_NAMES). Titles, not judgements (E-009). +BOOK_NAMES: Final[dict[str, str]] = { + "sahih_al-bukhari": "صحيح البخاري", + "sahih_muslim": "صحيح مسلم", + "sunan_abu-dawud": "سنن أبي داود", + "sunan_al-tirmidhi": "سنن الترمذي", + "sunan_al-nasai": "سنن النسائي", + "sunan_ibn-maja": "سنن ابن ماجه", + "maliks_muwataa": "موطأ مالك", + "musnad_ahmad": "مسند أحمد", + "sunan_al-darimi": "سنن الدارمي", +} +HADEETHENC_NAME: Final = "موسوعة الأحاديث النبوية" + + +def all_strings() -> list[tuple[str, str]]: + """(name, value) for every string in this module — used by the lexicon test.""" + out: list[tuple[str, str]] = [] + for name, value in globals().items(): + if name.isupper() and isinstance(value, str): + out.append((name, value)) + elif name.isupper() and isinstance(value, dict): + out.extend((f"{name}.{k}", v) for k, v in value.items() if isinstance(v, str)) + return out diff --git a/integrations/telegram/pyproject.toml b/integrations/telegram/pyproject.toml new file mode 100644 index 0000000..b9d8701 --- /dev/null +++ b/integrations/telegram/pyproject.toml @@ -0,0 +1,53 @@ +[project] +name = "basira-telegram-bot" +version = "0.1.0" +description = "Telegram bot over the Basira API: forward a text or image, get the verbatim source, its reference and the differences." +requires-python = ">=3.12" +license = "Apache-2.0" +dependencies = [ + "python-telegram-bot>=22,<23", + "httpx>=0.27,<1", +] + +[project.optional-dependencies] +dev = ["pytest>=8", "pytest-asyncio>=0.23", "ruff>=0.5", "mypy>=1.10"] + +[build-system] +requires = ["setuptools>=69"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +packages = ["bot"] + +# Same lint profile as backend/pyproject.toml. +[tool.ruff] +line-length = 110 +target-version = "py312" +src = ["bot", "tests"] +extend-exclude = ["scripts/live_e2e.py"] + +[tool.ruff.lint] +select = ["E", "F", "I", "B", "UP", "N", "W", "RUF", "SIM", "C4", "PL"] +ignore = ["PLR0913", "PLR0915", "PLR0917", "PLR2004", "RUF001", "RUF002", "RUF003", "E501", "N806", "PLR0911", "PLR0912"] + +[tool.ruff.lint.per-file-ignores] +"tests/*" = ["PLR", "S101", "PLC0415"] + +[tool.ruff.lint.isort] +known-first-party = ["bot"] +known-local-folder = ["conftest", "fake_telegram"] +known-third-party = ["app"] + +[tool.mypy] +python_version = "3.12" +strict = true +warn_unreachable = true +files = ["bot", "tests"] +exclude = ["^scripts/"] +mypy_path = ["tests", "../../backend"] +explicit_package_bases = true + +[tool.pytest.ini_options] +asyncio_mode = "auto" +testpaths = ["tests"] +pythonpath = ["tests", "../../backend"] diff --git a/integrations/telegram/scripts/live_e2e.py b/integrations/telegram/scripts/live_e2e.py new file mode 100644 index 0000000..ffc1d3c --- /dev/null +++ b/integrations/telegram/scripts/live_e2e.py @@ -0,0 +1,125 @@ +"""Live end-to-end check of a running bot, driven from a real Telegram *user* account (Telethon). + + TG_API_ID=… TG_API_HASH=… TG_SESSION_FILE=~/path/telegram_session.string \ + python scripts/live_e2e.py @BasiraCheckBot [--image path.png] [--forward-from @channel:msg_id] + +The user session is read from a file outside the repository and never printed. Each scenario sends one message, +waits until the bot's placeholder is replaced by the final result, and asserts on the visible text. Prints one +line per scenario and exits non-zero on any failure. Requires: pip install telethon +""" + +from __future__ import annotations + +import argparse +import asyncio +import os +import sys +import time +from dataclasses import dataclass +from pathlib import Path + +from telethon import TelegramClient +from telethon.sessions import StringSession + +PLACEHOLDERS = ("⏳",) + + +@dataclass +class Case: + name: str + text: str | None + expect: tuple[str, ...] + forbid: tuple[str, ...] = () + image: str | None = None + forward: tuple[str, int] | None = None + + +CASES = [ + Case("start", "/start", ("بصيرة", "لا يكتب الذكاء الاصطناعي")), + Case("found_quran", "قال تعالى: ﴿إن الله مع الصابرين﴾", ("✅", "وُجد", "سورة البقرة، الآية 153")), + Case("needs_review_quran", "قال تعالى: ﴿إن الله علي كل شيء قدير﴾", ("⚠️", "يحتاج مراجعة", "علي")), + Case("not_found_hadith", "قال ﷺ: «الدين المعاملة»", ("○", "لم يوجد في مصادرنا", "ابحث في الدرر السنية")), + Case("partial_hadith", "قال ﷺ: «طلب العلم فريضة على كل مسلم ومسلمة»", ("◐", "مطابقة جزئية", "سنن ابن ماجه")), + Case("refusal", "ما حكم صلاة الجمعة؟", ("لا تجيب عن الأسئلة الشرعية",), ("✅", "⚠️")), + Case("no_quotes", "اليوم طقس جميل", ("لم نعثر في هذا النص على آية أو حديث",)), + Case("sources", "/sources", ("Tanzil", "Open-Hadith-Data", "HadeethEnc")), + Case("limits", "/limits", ("حدود ما تفحصه بصيرة",)), + Case("unsupported", None, ("أستقبل النصوص والصور فقط",)), # a sticker-like non-image document +] +# Over-length text (> 5000) cannot be sent through Telegram (4096-char message cap); tests/test_handlers.py covers it. + + +async def final_reply(client: TelegramClient, bot: str, after_id: int, timeout: float = 90) -> str: + """Concatenate the bot's replies after ``after_id`` once none of them is a placeholder any more.""" + deadline = time.monotonic() + timeout + stable_since: float | None = None + last = "" + while time.monotonic() < deadline: + await asyncio.sleep(1.5) + msgs = [m for m in await client.get_messages(bot, limit=10) if m.id > after_id and not m.out] + text = "\n---\n".join((m.message or "") for m in reversed(msgs)) + done = bool(msgs) and not any(text.lstrip().startswith(p) for p in PLACEHOLDERS) and all( + not (m.message or "").startswith(PLACEHOLDERS) for m in msgs + ) + if done and text == last: + stable_since = stable_since or time.monotonic() + if time.monotonic() - stable_since >= 2: + return text + else: + stable_since = None + last = text + return last + + +async def run(args: argparse.Namespace) -> int: + session = Path(os.path.expanduser(os.environ["TG_SESSION_FILE"])).read_text().strip() + client = TelegramClient(StringSession(session), int(os.environ["TG_API_ID"]), os.environ["TG_API_HASH"]) + await client.connect() + if not await client.is_user_authorized(): + print("session not authorized", file=sys.stderr) + return 2 + cases = list(CASES) + if args.image: + cases.append(Case("image", None, ("النص كما قُرئ من الصورة", "⚠️"), ("✅",), image=args.image)) + if args.forward_from: + chat, _, mid = args.forward_from.rpartition(":") + cases.append(Case("forward", None, ("بصيرة",), forward=(chat, int(mid)))) + failures = 0 + for c in cases: + if args.only and c.name not in args.only: + continue + last = await client.get_messages(args.bot, limit=1) + after = last[0].id if last else 0 + t0 = time.monotonic() + if c.image: + await client.send_file(args.bot, c.image, force_document=False) + elif c.name == "unsupported": + await client.send_file(args.bot, __file__, force_document=True) + elif c.forward: + await client.forward_messages(args.bot, c.forward[1], c.forward[0]) + else: + await client.send_message(args.bot, c.text or "") + reply = await final_reply(client, args.bot, after) + missing = [e for e in c.expect if e not in reply] + present = [f for f in c.forbid if f in reply] + ok = bool(reply) and not missing and not present + failures += not ok + print(f"{'PASS' if ok else 'FAIL'} {c.name:20} {time.monotonic() - t0:5.1f}s chars={len(reply)}" + + (f" missing={missing}" if missing else "") + (f" forbidden={present}" if present else "")) + await asyncio.sleep(args.gap) + await client.disconnect() + return 1 if failures else 0 + + +def main() -> int: + p = argparse.ArgumentParser() + p.add_argument("bot") + p.add_argument("--image") + p.add_argument("--forward-from", help="@channel:message_id of a public post quoting an ayah or hadith") + p.add_argument("--only", nargs="*") + p.add_argument("--gap", type=float, default=3.0, help="seconds between scenarios (stay under the rate limit)") + return asyncio.run(run(p.parse_args())) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/integrations/telegram/tests/conftest.py b/integrations/telegram/tests/conftest.py new file mode 100644 index 0000000..2805104 --- /dev/null +++ b/integrations/telegram/tests/conftest.py @@ -0,0 +1,71 @@ +"""Shared fixtures. Every API body under tests/fixtures/ is a real response captured from https://basirapp.site +(build f62b2ba, 2026-10-05) — no religious text in these tests is written by hand.""" + +from __future__ import annotations + +import json +import sys +from collections.abc import Callable, Mapping +from pathlib import Path +from typing import Any + +import httpx +import pytest + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] # repository root +FIXTURES = HERE / "fixtures" +MESSAGES_DIR = ROOT / "messages" + +sys.path.insert(0, str(ROOT / "backend")) # the forbidden-lexicon scanner lives in the backend (V4) + + +def load(name: str) -> Any: + return json.loads((FIXTURES / f"{name}.json").read_text(encoding="utf-8")) + + +def messages_ar() -> dict[str, Any]: + raw: dict[str, Any] = json.loads((MESSAGES_DIR / "ar.json").read_text(encoding="utf-8")) + raw.pop("$comment", None) + return raw + + +def messages_map() -> Mapping[str, Mapping[str, str]]: + return {k: v for k, v in messages_ar().items() if isinstance(v, dict)} + + +Handler = Callable[[httpx.Request], httpx.Response] + + +def api_transport( + routes: Mapping[str, Any] | None = None, *, log: list[httpx.Request] | None = None +) -> httpx.MockTransport: + """A fake Basira API: path → fixture name, (status, body) or callable. ``/v1/messages/ar`` is the repo file.""" + table: dict[str, Any] = { + "/v1/messages/ar": messages_ar(), + "/health": {"status": "ok", "build_sha": "test"}, + } + table.update(routes or {}) + + def handle(request: httpx.Request) -> httpx.Response: + if log is not None: + log.append(request) + spec = table.get(request.url.path) + if callable(spec): + out: httpx.Response = spec(request) + return out + if spec is None: + return httpx.Response( + 404, json={"error": {"code": "not_found", "message_ar": "x", "message_en": "x"}} + ) + if isinstance(spec, tuple): + return httpx.Response(spec[0], json=spec[1]) + body = load(spec) if isinstance(spec, str) else spec + return httpx.Response(200, json=body) + + return httpx.MockTransport(handle) + + +@pytest.fixture +def m() -> Mapping[str, Mapping[str, str]]: + return messages_map() diff --git a/integrations/telegram/tests/fake_telegram.py b/integrations/telegram/tests/fake_telegram.py new file mode 100644 index 0000000..85d7c71 --- /dev/null +++ b/integrations/telegram/tests/fake_telegram.py @@ -0,0 +1,214 @@ +"""A fake Telegram Bot API for tests: the real python-telegram-bot ``Application`` (filters, routing, handlers) +runs unmodified; only the HTTPS transport to api.telegram.org is replaced by this in-memory recorder.""" + +from __future__ import annotations + +import json +from dataclasses import dataclass, field +from typing import Any + +from telegram import Update +from telegram.request import BaseRequest, RequestData + +BOT_ID = 8949966941 +BOT_USERNAME = "BasiraCheckBot" +TOKEN = "1234567:TESTONLY-not-a-real-token-000000000" # 7-digit id: never matches the secret scan +DOC_BYTES = b"\x89PNG\r\n\x1a\n" + b"\x00" * 128 # valid PNG signature + + +@dataclass +class Call: + method: str + params: dict[str, Any] + + +@dataclass +class FakeTelegram(BaseRequest): + calls: list[Call] = field(default_factory=list) + file_bytes: bytes = DOC_BYTES + next_message_id: int = 1000 + fail_html_once: bool = False + + async def initialize(self) -> None: + return None + + async def shutdown(self) -> None: + return None + + @property + def read_timeout(self) -> float | None: + return 5.0 + + def sent(self, method: str | None = None) -> list[Call]: + return [c for c in self.calls if method is None or c.method == method] + + def texts(self) -> list[str]: + """Final text of every bot message (edits replace the placeholder).""" + out: dict[int, str] = {} + order: list[int] = [] + for c in self.calls: + if c.method == "sendMessage": + mid = int(c.params["_id"]) + out[mid] = str(c.params["text"]) + order.append(mid) + elif c.method == "editMessageText": + out[int(c.params["message_id"])] = str(c.params["text"]) + return [out[i] for i in order] + + async def do_request( + self, + url: str, + method: str, + request_data: RequestData | None = None, + read_timeout: Any = None, + write_timeout: Any = None, + connect_timeout: Any = None, + pool_timeout: Any = None, + ) -> tuple[int, bytes]: + if "/file/bot" in url: + return 200, self.file_bytes + endpoint = url.rsplit("/", 1)[-1] + params: dict[str, Any] = {} + if request_data is not None: + params = {k: _decode(v) for k, v in request_data.json_parameters.items()} + result: Any + if endpoint == "getMe": + result = { + "id": BOT_ID, + "is_bot": True, + "first_name": "بصيرة | Basira", + "username": BOT_USERNAME, + "can_join_groups": True, + "can_read_all_group_messages": False, + "supports_inline_queries": False, + } + elif endpoint == "getFile": + result = { + "file_id": params["file_id"], + "file_unique_id": "u", + "file_size": len(self.file_bytes), + "file_path": "photos/file_0.png", + } + elif endpoint in {"sendMessage", "editMessageText"}: + if self.fail_html_once and params.get("parse_mode") == "HTML": + self.fail_html_once = False + self.calls.append(Call(endpoint + ":rejected", params)) + body = {"ok": False, "error_code": 400, "description": "Bad Request: can't parse entities"} + return 400, json.dumps(body).encode() + if endpoint == "sendMessage": + self.next_message_id += 1 + params["_id"] = self.next_message_id + mid = self.next_message_id + else: + mid = int(params["message_id"]) + result = { + "message_id": mid, + "date": 0, + "chat": {"id": int(params["chat_id"]), "type": "private"}, + "text": params["text"], + "from": {"id": BOT_ID, "is_bot": True, "first_name": "B"}, + } + else: + result = True + self.calls.append(Call(endpoint, params)) + return 200, json.dumps({"ok": True, "result": result}).encode() + + +def _decode(v: str) -> Any: + try: + return json.loads(v) + except (TypeError, ValueError): + return v + + +# ------------------------------------------------------------------ update builders +_uid = 0 + + +def _next() -> int: + global _uid # noqa: PLW0603 — test-only counter + _uid += 1 + return _uid + + +def user(uid: int = 42) -> dict[str, Any]: + return {"id": uid, "is_bot": False, "first_name": "U"} + + +def chat(kind: str = "private", cid: int = 42) -> dict[str, Any]: + c: dict[str, Any] = {"id": cid if kind == "private" else -100123, "type": kind} + if kind != "private": + c["title"] = "G" + return c + + +def entities_for(text: str) -> list[dict[str, Any]]: + ents: list[dict[str, Any]] = [] + if text.startswith("/"): + cmd = text.split(maxsplit=1)[0] + ents.append({"type": "bot_command", "offset": 0, "length": len(cmd.encode("utf-16-le")) // 2}) + at = f"@{BOT_USERNAME}" + i = text.find(at) + if i >= 0: + off = len(text[:i].encode("utf-16-le")) // 2 + ents.append({"type": "mention", "offset": off, "length": len(at)}) + return ents + + +def message( + text: str | None = None, + *, + kind: str = "private", + uid: int = 42, + photo: bool = False, + document_mime: str | None = None, + file_size: int = 1000, + caption: str | None = None, + forward: bool = False, + reply_to: dict[str, Any] | None = None, + from_bot: bool = False, +) -> dict[str, Any]: + m: dict[str, Any] = {"message_id": _next(), "date": 0, "chat": chat(kind, uid), "from": user(uid)} + if from_bot: + m["from"] = {"id": 777, "is_bot": True, "first_name": "OtherBot"} + if text is not None: + m["text"] = text + ents = entities_for(text) + if ents: + m["entities"] = ents + if photo: + m["photo"] = [ + {"file_id": "small", "file_unique_id": "s", "width": 90, "height": 90, "file_size": 100}, + {"file_id": "big", "file_unique_id": "b", "width": 900, "height": 900, "file_size": file_size}, + ] + if document_mime: + m["document"] = { + "file_id": "doc", + "file_unique_id": "d", + "mime_type": document_mime, + "file_size": file_size, + } + if caption is not None: + m["caption"] = caption + ents = entities_for(caption) + if ents: + m["caption_entities"] = ents + if forward: + m["forward_origin"] = { + "type": "channel", + "date": 0, + "chat": {"id": -1001, "type": "channel", "title": "C"}, + "message_id": 5, + } + if reply_to is not None: + m["reply_to_message"] = reply_to + return m + + +def update(msg: dict[str, Any], bot: Any, *, edited: bool = False) -> Update: + key = "edited_message" if edited else "message" + if edited: + msg = {**msg, "edit_date": 1} + u = Update.de_json({"update_id": _next(), key: msg}, bot) + assert u is not None + return u diff --git a/integrations/telegram/tests/fixtures/err_413.json b/integrations/telegram/tests/fixtures/err_413.json new file mode 100644 index 0000000..6220137 --- /dev/null +++ b/integrations/telegram/tests/fixtures/err_413.json @@ -0,0 +1 @@ +{"error":{"code":"text_too_long","message_ar":"النص أطول من الحد المسموح (5000 حرفًا).","message_en":"The text exceeds the allowed length (5000 characters)."}} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/err_422.json b/integrations/telegram/tests/fixtures/err_422.json new file mode 100644 index 0000000..3ef0f94 --- /dev/null +++ b/integrations/telegram/tests/fixtures/err_422.json @@ -0,0 +1 @@ +{"error":{"code":"invalid_input","message_ar":"المدخل غير صالح.","message_en":"Invalid input."}} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/found_quran.json b/integrations/telegram/tests/fixtures/found_quran.json new file mode 100644 index 0000000..42388dc --- /dev/null +++ b/integrations/telegram/tests/fixtures/found_quran.json @@ -0,0 +1 @@ +{"request_id":"31917554-298c-45f1-84b5-85a782df95e1","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[{"id":"q1","span":{"start":12,"end":31},"quoted_text":"إن الله مع الصابرين","kind":"quran","language":"ar","source_modality":"text","claimed_source":null,"claimed_source_mismatch":false,"status":"found","review_reason":null,"score":1.0,"message_key":"found_multi","notice_keys":["quran_fragment"],"matches":[{"corpus":"tanzil","ref":{"surah":2,"ayah":153},"ref_label_ar":"سورة البقرة، الآية 153","ref_label_en":"Surah Al-Baqarah (2:153)","collection_tier":"quran","source_text":"يَٰٓأَيُّهَا ٱلَّذِينَ ءَامَنُوا۟ ٱسْتَعِينُوا۟ بِٱلصَّبْرِ وَٱلصَّلَوٰةِ إِنَّ ٱللَّهَ مَعَ ٱلصَّٰبِرِينَ","source_text_range":null,"source_url":"https://quranpedia.net/surah/1/2/153","links":[{"name":"quranpedia.net","url":"https://quranpedia.net/surah/1/2/153"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"tanzil","ref":{"surah":8,"ayah":46},"ref_label_ar":"سورة الأنفال، الآية 46","ref_label_en":"Surah Al-Anfal (8:46)","collection_tier":"quran","source_text":"وَأَطِيعُوا۟ ٱللَّهَ وَرَسُولَهُۥ وَلَا تَنَٰزَعُوا۟ فَتَفْشَلُوا۟ وَتَذْهَبَ رِيحُكُمْ وَٱصْبِرُوٓا۟ إِنَّ ٱللَّهَ مَعَ ٱلصَّٰبِرِينَ","source_text_range":[102,133],"source_url":"https://quranpedia.net/surah/1/8/46","links":[{"name":"quranpedia.net","url":"https://quranpedia.net/surah/1/8/46"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]}],"total_positions":2,"external_search_links":[],"segments":[{"type":"Ayah","start":12,"end":31}],"repeated_spans":[],"english_candidates":[],"picker":""}],"validator_rejections":0,"timings_ms":{"extract":1035,"retrieve":0,"match":1,"total":1059},"quotes_detected":1,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"5785aa4af67b8d21cdafa04ca833bdf2cfd8d07f4a254f24e15d4bd8b842e78b"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/image_hadith.json b/integrations/telegram/tests/fixtures/image_hadith.json new file mode 100644 index 0000000..9074bd7 --- /dev/null +++ b/integrations/telegram/tests/fixtures/image_hadith.json @@ -0,0 +1 @@ +{"request_id":"83841855-aede-44d3-9867-c06c5e42ad5e","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[{"id":"q1","span":{"start":18,"end":38},"quoted_text":"إنما الأعمال بالنيات","kind":"hadith_matn","language":"ar","source_modality":"image","claimed_source":{"raw":"رواه البخاري","parsed":{"books":["sahih_al-bukhari"]}},"claimed_source_mismatch":false,"status":"needs_review","review_reason":"image_unconfirmed","score":1.0,"message_key":"needs_review_image","notice_keys":["many_positions","ohd_numbering","ohd_display_note","other_nine_referral","no_grade","image_extracted"],"matches":[{"corpus":"ohd","ref":{"book":"sahih_al-bukhari","num":1,"numbering":"ohd"},"ref_label_ar":"صحيح البخاري، رقم 1 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sahih al-Bukhari, no. 1 (Open-Hadith-Data numbering)","collection_tier":"sahihain","source_text":" حَدَّثَنَا الْحُمَيْدِيُّ عَبْدُ اللَّهِ بْنُ الزُّبَيْرِ قَالَ حَدَّثَنَا سُفْيَانُ قَالَ حَدَّثَنَا يَحْيَى بْنُ سَعِيدٍ الْأَنْصَارِيُّ قَالَ أَخْبَرَنِي مُحَمَّدُ بْنُ إِبْرَاهِيمَ التَّيْمِيُّ أَنَّهُ سَمِعَ عَلْقَمَةَ بْنَ وَقَّاصٍ اللَّيْثِيَّ يَقُولُ سَمِعْتُ عُمَرَ بْنَ الْخَطَّابِ رَضِيَ اللَّهُ عَنْهُ عَلَى الْمِنْبَرِ قَالَ سَمِعْتُ رَسُولَ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ يَقُولُ إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ ","source_text_range":[423,458],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sahih_Al-Bukhari/sahih_al-bukhari_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sahih_Al-Bukhari/sahih_al-bukhari_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"ohd","ref":{"book":"sunan_abu-dawud","num":1882,"numbering":"ohd"},"ref_label_ar":"سنن أبي داود، رقم 1882 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sunan Abu Dawud, no. 1882 (Open-Hadith-Data numbering)","collection_tier":"other_nine","source_text":" حَدَّثَنَا مُحَمَّدُ بْنُ كَثِيرٍ أَخْبَرَنَا سُفْيَانُ حَدَّثَنِي يَحْيَى بْنُ سَعِيدٍ عَنْ مُحَمَّدِ بْنِ إِبْرَاهِيمَ التَّيْمِيِّ عَنْ عَلْقَمَةَ بْنِ وَقَّاصٍ اللَّيْثِيِّ قَالَ سَمِعْتُ عُمَرَ بْنَ الْخَطَّابِ يَقُولُ قَالَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى اللَّهِ وَرَسُولِهِ فَهِجْرَتُهُ إِلَى اللَّهِ وَرَسُولِهِ وَمَنْ كَانَتْ هِجْرَتُهُ لِدُنْيَا يُصِيبُهَا أَوْ امْرَأَةٍ يَتَزَوَّجُهَا فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ ","source_text_range":[296,331],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Abu-Dawud/sunan_abu-dawud_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Abu-Dawud/sunan_abu-dawud_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"ohd","ref":{"book":"sunan_ibn-maja","num":4217,"numbering":"ohd"},"ref_label_ar":"سنن ابن ماجه، رقم 4217 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sunan Ibn Majah, no. 4217 (Open-Hadith-Data numbering)","collection_tier":"other_nine","source_text":" حَدَّثَنَا أَبُو بَكْرِ بْنُ أَبِي شَيْبَةَ حَدَّثَنَا يَزِيدُ بْنُ هَارُونَ ح و حَدَّثَنَا مُحَمَّدُ بْنُ رُمْحٍ أَنْبَأَنَا اللَّيْثُ بْنُ سَعْدٍ قَالَا أَنْبَأَنَا يَحْيَى بْنُ سَعِيدٍ أَنَّ مُحَمَّدَ بْنَ إِبْرَاهِيمَ التَّيْمِيَّ أَخْبَرَهُ أَنَّهُ سَمِعَ عَلْقَمَةَ بْنَ وَقَّاصٍ أَنَّهُ سَمِعَ عُمَرَ بْنَ الْخَطَّابِ وَهُوَ يَخْطُبُ النَّاسَ فَقَالَ سَمِعْتُ رَسُولَ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ يَقُولُ إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ وَلِكُلِّ امْرِئٍ مَا نَوَى فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى اللَّهِ وَإِلَى رَسُولِهِ فَهِجْرَتُهُ إِلَى اللَّهِ وَإِلَى رَسُولِهِ وَمَنْ كَانَتْ هِجْرَتُهُ لِدُنْيَا يُصِيبُهَا أَوْ امْرَأَةٍ يَتَزَوَّجُهَا فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ ","source_text_range":[448,483],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Ibn-Maja/sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Ibn-Maja/sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]}],"total_positions":7,"external_search_links":[],"segments":[{"type":"matn","start":18,"end":38}],"repeated_spans":[],"english_candidates":[],"picker":""}],"validator_rejections":0,"timings_ms":{"extract":1292,"retrieve":0,"match":2,"total":1300},"quotes_detected":1,"extraction_truncated":false,"ocr_text":"قال رسول الله ﷺ: «إنما الأعمال بالنيات»\n\nرواه البخاري","ocr_truncated":false,"determinism_hash":"37c62caa97257561d55a79435f136d75d4d1df6ae75f9e7a8a9deb4da8ecbcf0"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/multi.json b/integrations/telegram/tests/fixtures/multi.json new file mode 100644 index 0000000..c540b8d --- /dev/null +++ b/integrations/telegram/tests/fixtures/multi.json @@ -0,0 +1 @@ +{"request_id":"4625aa3a-cef6-4055-b2be-52345678e230","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[{"id":"q1","span":{"start":12,"end":53},"quoted_text":"قل هو الله أحد الله الصمد لم يلد ولم يولد","kind":"quran","language":"ar","source_modality":"text","claimed_source":{"raw":"رواه مسلم","parsed":{"books":["sahih_muslim"]}},"claimed_source_mismatch":false,"status":"found","review_reason":null,"score":1.0,"message_key":"found","notice_keys":["quran_wins"],"matches":[{"corpus":"tanzil","ref":{"surah":112,"ayah":1},"ref_label_ar":"سورة الإخلاص، الآيات 1–3","ref_label_en":"Surah Al-Ikhlas (112:1–3)","collection_tier":"quran","source_text":"بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ قُلْ هُوَ ٱللَّهُ أَحَدٌ","source_text_range":[39,62],"source_url":"https://quranpedia.net/surah/1/112/1","links":[{"name":"quranpedia.net","url":"https://quranpedia.net/surah/1/112/1"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":{"surah":112,"ayah":3},"source_segments":[{"ref":{"surah":112,"ayah":1},"ref_label_ar":"سورة الإخلاص، الآية 1","ref_label_en":"Surah Al-Ikhlas (112:1)","source_text":"بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ قُلْ هُوَ ٱللَّهُ أَحَدٌ","source_url":"https://quranpedia.net/surah/1/112/1"},{"ref":{"surah":112,"ayah":2},"ref_label_ar":"سورة الإخلاص، الآية 2","ref_label_en":"Surah Al-Ikhlas (112:2)","source_text":"ٱللَّهُ ٱلصَّمَدُ","source_url":"https://quranpedia.net/surah/1/112/2"},{"ref":{"surah":112,"ayah":3},"ref_label_ar":"سورة الإخلاص، الآية 3","ref_label_en":"Surah Al-Ikhlas (112:3)","source_text":"لَمْ يَلِدْ وَلَمْ يُولَدْ","source_url":"https://quranpedia.net/surah/1/112/3"}]}],"total_positions":1,"external_search_links":[],"segments":[{"type":"Ayah","start":12,"end":53}],"repeated_spans":[],"english_candidates":[],"picker":""},{"id":"q2","span":{"start":64,"end":84},"quoted_text":"إنما الأعمال بالنيات","kind":"hadith_matn","language":"ar","source_modality":"text","claimed_source":{"raw":"رواه مسلم","parsed":{"books":["sahih_muslim"]}},"claimed_source_mismatch":true,"status":"found","review_reason":null,"score":1.0,"message_key":"found_multi","notice_keys":["claimed_source_mismatch","many_positions","ohd_numbering","ohd_display_note","other_nine_referral","no_grade"],"matches":[{"corpus":"ohd","ref":{"book":"sahih_al-bukhari","num":1,"numbering":"ohd"},"ref_label_ar":"صحيح البخاري، رقم 1 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sahih al-Bukhari, no. 1 (Open-Hadith-Data numbering)","collection_tier":"sahihain","source_text":" حَدَّثَنَا الْحُمَيْدِيُّ عَبْدُ اللَّهِ بْنُ الزُّبَيْرِ قَالَ حَدَّثَنَا سُفْيَانُ قَالَ حَدَّثَنَا يَحْيَى بْنُ سَعِيدٍ الْأَنْصَارِيُّ قَالَ أَخْبَرَنِي مُحَمَّدُ بْنُ إِبْرَاهِيمَ التَّيْمِيُّ أَنَّهُ سَمِعَ عَلْقَمَةَ بْنَ وَقَّاصٍ اللَّيْثِيَّ يَقُولُ سَمِعْتُ عُمَرَ بْنَ الْخَطَّابِ رَضِيَ اللَّهُ عَنْهُ عَلَى الْمِنْبَرِ قَالَ سَمِعْتُ رَسُولَ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ يَقُولُ إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ ","source_text_range":[423,458],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sahih_Al-Bukhari/sahih_al-bukhari_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sahih_Al-Bukhari/sahih_al-bukhari_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"ohd","ref":{"book":"sunan_abu-dawud","num":1882,"numbering":"ohd"},"ref_label_ar":"سنن أبي داود، رقم 1882 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sunan Abu Dawud, no. 1882 (Open-Hadith-Data numbering)","collection_tier":"other_nine","source_text":" حَدَّثَنَا مُحَمَّدُ بْنُ كَثِيرٍ أَخْبَرَنَا سُفْيَانُ حَدَّثَنِي يَحْيَى بْنُ سَعِيدٍ عَنْ مُحَمَّدِ بْنِ إِبْرَاهِيمَ التَّيْمِيِّ عَنْ عَلْقَمَةَ بْنِ وَقَّاصٍ اللَّيْثِيِّ قَالَ سَمِعْتُ عُمَرَ بْنَ الْخَطَّابِ يَقُولُ قَالَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى اللَّهِ وَرَسُولِهِ فَهِجْرَتُهُ إِلَى اللَّهِ وَرَسُولِهِ وَمَنْ كَانَتْ هِجْرَتُهُ لِدُنْيَا يُصِيبُهَا أَوْ امْرَأَةٍ يَتَزَوَّجُهَا فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ ","source_text_range":[296,331],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Abu-Dawud/sunan_abu-dawud_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Abu-Dawud/sunan_abu-dawud_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"ohd","ref":{"book":"sunan_ibn-maja","num":4217,"numbering":"ohd"},"ref_label_ar":"سنن ابن ماجه، رقم 4217 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sunan Ibn Majah, no. 4217 (Open-Hadith-Data numbering)","collection_tier":"other_nine","source_text":" حَدَّثَنَا أَبُو بَكْرِ بْنُ أَبِي شَيْبَةَ حَدَّثَنَا يَزِيدُ بْنُ هَارُونَ ح و حَدَّثَنَا مُحَمَّدُ بْنُ رُمْحٍ أَنْبَأَنَا اللَّيْثُ بْنُ سَعْدٍ قَالَا أَنْبَأَنَا يَحْيَى بْنُ سَعِيدٍ أَنَّ مُحَمَّدَ بْنَ إِبْرَاهِيمَ التَّيْمِيَّ أَخْبَرَهُ أَنَّهُ سَمِعَ عَلْقَمَةَ بْنَ وَقَّاصٍ أَنَّهُ سَمِعَ عُمَرَ بْنَ الْخَطَّابِ وَهُوَ يَخْطُبُ النَّاسَ فَقَالَ سَمِعْتُ رَسُولَ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ يَقُولُ إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ وَلِكُلِّ امْرِئٍ مَا نَوَى فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى اللَّهِ وَإِلَى رَسُولِهِ فَهِجْرَتُهُ إِلَى اللَّهِ وَإِلَى رَسُولِهِ وَمَنْ كَانَتْ هِجْرَتُهُ لِدُنْيَا يُصِيبُهَا أَوْ امْرَأَةٍ يَتَزَوَّجُهَا فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ ","source_text_range":[448,483],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Ibn-Maja/sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Ibn-Maja/sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[],"diff_kinds":[],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]}],"total_positions":7,"external_search_links":[],"segments":[{"type":"matn","start":64,"end":84},{"type":"claimed_source","start":86,"end":95}],"repeated_spans":[],"english_candidates":[],"picker":""}],"validator_rejections":0,"timings_ms":{"extract":1956,"retrieve":0,"match":5,"total":1967},"quotes_detected":2,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"fa25fcaf3b8f78b1d86545b6f1fbb0f2b3576297cef3154eb1cd7cae02124e2a"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/needs_review_quran.json b/integrations/telegram/tests/fixtures/needs_review_quran.json new file mode 100644 index 0000000..58ea955 --- /dev/null +++ b/integrations/telegram/tests/fixtures/needs_review_quran.json @@ -0,0 +1 @@ +{"request_id":"d3d79161-77fd-411d-97e7-1a0c167cf2d4","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[{"id":"q1","span":{"start":12,"end":35},"quoted_text":"إن الله علي كل شيء قدير","kind":"quran","language":"ar","source_modality":"text","claimed_source":null,"claimed_source_mismatch":false,"status":"needs_review","review_reason":"orthographic_difference","score":1.0,"message_key":"needs_review_quran","notice_keys":["many_positions"],"matches":[{"corpus":"tanzil","ref":{"surah":2,"ayah":20},"ref_label_ar":"سورة البقرة، الآية 20","ref_label_en":"Surah Al-Baqarah (2:20)","collection_tier":"quran","source_text":"يَكَادُ ٱلْبَرْقُ يَخْطَفُ أَبْصَٰرَهُمْ كُلَّمَآ أَضَآءَ لَهُم مَّشَوْا۟ فِيهِ وَإِذَآ أَظْلَمَ عَلَيْهِمْ قَامُوا۟ وَلَوْ شَآءَ ٱللَّهُ لَذَهَبَ بِسَمْعِهِمْ وَأَبْصَٰرِهِمْ إِنَّ ٱللَّهَ عَلَىٰ كُلِّ شَىْءٍ قَدِيرٌ","source_text_range":[180,220],"source_url":"https://quranpedia.net/surah/1/2/20","links":[{"name":"quranpedia.net","url":"https://quranpedia.net/surah/1/2/20"}],"diff":[{"op":"equal","quote_range":[0,2],"source_range":[0,2],"quote_chars":[0,7],"source_chars":[180,192],"quote_letters":[],"source_letters":[]},{"op":"replace","quote_range":[2,3],"source_range":[2,3],"quote_chars":[8,11],"source_chars":[194,199],"quote_letters":[[10,11]],"source_letters":[[198,199]]},{"op":"equal","quote_range":[3,6],"source_range":[3,6],"quote_chars":[12,23],"source_chars":[201,220],"quote_letters":[],"source_letters":[]}],"diff_kinds":["word_replaced"],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"tanzil","ref":{"surah":2,"ayah":106},"ref_label_ar":"سورة البقرة، الآية 106","ref_label_en":"Surah Al-Baqarah (2:106)","collection_tier":"quran","source_text":"مَا نَنسَخْ مِنْ ءَايَةٍ أَوْ نُنسِهَا نَأْتِ بِخَيْرٍ مِّنْهَآ أَوْ مِثْلِهَآ أَلَمْ تَعْلَمْ أَنَّ ٱللَّهَ عَلَىٰ كُلِّ شَىْءٍ قَدِيرٌ","source_text_range":[97,137],"source_url":"https://quranpedia.net/surah/1/2/106","links":[{"name":"quranpedia.net","url":"https://quranpedia.net/surah/1/2/106"}],"diff":[{"op":"replace","quote_range":[0,1],"source_range":[0,1],"quote_chars":[0,2],"source_chars":[97,100],"quote_letters":[[0,1]],"source_letters":[[97,99]]},{"op":"equal","quote_range":[1,2],"source_range":[1,2],"quote_chars":[3,7],"source_chars":[103,109],"quote_letters":[],"source_letters":[]},{"op":"replace","quote_range":[2,3],"source_range":[2,3],"quote_chars":[8,11],"source_chars":[111,116],"quote_letters":[[10,11]],"source_letters":[[115,116]]},{"op":"equal","quote_range":[3,6],"source_range":[3,6],"quote_chars":[12,23],"source_chars":[118,137],"quote_letters":[],"source_letters":[]}],"diff_kinds":["word_replaced"],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]},{"corpus":"tanzil","ref":{"surah":2,"ayah":109},"ref_label_ar":"سورة البقرة، الآية 109","ref_label_en":"Surah Al-Baqarah (2:109)","collection_tier":"quran","source_text":"وَدَّ كَثِيرٌ مِّنْ أَهْلِ ٱلْكِتَٰبِ لَوْ يَرُدُّونَكُم مِّنۢ بَعْدِ إِيمَٰنِكُمْ كُفَّارًا حَسَدًا مِّنْ عِندِ أَنفُسِهِم مِّنۢ بَعْدِ مَا تَبَيَّنَ لَهُمُ ٱلْحَقُّ فَٱعْفُوا۟ وَٱصْفَحُوا۟ حَتَّىٰ يَأْتِىَ ٱللَّهُ بِأَمْرِهِۦٓ إِنَّ ٱللَّهَ عَلَىٰ كُلِّ شَىْءٍ قَدِيرٌ","source_text_range":[229,269],"source_url":"https://quranpedia.net/surah/1/2/109","links":[{"name":"quranpedia.net","url":"https://quranpedia.net/surah/1/2/109"}],"diff":[{"op":"equal","quote_range":[0,2],"source_range":[0,2],"quote_chars":[0,7],"source_chars":[229,241],"quote_letters":[],"source_letters":[]},{"op":"replace","quote_range":[2,3],"source_range":[2,3],"quote_chars":[8,11],"source_chars":[243,248],"quote_letters":[[10,11]],"source_letters":[[247,248]]},{"op":"equal","quote_range":[3,6],"source_range":[3,6],"quote_chars":[12,23],"source_chars":[250,269],"quote_letters":[],"source_letters":[]}],"diff_kinds":["word_replaced"],"score":1.0,"grade":null,"continues_to":null,"source_segments":[]}],"total_positions":11,"external_search_links":[{"name":"ابحث في موسوعة القرآن","url":"https://quranpedia.net/search?q=%D8%A5%D9%86%20%D8%A7%D9%84%D9%84%D9%87%20%D8%B9%D9%84%D9%8A%20%D9%83%D9%84%20%D8%B4%D9%8A%D8%A1%20%D9%82%D8%AF%D9%8A%D8%B1"}],"segments":[{"type":"Ayah","start":12,"end":35}],"repeated_spans":[],"english_candidates":[],"picker":""}],"validator_rejections":0,"timings_ms":{"extract":1244,"retrieve":0,"match":3,"total":1251},"quotes_detected":1,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"2277b24db80d3f37e20eda3a40bf23b9c8701f6404f093fa622dd8a23732bbab"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/no_quotes.json b/integrations/telegram/tests/fixtures/no_quotes.json new file mode 100644 index 0000000..5728e30 --- /dev/null +++ b/integrations/telegram/tests/fixtures/no_quotes.json @@ -0,0 +1 @@ +{"request_id":"21f218d4-1710-40c5-9e6d-30e1ba677012","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[],"validator_rejections":0,"timings_ms":{"extract":1225,"retrieve":0,"match":0,"total":1226},"quotes_detected":0,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"810137381fdcbc8645d12367af6a1d6e556657d924cc0fe403364d3282480651"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/not_found_hadith.json b/integrations/telegram/tests/fixtures/not_found_hadith.json new file mode 100644 index 0000000..eb80f11 --- /dev/null +++ b/integrations/telegram/tests/fixtures/not_found_hadith.json @@ -0,0 +1 @@ +{"request_id":"08740da4-118a-4d33-aabe-45f9d830008c","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[{"id":"q1","span":{"start":8,"end":22},"quoted_text":"الدين المعاملة","kind":"hadith_matn","language":"ar","source_modality":"text","claimed_source":null,"claimed_source_mismatch":false,"status":"not_found","review_reason":null,"score":0.0,"message_key":"not_found","notice_keys":[],"matches":[],"total_positions":0,"external_search_links":[{"name":"ابحث في الدرر السنية","url":"https://dorar.net/hadith/search?q=%D8%A7%D9%84%D8%AF%D9%8A%D9%86%20%D8%A7%D9%84%D9%85%D8%B9%D8%A7%D9%85%D9%84%D8%A9"},{"name":"ابحث في المكتبة الشاملة","url":"https://shamela.ws/search?q=%D8%A7%D9%84%D8%AF%D9%8A%D9%86%20%D8%A7%D9%84%D9%85%D8%B9%D8%A7%D9%85%D9%84%D8%A9"}],"segments":[{"type":"matn","start":8,"end":22}],"repeated_spans":[],"english_candidates":[],"picker":""}],"validator_rejections":0,"timings_ms":{"extract":1235,"retrieve":9,"match":0,"total":1246},"quotes_detected":1,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"a4d5b77d78e2b341d0ecd2c6082a94a8f8ae42bf98e48b76652d6b9adaeff943"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/partial_hadith.json b/integrations/telegram/tests/fixtures/partial_hadith.json new file mode 100644 index 0000000..2ee0e19 --- /dev/null +++ b/integrations/telegram/tests/fixtures/partial_hadith.json @@ -0,0 +1 @@ +{"request_id":"a800993f-90f0-4639-a186-8c608c93a30c","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":false,"pii_suspected":false},"quotes":[{"id":"q1","span":{"start":8,"end":42},"quoted_text":"طلب العلم فريضة على كل مسلم ومسلمة","kind":"hadith_matn","language":"ar","source_modality":"text","claimed_source":null,"claimed_source_mismatch":false,"status":"partial_match","review_reason":null,"score":0.8571,"message_key":"partial_match","notice_keys":["hadith_variant","ohd_numbering","ohd_display_note","other_nine_referral","no_grade"],"matches":[{"corpus":"ohd","ref":{"book":"sunan_ibn-maja","num":220,"numbering":"ohd"},"ref_label_ar":"سنن ابن ماجه، رقم 220 (ترقيم مجموعة Open-Hadith-Data)","ref_label_en":"Sunan Ibn Majah, no. 220 (Open-Hadith-Data numbering)","collection_tier":"other_nine","source_text":" حَدَّثَنَا هِشَامُ بْنُ عَمَّارٍ حَدَّثَنَا حَفْصُ بْنُ سُلَيْمَانَ حَدَّثَنَا كَثِيرُ بْنُ شِنْظِيرٍ عَنْ مُحَمَّدِ بْنِ سِيرِينَ عَنْ أَنَسِ بْنِ مَالِكٍ قَالَ قَالَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ طَلَبُ الْعِلْمِ فَرِيضَةٌ عَلَى كُلِّ مُسْلِمٍ وَوَاضِعُ الْعِلْمِ عِنْدَ غَيْرِ أَهْلِهِ كَمُقَلِّدِ الْخَنَازِيرِ الْجَوْهَرَ وَاللُّؤْلُؤَ وَالذَّهَبَ ","source_text_range":[232,278],"source_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Ibn-Maja/sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv","links":[{"name":"Open-Hadith-Data","url":"https://github.com/mhashim6/Open-Hadith-Data/blob/1515f6cb/Sunan_Ibn-Maja/sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv"}],"diff":[{"op":"equal","quote_range":[0,6],"source_range":[0,6],"quote_chars":[0,27],"source_chars":[232,278],"quote_letters":[],"source_letters":[]},{"op":"delete","quote_range":[6,7],"source_range":[6,6],"quote_chars":[28,34],"source_chars":[278,278],"quote_letters":[],"source_letters":[]}],"diff_kinds":["word_added_in_quote"],"score":0.8571,"grade":null,"continues_to":null,"source_segments":[]}],"total_positions":1,"external_search_links":[{"name":"ابحث في الدرر السنية","url":"https://dorar.net/hadith/search?q=%D8%B7%D9%84%D8%A8%20%D8%A7%D9%84%D8%B9%D9%84%D9%85%20%D9%81%D8%B1%D9%8A%D8%B6%D8%A9%20%D8%B9%D9%84%D9%89%20%D9%83%D9%84%20%D9%85%D8%B3%D9%84%D9%85%20%D9%88%D9%85%D8%B3%D9%84%D9%85%D8%A9"},{"name":"ابحث في المكتبة الشاملة","url":"https://shamela.ws/search?q=%D8%B7%D9%84%D8%A8%20%D8%A7%D9%84%D8%B9%D9%84%D9%85%20%D9%81%D8%B1%D9%8A%D8%B6%D8%A9%20%D8%B9%D9%84%D9%89%20%D9%83%D9%84%20%D9%85%D8%B3%D9%84%D9%85%20%D9%88%D9%85%D8%B3%D9%84%D9%85%D8%A9"}],"segments":[{"type":"matn","start":8,"end":42}],"repeated_spans":[],"english_candidates":[],"picker":""}],"validator_rejections":0,"timings_ms":{"extract":1214,"retrieve":28,"match":2,"total":1249},"quotes_detected":1,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"6862dda6e83fca6d796cecdf527cc04c08e2ed5916617b87deab3332c05eaa6f"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/refusal.json b/integrations/telegram/tests/fixtures/refusal.json new file mode 100644 index 0000000..b7b3277 --- /dev/null +++ b/integrations/telegram/tests/fixtures/refusal.json @@ -0,0 +1 @@ +{"request_id":"2702195a-fabd-4bcc-85bf-29f51c308e85","disclaimer_key":"footer","transparency_key":"transparency_notice","corpus":{"tanzil":"1.1","ohd_commit":"1515f6cb","hadeethenc":"1.7.0"},"extraction_degraded":false,"extraction_provider":"openai-compatible:gpt-5.4-mini","flags":{"chain_message":false,"refusal":true,"pii_suspected":false},"quotes":[],"validator_rejections":0,"timings_ms":{"extract":1271,"retrieve":0,"match":0,"total":1272},"quotes_detected":0,"extraction_truncated":false,"ocr_text":null,"ocr_truncated":false,"determinism_hash":"daf42f624d638064f45744a667557ad62e6ecdf947635059a2b4cecc30dbbb5f"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/rules.json b/integrations/telegram/tests/fixtures/rules.json new file mode 100644 index 0000000..267ec6d --- /dev/null +++ b/integrations/telegram/tests/fixtures/rules.json @@ -0,0 +1 @@ +{"ui_lang":"ar","text":"قواعد التأريض لبصيرة (تُقرأ مرة في الجلسة؛ المرجع: SAFETY.md في المستودع)\n\nما هي بصيرة: مدقّق حتمي. يحدّد كل اقتباس قرآني/حديثي في النص ويقارنه حرفًا بحرف مع مصادر مرخّصة\n(مصحف تنزيل برواية حفص؛ الكتب التسعة من Open-Hadith-Data؛ موسوعة الأحاديث النبوية). نفس المدخل على نفس\nبناء المدوّنة = نفس المخرج (determinism_hash).\n\nالحالات الأربع، وهذه معانيها فقط:\n found وُجد: الكلمات المنقولة تطابق سجلًا في المصدر تطابقًا تامًّا. source_text هو ذلك السجل.\n partial_match تطابق جزئي (للحديث فقط): يتقاطع مع سجل مع فروق؛ قد يكون اختلاف رواية.\n needs_review يحتاج مراجعة: يختلف عن أقرب سجل (في القرآن أي فرق يصل هنا، ولا يكون جزئيًّا أبدًا)،\n أو تعذّر التحقق (غير عربي، صورة، مادة أجنبية داخل النص، اقتباس قصير).\n not_found لم يوجد في مصادرنا. هذا ليس حكمًا على النص. قل: «لم يوجد في مصادر بصيرة» وانصح بسؤال أهل العلم.\n\nالخطوط الحمراء عند عرض نتائج بصيرة:\n 1. لا تولّد ولا تصحّح ولا تكمّل نصًّا دينيًّا. اعرض source_text كما ورد فقط.\n 2. لا تُصدر درجة ولا حكمًا. إن ظهرت درجة في النتيجة فهي سطر موسوعة الأحاديث نفسه منقولًا منسوبًا؛ اعرضه بوصفه كذلك.\n 3. لا تخزّن نص المستخدم ولا تعيد نشره خارج الرد.\n 4. claimed_source_mismatch يعني أن المرجع الذي كتبه المستخدم لا يطابق موضع النص؛ الحالة لا تتغيّر. اذكر الأمرين.\n 5. ما قُرئ من صورة لا يُؤكَّد أبدًا؛ حالته دائمًا «يحتاج مراجعة».\n\nالاستخدام: verify_text لنص أو إجابة كاملة؛ verify_quote لاقتباس واحد مع مرجع مدّعى مثل «2:255» أو «البخاري 1»؛\nguard_answer قبل عرض إجابة الشات بوت؛ list_sources لمعرفة المصادر. بصيرة تكمّل خوادم الاسترجاع\n(مثل get_quran_verses): هي تجلب النص، وبصيرة تقول هل ما بين يديك هو ذلك النص.\n","states":["found","partial_match","needs_review","not_found"],"source":"SAFETY.md","safety_sha256":"c0bc02ed7b98e05a00b58f37ca1b8f3ca8070efa23c9dd3461331a496bac3466"} \ No newline at end of file diff --git a/integrations/telegram/tests/fixtures/sources.json b/integrations/telegram/tests/fixtures/sources.json new file mode 100644 index 0000000..8993f01 --- /dev/null +++ b/integrations/telegram/tests/fixtures/sources.json @@ -0,0 +1 @@ +[{"id":"tanzil_uthmani","name":"Tanzil Quran Text (Uthmani, Hafs) v1.1","type":"quran_text","url":"https://tanzil.net/pub/download/index.php?quranType=uthmani&outType=txt-2&agree=true","version":"1.1","license":"CC BY 3.0 — verbatim copies only; CHANGING IT IS NOT ALLOWED","license_url":"https://tanzil.net/docs/text_license","purpose":"display (verbatim) + index","in_repo":false,"records":6236,"downloaded_at":"2026-09-30","sha256":"bf4f57b968d03f4131c070b1e285da9be0e0a108a21c910e872801ca273312c8"},{"id":"tanzil_simple_clean","name":"Tanzil Quran Text (Simple Clean, Hafs) v1.1","type":"quran_text","url":"https://tanzil.net/pub/download/index.php?quranType=simple-clean&outType=txt-2&agree=true","version":"1.1","license":"CC BY 3.0 — verbatim copies only; CHANGING IT IS NOT ALLOWED","license_url":"https://tanzil.net/docs/text_license","purpose":"index only (second rasm)","in_repo":false,"records":6236,"downloaded_at":"2026-09-30","sha256":"228df2a717671aeb9d2ff573002bd28d6b3f973f4bc7153554e3a81663d67610"},{"id":"tanzil_simple","name":"Tanzil Quran Text (Simple, Hafs, fully vocalised) v1.1","type":"quran_text","url":"https://tanzil.net/pub/download/index.php?quranType=simple&outType=txt-2&agree=true","version":"1.1","license":"CC BY 3.0 — verbatim copies only; CHANGING IT IS NOT ALLOWED","license_url":"https://tanzil.net/docs/text_license","purpose":"harakat reference ONLY (letter-by-letter vowel comparison, B01/E-037); never displayed, never indexed","in_repo":false,"records":6236,"downloaded_at":"2026-10-03","sha256":"f3268cfe7a400add8a8024fe23368d66f58cc8baa51773fe94e323625c66344b"},{"id":"ohd","name":"Open-Hadith-Data (mhashim6) — nine books","type":"hadith_text","url":"https://github.com/mhashim6/Open-Hadith-Data","version":"1515f6cb","license":"ODbL 1.0 (database) + DbCL 1.0 (contents)","license_url":"https://github.com/mhashim6/Open-Hadith-Data/blob/master/LICENSE","purpose":"display (mushakkala, verbatim; U+200F removed at display) + index (plain)","in_repo":false,"records":62169,"downloaded_at":"2026-09-30","sha256":""},{"id":"hadeethenc_ar","name":"HadeethEnc — Arabic file v1.7.0 (2025-11-12)","type":"hadith_grades","url":"https://hadeethenc.com/browse/download/ar","version":"1.7.0","license":"Redistribution terms (7 conditions: no modification, cite source + version, keep version info …). Scope for the Arabic file UNVERIFIED — terms mention 'translations'.","license_url":"https://hadeethenc.com/ar/home","purpose":"grade + takhrij + link (attributed). MODE=link by default: full hadith_text is linked, not embedded.","in_repo":false,"records":3582,"downloaded_at":"2026-09-30","sha256":"d5d397cb9fc8ddd54c4c6ee88357c2217721db0bd0759c6ec26d8b3fc36f1ec1"}] \ No newline at end of file diff --git a/integrations/telegram/tests/test_client.py b/integrations/telegram/tests/test_client.py new file mode 100644 index 0000000..73c25a0 --- /dev/null +++ b/integrations/telegram/tests/test_client.py @@ -0,0 +1,112 @@ +"""client.py against httpx.MockTransport: success, every documented error code, timeouts, garbage.""" + +from __future__ import annotations + +import json + +import httpx +import pytest + +from bot.client import ApiError, ApiTimeoutError, BasiraClient, UnreachableError + +from conftest import api_transport, load + + +def client(routes: dict[str, object], log: list[httpx.Request] | None = None, **kw: object) -> BasiraClient: + return BasiraClient("https://api.test", transport=api_transport(routes, log=log), **kw) # type: ignore[arg-type] + + +async def test_check_200_sends_text_and_ui_lang() -> None: + log: list[httpx.Request] = [] + c = client({"/v1/check": "found_quran"}, log) + body = await c.check("قال تعالى: ﴿إن الله مع الصابرين﴾") + assert body["quotes"][0]["status"] == "found" + sent = json.loads(log[0].content) + assert sent == {"text": "قال تعالى: ﴿إن الله مع الصابرين﴾", "ui_lang": "ar"} + assert log[0].headers["user-agent"].startswith("basira-telegram-bot/") + assert "x-eval-key" not in log[0].headers + await c.aclose() + + +async def test_eval_key_header_only_when_set() -> None: + log: list[httpx.Request] = [] + c = client({"/v1/check": "no_quotes"}, log, eval_key="k-123") + await c.check("x") + assert log[0].headers["x-eval-key"] == "k-123" + await c.aclose() + + +@pytest.mark.parametrize( + ("status", "fixture", "code"), + [(413, "err_413", "text_too_long"), (422, "err_422", "invalid_input")], +) +async def test_error_envelope_is_surfaced(status: int, fixture: str, code: str) -> None: + c = client({"/v1/check": (status, load(fixture))}) + with pytest.raises(ApiError) as e: + await c.check("x") + assert (e.value.status, e.value.code) == (status, code) + assert e.value.message_ar == load(fixture)["error"]["message_ar"] + + +@pytest.mark.parametrize(("status", "code"), [(429, "rate_limited"), (503, "degraded")]) +async def test_429_and_503(status: int, code: str) -> None: + body = {"error": {"code": code, "message_ar": f"رسالة {code}", "message_en": "m"}} + c = client({"/v1/check": (status, body)}) + with pytest.raises(ApiError) as e: + await c.check("x") + assert e.value.status == status and e.value.message_ar == f"رسالة {code}" + + +async def test_timeout_maps_to_api_timeout() -> None: + def slow(_: httpx.Request) -> httpx.Response: + raise httpx.ReadTimeout("slow") + + c = client({"/v1/check": slow}) + with pytest.raises(ApiTimeoutError): + await c.check("x") + + +async def test_connection_error_maps_to_unreachable() -> None: + def down(_: httpx.Request) -> httpx.Response: + raise httpx.ConnectError("refused") + + c = client({"/v1/check": down}) + with pytest.raises(UnreachableError): + await c.check("x") + + +@pytest.mark.parametrize( + "response", + [httpx.Response(502, text="Bad Gateway"), httpx.Response(500, json={"detail": "x"})], +) +async def test_non_envelope_errors_are_unreachable(response: httpx.Response) -> None: + c = client({"/v1/check": lambda _: response}) + with pytest.raises(UnreachableError): + await c.check("x") + + +async def test_image_is_multipart_field_image() -> None: + log: list[httpx.Request] = [] + c = client({"/v1/check/image": "image_hadith"}, log) + png = b"\x89PNG\r\n\x1a\n" + b"0" * 64 + body = await c.check_image(png, "image/png") + assert body["quotes"][0]["review_reason"] == "image_unconfirmed" + req = log[0] + assert req.headers["content-type"].startswith("multipart/form-data") + assert b'name="image"; filename="image.png"' in req.content and png in req.content + assert b'name="ui_lang"' in req.content + + +async def test_sources_list_and_messages_cache() -> None: + log: list[httpx.Request] = [] + c = client({"/v1/sources": "sources"}, log) + assert {s["id"] for s in await c.sources()} >= {"tanzil_uthmani", "ohd", "hadeethenc_ar"} + a = await c.messages("ar") + b = await c.messages("ar") + assert a is b and sum(r.url.path == "/v1/messages/ar" for r in log) == 1 + + +async def test_no_redirects_followed() -> None: + c = client({"/v1/check": lambda _: httpx.Response(302, headers={"location": "https://evil.test/"})}) + with pytest.raises(UnreachableError): + await c.check("x") diff --git a/integrations/telegram/tests/test_handlers.py b/integrations/telegram/tests/test_handlers.py new file mode 100644 index 0000000..12b9117 --- /dev/null +++ b/integrations/telegram/tests/test_handlers.py @@ -0,0 +1,310 @@ +"""End-to-end through the real python-telegram-bot Application: filters → handlers → Basira client → render. + +Telegram is faked at the HTTP layer (fake_telegram.FakeTelegram) and the Basira API with httpx.MockTransport, +so routing, entity parsing, edits and splitting are exercised exactly as in production. +""" + +from __future__ import annotations + +import logging +from collections.abc import AsyncIterator, Callable +from dataclasses import dataclass +from typing import Any + +import httpx +import pytest +from telegram.ext import Application, ApplicationBuilder + +from bot import render +from bot import strings_ar as txt +from bot.client import BasiraClient +from bot.config import MAX_IMAGE_BYTES, Settings +from bot.handlers import BasiraBot, RateLimiter + +from conftest import api_transport, load, messages_map +from fake_telegram import BOT_USERNAME, TOKEN, FakeTelegram, message, update + +M = messages_map() +QURAN = "قال تعالى: ﴿إن الله مع الصابرين﴾" + + +@dataclass +class Harness: + app: Application[Any, Any, Any, Any, Any, Any] + tg: FakeTelegram + api_log: list[httpx.Request] + + async def send(self, msg: dict[str, Any], *, edited: bool = False) -> list[str]: + before = len(self.tg.texts()) + await self.app.process_update(update(msg, self.app.bot, edited=edited)) + return self.tg.texts()[before:] + + def api_paths(self) -> list[str]: + return [r.url.path for r in self.api_log if r.url.path != "/v1/messages/ar"] + + +Factory = Callable[..., Any] + + +@pytest.fixture +async def make() -> AsyncIterator[Factory]: + apps: list[Application[Any, Any, Any, Any, Any, Any]] = [] + + async def factory( + routes: dict[str, Any] | None = None, *, rate: int = 10, max_text: int = 5000 + ) -> Harness: + tg = FakeTelegram() + log: list[httpx.Request] = [] + settings = Settings(token=TOKEN, user_rate_per_min=rate, max_text=max_text) + client = BasiraClient("https://api.test", transport=api_transport(routes or {}, log=log)) + app = ApplicationBuilder().token(TOKEN).request(tg).get_updates_request(FakeTelegram()).build() + BasiraBot(settings, client).register(app) + await app.initialize() + apps.append(app) + return Harness(app, tg, log) + + yield factory + for a in apps: + await a.shutdown() + + +# ------------------------------------------------------------------ private chat +async def test_start_has_welcome_transparency_privacy_and_site_button(make: Factory) -> None: + h = await make() + [out] = await h.send(message("/start")) + assert "بصيرة" in out and "Forward" in out + assert render.esc(M["fixed"]["transparency_notice"]) in out + assert render.esc(M["fixed"]["privacy_notice"]) in out + markup = h.tg.sent("sendMessage")[0].params["reply_markup"] + assert markup["inline_keyboard"][0][0]["url"] == "https://basirapp.site/check" + + +async def test_text_found_flow_placeholder_then_edit(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + [out] = await h.send(message(QURAN)) + assert h.tg.sent("sendMessage")[0].params["text"] == txt.CHECKING + assert h.tg.sent("editMessageText"), "placeholder must be edited with the result" + assert "✅" in out and M["labels"]["found"] in out + assert load("found_quran")["quotes"][0]["matches"][0]["source_text"] in out + assert h.tg.sent("sendMessage")[0].params["reply_parameters"]["message_id"] > 0 # replies to the user + + +async def test_forwarded_text_is_checked(make: Factory) -> None: + h = await make({"/v1/check": "needs_review_quran"}) + [out] = await h.send(message("قال تعالى: ﴿إن الله علي كل شيء قدير﴾", forward=True)) + assert "علي" in out and "⚠️" in out + + +async def test_refusal_shows_only_the_refusal_notice(make: Factory) -> None: + h = await make({"/v1/check": "refusal"}) + [out] = await h.send(message("ما حكم صلاة الجمعة؟")) + assert out == f"ℹ️ {render.esc(M['notice']['refusal'])}" + + +async def test_no_quotes(make: Factory) -> None: + h = await make({"/v1/check": "no_quotes"}) + [out] = await h.send(message("اليوم طقس جميل")) + assert render.esc(M["notice"]["no_quotes"]) in out + + +async def test_too_long_is_refused_without_calling_the_api(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + [out] = await h.send(message("ا" * 5001)) + assert out == render.esc(M["errors"]["text_too_long"].replace("{max}", "5000")) + assert h.api_paths() == [] + + +@pytest.mark.parametrize( + ("status", "code", "extra"), + [ + (413, "text_too_long", ""), + (422, "invalid_input", ""), + (429, "rate_limited", txt.TRY_IN_A_MINUTE), + (503, "degraded", ""), + ], +) +async def test_api_errors_use_message_ar_verbatim(make: Factory, status: int, code: str, extra: str) -> None: + body = {"error": {"code": code, "message_ar": M["errors"][code], "message_en": "x"}} + h = await make({"/v1/check": (status, body)}) + [out] = await h.send(message(QURAN)) + assert out.startswith(render.esc(M["errors"][code])) + assert (extra in out) if extra else out == render.esc(M["errors"][code]) + + +async def test_api_down_and_timeout_are_reported_honestly(make: Factory) -> None: + def down(_: httpx.Request) -> httpx.Response: + raise httpx.ConnectError("x") + + def slow(_: httpx.Request) -> httpx.Response: + raise httpx.ReadTimeout("x") + + h = await make({"/v1/check": down}) + assert (await h.send(message(QURAN))) == [render.esc(txt.UNREACHABLE)] + h = await make({"/v1/check": slow}) + assert (await h.send(message(QURAN))) == [render.esc(txt.TIMEOUT)] + + +async def test_whitespace_only_message_is_not_sent(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + [out] = await h.send(message(" \n ")) + assert out == render.esc(txt.USAGE_PRIVATE) and h.api_paths() == [] + + +async def test_photo_goes_to_image_endpoint_ocr_shown_never_found(make: Factory) -> None: + h = await make({"/v1/check/image": "image_hadith"}) + [out] = await h.send(message(photo=True)) + assert h.tg.sent("sendMessage")[0].params["text"] == txt.CHECKING_IMAGE + assert h.api_paths() == ["/v1/check/image"] + req = next(r for r in h.api_log if r.url.path == "/v1/check/image") + assert h.tg.file_bytes in req.content and b'filename="image.jpg"' in req.content + assert txt.OCR_HEADING in out and "⚠️" in out and "✅" not in out + + +async def test_image_document_png_and_unsupported_document(make: Factory) -> None: + h = await make({"/v1/check/image": "image_hadith"}) + await h.send(message(document_mime="image/png")) + req = next(r for r in h.api_log if r.url.path == "/v1/check/image") + assert b"Content-Type: image/png" in req.content + [out] = await h.send(message(document_mime="application/pdf")) + assert out == render.esc(txt.UNSUPPORTED) + + +async def test_oversized_image_is_refused_before_download(make: Factory) -> None: + h = await make({"/v1/check/image": "image_hadith"}) + [out] = await h.send(message(photo=True, file_size=MAX_IMAGE_BYTES + 1)) + assert out == render.esc(M["errors"]["image_too_large"].replace("{max_mb}", "6")) + assert not h.tg.sent("getFile") and h.api_paths() == [] + + +async def test_sticker_or_voice_gets_unsupported(make: Factory) -> None: + h = await make() + msg = message() + msg["voice"] = {"file_id": "v", "file_unique_id": "v", "duration": 1} + assert (await h.send(msg)) == [render.esc(txt.UNSUPPORTED)] + + +async def test_limits_and_sources(make: Factory) -> None: + h = await make({"/v1/rules": "rules", "/v1/sources": "sources"}) + [lim] = await h.send(message("/limits")) + assert txt.LIMITS_HEADING in lim and "expandable" in lim + assert render.u16(lim) < 4096 + [src] = await h.send(message("/sources")) + for s in load("sources"): + assert render.esc(s["name"]) in src and render.esc(s["license"]) in src + assert "Tanzil" in src and "Open-Hadith-Data" in src and "HadeethEnc" in src and "62,169" in src + + +async def test_long_result_is_split_and_button_only_on_last(make: Factory) -> None: + resp = load("partial_hadith") + resp["quotes"] = resp["quotes"] * 12 + h = await make({"/v1/check": (200, resp)}) + outs = await h.send(message("طلب العلم فريضة")) + assert len(outs) > 1 and all(render.u16(o) <= 4096 for o in outs) + with_button = [c for c in h.tg.calls if c.params.get("reply_markup")] + assert len(with_button) == 1 and with_button[0] is h.tg.calls[-1] + + +async def test_html_rejected_by_telegram_falls_back_to_plain(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + h.tg.fail_html_once = True # Telegram refuses the first HTML message (the placeholder) + [out] = await h.send(message(QURAN)) + rejected = h.tg.sent("sendMessage:rejected") + retried = h.tg.sent("sendMessage")[0] + assert len(rejected) == 1 and rejected[0].params["text"] == txt.CHECKING + assert retried.params["text"] == txt.CHECKING and "parse_mode" not in retried.params # same words, plain + assert "✅" in out # the result still arrives + + +async def test_rate_limit_per_user(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}, rate=2) + await h.send(message(QURAN)) + await h.send(message(QURAN)) + [out] = await h.send(message(QURAN)) + assert txt.TRY_IN_A_MINUTE in out + assert h.api_paths().count("/v1/check") == 2 + await h.send(message(QURAN, uid=99)) # another user is not affected + assert h.api_paths().count("/v1/check") == 3 + + +def test_rate_limiter_window() -> None: + now = [0.0] + rl = RateLimiter(2, clock=lambda: now[0]) + assert rl.allow(1) and rl.allow(1) and not rl.allow(1) + now[0] = 60.0 + assert rl.allow(1) + + +# ------------------------------------------------------------------ groups +async def test_group_plain_text_is_ignored(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + assert (await h.send(message(QURAN, kind="supergroup"))) == [] + assert h.api_paths() == [] + + +async def test_group_check_command_with_argument_and_as_reply(make: Factory) -> None: + h = await make({"/v1/check": "found_quran", "/v1/check/image": "image_hadith"}) + [a] = await h.send(message(f"/check@{BOT_USERNAME} {QURAN}", kind="supergroup")) + assert "✅" in a + original = message(QURAN, kind="supergroup", uid=7) + [b] = await h.send(message("/check", kind="supergroup", reply_to=original)) + assert "✅" in b + photo = message(photo=True, kind="supergroup", uid=7) + [c] = await h.send(message("/check", kind="supergroup", reply_to=photo)) + assert txt.OCR_HEADING in c + [d] = await h.send(message("/check", kind="supergroup")) + assert d == render.esc(txt.USAGE_GROUP) + + +async def test_group_mention_checks_text_and_strips_the_mention(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + [out] = await h.send(message(f"@{BOT_USERNAME} {QURAN}", kind="group")) + assert "✅" in out + import json + + sent = json.loads(next(r for r in h.api_log if r.url.path == "/v1/check").content) + assert BOT_USERNAME not in sent["text"] and QURAN in sent["text"] + + +async def test_group_photo_only_with_mention_in_caption(make: Factory) -> None: + h = await make({"/v1/check/image": "image_hadith"}) + assert (await h.send(message(photo=True, kind="supergroup"))) == [] + [out] = await h.send(message(photo=True, kind="supergroup", caption=f"@{BOT_USERNAME}")) + assert txt.OCR_HEADING in out + + +# ------------------------------------------------------------------ robustness +async def test_edits_and_other_bots_are_ignored(make: Factory) -> None: + h = await make({"/v1/check": "found_quran"}) + assert (await h.send(message(QURAN), edited=True)) == [] + assert (await h.send(message(QURAN, from_bot=True))) == [] + assert h.api_paths() == [] + + +async def test_logs_never_contain_user_text_or_ids(make: Factory, caplog: pytest.LogCaptureFixture) -> None: + caplog.set_level(logging.DEBUG, logger="basira.bot") + h = await make({"/v1/check": "found_quran", "/v1/check/image": "image_hadith"}) + secret = "قال تعالى: ﴿إن الله مع الصابرين﴾ 0555123456" + await h.send(message(secret, uid=31337)) + await h.send(message(photo=True, uid=31337)) + logs = "\n".join(r.getMessage() for r in caplog.records if r.name.startswith("basira")) + assert "الصابرين" not in logs and "0555123456" not in logs and "31337" not in logs + assert "quotes={'found': 1}" in logs and "input=image" in logs + + +def test_settings_validation_and_repr_hides_secrets() -> None: + from bot.config import ConfigError + + with pytest.raises(ConfigError): + Settings.from_env({}) + with pytest.raises(ConfigError): + Settings.from_env({"TELEGRAM_BOT_TOKEN": TOKEN, "BASIRA_API_URL": "ftp://x"}) + with pytest.raises(ConfigError): + Settings.from_env( + { + "TELEGRAM_BOT_TOKEN": TOKEN, + "TELEGRAM_WEBHOOK_URL": "https://h", + "TELEGRAM_WEBHOOK_SECRET": "short", + } + ) + s = Settings.from_env({"TELEGRAM_BOT_TOKEN": TOKEN, "BASIRA_EVAL_KEY": "k", "MAX_TEXT": "100"}) + assert s.max_text == 100 and TOKEN not in repr(s) and "k" not in repr(s).replace("webhook", "") diff --git a/integrations/telegram/tests/test_render.py b/integrations/telegram/tests/test_render.py new file mode 100644 index 0000000..13ce788 --- /dev/null +++ b/integrations/telegram/tests/test_render.py @@ -0,0 +1,220 @@ +"""render.py: every sentence comes from messages/*.json, source text is verbatim, HTML is always valid.""" + +from __future__ import annotations + +import json +import re +from collections.abc import Mapping +from html import unescape +from html.parser import HTMLParser +from typing import Any + +import pytest +from app.messages import scan_forbidden + +from bot import render +from bot import strings_ar as txt + +from conftest import ROOT, load + +FIXTURES = [ + "found_quran", + "needs_review_quran", + "not_found_hadith", + "partial_hadith", + "refusal", + "no_quotes", + "multi", +] +ALLOWED_TAGS = {"b", "i", "a", "code", "blockquote"} + + +class TagChecker(HTMLParser): + """Telegram HTML subset: known tags only, balanced, ``href`` on only.""" + + def __init__(self) -> None: + super().__init__(convert_charrefs=True) + self.stack: list[str] = [] + self.errors: list[str] = [] + + def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None: + if tag not in ALLOWED_TAGS: + self.errors.append(f"tag {tag}") + for k, _ in attrs: + if not ((tag == "a" and k == "href") or (tag == "blockquote" and k == "expandable")): + self.errors.append(f"attr {tag}.{k}") + self.stack.append(tag) + + def handle_endtag(self, tag: str) -> None: + if not self.stack or self.stack.pop() != tag: + self.errors.append(f"unbalanced {tag}") + + +def valid_html(s: str) -> bool: + p = TagChecker() + p.feed(s) + p.close() + return not p.errors and not p.stack + + +def visible(s: str) -> str: + return unescape(re.sub(r"<[^>]+>", "", s)) + + +def authored_text(pieces: list[str], resp: Mapping[str, Any]) -> str: + """Visible text minus every verbatim corpus/API field — what remains is what the bot (or messages) wrote.""" + out = visible("\n".join(pieces)) + fields: list[str] = [str(resp.get("ocr_text") or "")] + for q in resp.get("quotes") or []: + fields.append(str(q.get("quoted_text", ""))) + for mt in q.get("matches") or []: + fields += [str(mt.get("source_text", "")), str(mt.get("ref_label_ar", ""))] + fields += [str(s.get("source_text", "")) for s in mt.get("source_segments") or []] + fields += [str(s.get("ref_label_ar", "")) for s in mt.get("source_segments") or []] + fields += [str(link.get("name", "")) for link in mt.get("links") or []] + for f in sorted(fields, key=len, reverse=True): + if f: + out = out.replace(f, " ") + return out + + +@pytest.mark.parametrize("name", FIXTURES) +def test_every_fixture_renders_valid_bounded_html(name: str, m: Mapping[str, Mapping[str, str]]) -> None: + pieces = render.render_check(load(name), m) + assert pieces, name + for p in pieces: + assert render.u16(p) <= render.TELEGRAM_LIMIT + assert valid_html(p), p[:300] + + +@pytest.mark.parametrize("name", FIXTURES) +def test_no_forbidden_vocabulary_in_anything_authored(name: str, m: Mapping[str, Mapping[str, str]]) -> None: + resp = load(name) + assert scan_forbidden(authored_text(render.render_check(resp, m), resp)) == [] + + +def test_web_fixture_from_frontend_renders(m: Mapping[str, Mapping[str, str]]) -> None: + """The frontend's own response fixture (refusal flag set) → only the refusal notice, verbatim.""" + resp = json.loads((ROOT / "frontend/src/__fixtures__/check_response.json").read_text(encoding="utf-8")) + assert render.render_check(resp, m) == [f"ℹ️ {render.esc(m['notice']['refusal'])}"] + resp["flags"]["refusal"] = False + pieces = render.render_check(resp, m) + assert all(valid_html(p) for p in pieces) + assert scan_forbidden(authored_text(pieces, resp)) == [] + + +def test_every_status_has_an_icon_and_a_label(m: Mapping[str, Mapping[str, str]]) -> None: + for status in ("found", "partial_match", "needs_review", "not_found"): + assert status in txt.STATUS_ICON + assert m["labels"][status] + + +def test_source_text_is_verbatim(m: Mapping[str, Mapping[str, str]]) -> None: + for name in ("found_quran", "needs_review_quran", "multi"): + resp = load(name) + shown = visible("\n".join(render.render_check(resp, m))) + for q in resp["quotes"]: + top = q["matches"][0] + segs = top["source_segments"] + for full in [s["source_text"] for s in segs] if len(segs) > 1 else [top["source_text"]]: + t, rng = full, top["source_text_range"] + if len(full) > render.SOURCE_WINDOW_OVER and rng: # long record: the exact window, verbatim + a = max(0, rng[0] - render.SOURCE_WINDOW_PAD) + t = full[a : min(len(full), rng[1] + render.SOURCE_WINDOW_PAD)] + assert t in shown, name + assert top["ref_label_ar"] in shown + + +def test_long_hadith_shows_the_matched_window_verbatim(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("partial_hadith") + top = resp["quotes"][0]["matches"][0] + shown = visible(render.render_check(resp, m)[0]) + a, b = top["source_text_range"] + assert top["source_text"][a:b] in shown + + +def test_diff_words_are_bold_from_the_api_ranges(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("needs_review_quran") + out = render.render_check(resp, m)[0] + q = resp["quotes"][0] + op = next(o for o in q["matches"][0]["diff"] if o["op"] != "equal") + qa, qb = op["quote_chars"] + assert f"{q['quoted_text'][qa:qb]}" in out # «علي» in the user's text + sa, sb = op["source_chars"] + src = q["matches"][0]["source_text"] + bolds = re.findall(r"([^<]*)", out) + assert any(src[sa:sb] in b for b in bolds) # «عَلَى» (+ its dagger alif) in the source + assert m["notice"]["many_positions"].split("{")[0] in visible(out) + + +def test_bold_never_splits_a_letter_from_its_marks() -> None: + text = "إِنَّ ٱللَّهَ عَلَىٰ كُلِّ" + a = text.index("عَلَى") + rs = render.runs(text, [(a, a + 5)]) # API range stops before the dagger alif U+0670 + bold = "".join(t for t, b in rs if b) + assert bold == "عَلَىٰ" + assert "".join(t for t, _ in rs) == text + + +def test_not_found_has_search_links_and_no_candidates(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("not_found_hadith") + out = render.render_check(resp, m)[0] + for link in resp["quotes"][0]["external_search_links"]: + assert link["name"] in out and render.attr(link["url"]) in out + assert txt.SOURCE_TEXT not in out + assert m["status"]["not_found"] in visible(out) + + +def test_no_quotes_message_and_transparency(m: Mapping[str, Mapping[str, str]]) -> None: + out = visible(render.render_check(load("no_quotes"), m)[0]) + assert m["notice"]["no_quotes"] in out + assert m["fixed"]["transparency_notice"] in out + + +def test_image_shows_ocr_first_and_never_found(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("image_hadith") + out = render.render_check(resp, m, image=True)[0] + assert out.index(txt.OCR_HEADING) < out.index(m["labels"]["needs_review"]) + assert all(q["status"] != "found" for q in resp["quotes"]) + assert m["labels"]["found"] + "" not in out + + +def test_claimed_source_mismatch_names_both_books(m: Mapping[str, Mapping[str, str]]) -> None: + out = visible("\n".join(render.render_check(load("multi"), m))) + assert "وُجد النص في صحيح البخاري، وليس في صحيح مسلم المذكور في نصك." in out + + +def test_user_text_is_escaped(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("not_found_hadith") + resp["quotes"][0]["quoted_text"] = 'x & ' + out = render.render_check(resp, m)[0] + assert "<a href" in out and "&" in out and valid_html(out) + + +def test_non_https_links_are_dropped(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("not_found_hadith") + resp["quotes"][0]["external_search_links"] = [{"name": "x", "url": "javascript:alert(1)"}] + assert "javascript:" not in render.render_check(resp, m)[0] + + +def test_split_respects_limit_and_keeps_every_character(m: Mapping[str, Mapping[str, str]]) -> None: + resp = load("partial_hadith") + q = resp["quotes"][0] + resp["quotes"] = [json.loads(json.dumps(q)) for _ in range(12)] # 12 long cards + pieces = render.render_check(resp, m) + assert len(pieces) > 1 + assert all(render.u16(p) <= render.BUDGET and valid_html(p) for p in pieces) + assert visible("\n".join(pieces)).count(q["quoted_text"].split()[0]) >= 12 + + +def test_one_giant_block_is_split_on_balanced_tags() -> None: + word = "بِسْمِ ٱللَّهِ " + block = render.Block(rs=[(word * 900, False), ("x" * 50, True)], wrap="blockquote") + pieces = block.split(1000) + assert len(pieces) > 5 + assert all(render.u16(p) <= 1000 and valid_html(p) for p in pieces) + assert "".join(visible(p) for p in pieces) == word * 900 + "x" * 50 + + +def test_fill_leaves_unknown_placeholders() -> None: + assert render.fill("{a} و {b}", {"a": 1}) == "1 و {b}" diff --git a/integrations/telegram/tests/test_strings.py b/integrations/telegram/tests/test_strings.py new file mode 100644 index 0000000..b354274 --- /dev/null +++ b/integrations/telegram/tests/test_strings.py @@ -0,0 +1,31 @@ +"""Every string the bot authors passes the backend's forbidden-lexicon scanner (V4, SAFETY §1.3).""" + +from __future__ import annotations + +from app.messages import scan_forbidden + +from bot import strings_ar as txt + + +def test_strings_module_is_non_empty_and_clean() -> None: + items = txt.all_strings() + assert len(items) >= 30 + hits = {name: scan_forbidden(value) for name, value in items if scan_forbidden(value)} + assert hits == {} + + +def test_scanner_is_live() -> None: + """Guard against a vacuous pass: the scanner must catch a judgement word.""" + assert scan_forbidden("هذا حديث ضعيف") + assert scan_forbidden("fabricated") + assert scan_forbidden("صحيح البخاري") == [] # book title, whitelisted (E-009) + + +def test_book_names_match_the_manifest() -> None: + import json + + from conftest import ROOT + + manifest = json.loads((ROOT / "corpus/manifest.json").read_text(encoding="utf-8")) + books = {b["key"]: b["name_ar"] for b in next(s for s in manifest["sources"] if s.get("books"))["books"]} + assert books == txt.BOOK_NAMES From a161e463a762e1c719a90a6432fab7cf9e24b340 Mon Sep 17 00:00:00 2001 From: MoTechSys Date: Tue, 6 Oct 2026 00:50:19 +0000 Subject: [PATCH 2/2] feat(bot): Telegram Rich Messages layout (Bot API 10.3) Each result is one RTL rich message: heading + status strip, the user's quote as a cited blockquote, source_text as a verbatim pull-quote credited with ref_label_ar (one per ayah), from the API diff, a compact metadata table, collapsible notices / other positions / full record, url and copy buttons. Classic HTML stays as the automatic fallback (BOT_RICH=0 forces it). Measured: 105 tests (Rich-HTML validation, lexicon, limits, fallback); live 16/16 scenarios on the rich path, 0 rich calls rejected (E-060). Evidence rendered from the blocks Telegram stored: docs/design/evidence/telegram/. --- CHANGELOG.md | 2 +- docs/DECISIONS.md | 1 + docs/design/evidence/telegram/01_start.png | Bin 0 -> 50556 bytes .../evidence/telegram/02_found_quran.png | Bin 0 -> 63115 bytes .../telegram/03_needs_review_quran.png | Bin 0 -> 83595 bytes .../design/evidence/telegram/04_not_found.png | Bin 0 -> 44110 bytes .../evidence/telegram/05_partial_hadith.png | Bin 0 -> 71171 bytes .../evidence/telegram/07_image_hadith.png | Bin 0 -> 103790 bytes .../evidence/telegram/08_channel_forward.png | Bin 0 -> 117069 bytes docs/design/evidence/telegram/09_sources.png | Bin 0 -> 32433 bytes docs/design/evidence/telegram/README.md | 17 + integrations/telegram/.env.example | 1 + integrations/telegram/README.md | 38 ++- integrations/telegram/bot/config.py | 2 + integrations/telegram/bot/handlers.py | 101 +++++- integrations/telegram/bot/rich.py | 317 ++++++++++++++++++ integrations/telegram/bot/strings_ar.py | 78 ++++- integrations/telegram/pyproject.toml | 2 +- integrations/telegram/scripts/live_e2e.py | 29 +- .../telegram/scripts/preview_blocks.py | 40 +++ integrations/telegram/tests/fake_telegram.py | 140 +++++++- integrations/telegram/tests/test_handlers.py | 69 ++-- integrations/telegram/tests/test_rich.py | 199 +++++++++++ 23 files changed, 982 insertions(+), 54 deletions(-) create mode 100644 docs/design/evidence/telegram/01_start.png create mode 100644 docs/design/evidence/telegram/02_found_quran.png create mode 100644 docs/design/evidence/telegram/03_needs_review_quran.png create mode 100644 docs/design/evidence/telegram/04_not_found.png create mode 100644 docs/design/evidence/telegram/05_partial_hadith.png create mode 100644 docs/design/evidence/telegram/07_image_hadith.png create mode 100644 docs/design/evidence/telegram/08_channel_forward.png create mode 100644 docs/design/evidence/telegram/09_sources.png create mode 100644 docs/design/evidence/telegram/README.md create mode 100644 integrations/telegram/bot/rich.py create mode 100644 integrations/telegram/scripts/preview_blocks.py create mode 100644 integrations/telegram/tests/test_rich.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 31bcf72..a208f26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/); versions are git - **E-057 whole-ayah anchor**: a complete ayah typed with no marker is detected whatever its words' frequency. - **E-058 phrase-rarity anchor**: short famous texts typed with no marker («إنما الأعمال بالنيات», «لا ضرر ولا ضرار», «إن الله مع الصابرين») are detected; runs extend backwards over leading particles; isnad fragments never anchor. Composer hint: no marker, no hamza needed. 15 tests + 7 smoke cases «as people write». - Evaluation: category B expectations are now resolved *by construction* from the corpus (`eval/materialize.rasm_expectation`). -- Telegram bot `integrations/telegram` (@BasiraCheckBot): thin client over `/v1/check` and `/v1/check/image`; no model, no storage, texts from `messages/*.json`; 73 tests; optional compose profile `bot`; CI job `bot` (E-059). +- Telegram bot `integrations/telegram` (@BasiraCheckBot): thin client over `/v1/check` and `/v1/check/image`; no model, no storage, texts from `messages/*.json`; optional compose profile `bot`; CI job `bot` (E-059). Replies are Telegram Rich Messages — headings, verbatim pull-quotes, marked differences, tables, collapsible sections, buttons — with a classic-HTML fallback (E-060). ### Verified pytest 344 · ruff + mypy strict · eval-full **150/150 · unsafe 0 · 0/500** (fixture and full index) · IslamicEval 1B unchanged **78.54 %, false confirmations 2**. diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md index a2b404d..7e909d9 100644 --- a/docs/DECISIONS.md +++ b/docs/DECISIONS.md @@ -90,3 +90,4 @@ | E-057 | 2026-10-05 | **CI activated; non-product material removed from the tree.** The workflow lives in `.github/workflows/ci.yml` and builds the sha256-pinned corpora → index → fixture before tests, so corpus-backed tests run instead of skipping. | Measured on a clean clone: pytest 304 passed, eval 150/150, unsafe 0. | `.github/workflows/ci.yml` | | E-058 | 2026-10-05 | **Release 0.3.1 hygiene.** Runtime deps and Python 3.12 declared; `run_1b.py` aligned with `Pipeline.check()` and IslamicEval re-measured (1B 78.54 %, false confirmations 2); docs point only at public documents; BUILD_SHA passed into the image. | A clean install failed at collection; `make islamiceval` crashed with ValueError. | `backend/pyproject.toml`, `eval/islamiceval/`, `Dockerfile`, `docs/` | | E-059 | 2026-10-06 | **Telegram bot as a thin API client** (`integrations/telegram`). Long polling by default: no public port, no TLS endpoint, no webhook secret to manage, works behind NAT; webhook is opt-in. No storage: text and image bytes exist only for one request (ADR-004); logs carry counts and latency only. Every sentence about a quotation is a `messages/*.json` template; bold ranges come from the API `diff`. | 73 tests (render/client/handlers through the real PTB `Application`); live 11/11 private scenarios + channel forward + group `/check`. Privacy mode drops plain @mentions (0 updates measured) → groups use `/check`. | `integrations/telegram/**`, `Makefile`, `.github/workflows/ci.yml`, `docker-compose.yml` | +| E-060 | 2026-10-06 | **Bot replies as Telegram Rich Messages (Bot API 10.3).** One RTL rich message per result: heading + status strip, the user's quote as a cited blockquote, `source_text` as a pull-quote credited with `ref_label_ar` (one per ayah), `` from the API `diff`, a compact metadata table, collapsible notices/positions/full record, in-message url/copy buttons. Classic HTML (4 096-char split) is the automatic fallback on any rejected rich call. | Live: 16/16 scenarios on the rich path, 0 rejected; 105 tests incl. Rich-HTML validation and fallback. Previous classic layout read as an undifferentiated wall of text (owner feedback). | `integrations/telegram/bot/rich.py`, `handlers.py`, `docs/design/evidence/telegram/` | diff --git a/docs/design/evidence/telegram/01_start.png b/docs/design/evidence/telegram/01_start.png new file mode 100644 index 0000000000000000000000000000000000000000..72c1c87ff804d0a7c7204cb10e2c499039e5714a GIT binary patch literal 50556 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�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

)%TC;plKwWZdpYOx@bLvcU|W`bxr0f3w%uMFpNy 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 DA%SCS literal 0 HcmV?d00001 diff --git a/docs/design/evidence/telegram/02_found_quran.png b/docs/design/evidence/telegram/02_found_quran.png new file mode 100644 index 0000000000000000000000000000000000000000..b876fe79d7d2b0e0bc2093fed28ba8578e5ee036 GIT binary patch literal 63115 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

dG+!c)109$K6)4#ql5PvC}2+! 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 BZ_NMz literal 0 HcmV?d00001 diff --git a/docs/design/evidence/telegram/03_needs_review_quran.png b/docs/design/evidence/telegram/03_needs_review_quran.png new file mode 100644 index 0000000000000000000000000000000000000000..0e65c59fa0a031a038af94e88749ddaf01d6c10f GIT binary patch literal 83595 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 SoVtF6SQKPbzEnvW1^+LdQ)NE@ literal 0 HcmV?d00001 diff --git a/docs/design/evidence/telegram/04_not_found.png b/docs/design/evidence/telegram/04_not_found.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2b8ecd32c2cf3e8c94e0705ae48b02e9427901 GIT binary patch literal 44110 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�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 literal 0 HcmV?d00001 diff --git a/docs/design/evidence/telegram/05_partial_hadith.png b/docs/design/evidence/telegram/05_partial_hadith.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa6900067ef6f37091e2c81905fa3733eea9868 GIT binary patch literal 71171 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 hRR5nd=5I?}k;Zkv`p<&a!SCB9XZ9|#N~hdcYn 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
WlM+QGQXi3YHe-=VAV z;1vDm$w!H}>tx~-i3+gL{{`;Z4qCj#|KQ6I{72Q9Zv5}@!ed|YpRLsPUi&XNP}#Fh z{+}~&o%jCFC-n!xPjY3e6P1d)MwwF?XDbGt(-g^zJZp@2(MTWUzhc@{Su9cwO zL6o(w5s#8ImE7o`!*?gaRMzT$ANj$UCa1;T-df&SQXlFZ{I3@{{CV|lA5ULks&F6y zJlqVei7_8v5;Nqr9cPicM3Yk^ua4Fm#f|zFZa-M9|8TA(g7y2i;j?x>Au<+Khxl$& zyQK!V)6CzRxRSu1ftQ>aTbFWQ{f0)7$5XYhG4HsfXs!Z{?4%O0+70=N;MQIaBW>5P zQSQydC(^7FggtWYM)B>YcTUoa3qSNHmr#s!Dg|=YT~Z|>f!kCmN!&B6W)FL3an-Rs zaY2(^8p@HrwMrQJf$nn3N7$if`>;`%G7`#*+q`{QxfTI7gUD1SenqXej2OS4uk}2f z{b*cErAM6_|4f|6XP9!5h3%&Eh+i%#_<9x~b@bqfy}vw!QJn z!h4O+h*v;S@O3Eb8+UR4Q5Ln}qjo6vY-+^*$b3!*e=a?+PrGYd<}w)1uqez_i_A>q z-e|=djuD)p(r;MgbDFw4$8a_3DK>W(4~<@;qCf<)9qIj%7p%fgCvdzQlx2&k=o!v}WNJ zln+iA&%jfka~=sHLR`o&dG~%ec*rv-ounc{l8G zsy6L+qrY2*8phROiI>3ob0zP(_ON09bXUqw$oVm>SHbPn8rooZl6Ai4q$^Ft@gVa8 zKFE4sE41cFd?I74?|kLU2TIZY>s^V#)PCGDe)#9Gv*@^XS|@atQR{89?+zm(dgD>c zX{j})qF1FZQrf)Lzy^1^*~I=N?uvNA>UEg{Swu+)`JbW;pEAmpECeuRg-7&rd(JOCy zlC&lyE?au0&B*A3Cm`{}(>s34w)CZ>4a<~O9-@-oz%9a~>m^0C+3%Yq?Kb)|SlGwr z*FoJwUob_i_m7QmgYH(Q#h|O6&o;FVe~YthzwnM?zK9QBUq(vOUm%>#QCVA3%3o}E zq1T-+XqYZwlqn9J*7umP>GnJ>_%6%#kW1)~o`i1}HmMTqdc zQ}^DV{Tc*Pr_i>yCif7uWxDVQd1yl|Q9W_B;?3g6vDNz4)wz(gk@Ir_m?C%5+n^+y z#=D3R6%i+$jP&}($p~Z_<0L`m;%fKyJ$tcC;Yb&^IFviquHa}Xsn-3oG$P5eS$M?U zZPMy#IFrBOqGbjuTD@0~g}bd!sSMW))!rTJw|ZweY@0j;2kun1l;7N*eE0K?@3glr ze}88kSdHUvaYn%B=^5O;iJ9{quI@v-%N${V`)!1=_H6WXm3Kkk*D#NOv<*0EqP=kR zqlKv!fCS>F>!gYh`ZDNCYlng?4M1J7s_kJM$A4#pE4>>!9Db}q|4GDWq?+kuPI~^l z)+Rj4V#574f(F4=FMNnnZ-;#{H z3O#o}<7e-QWJtUz5}=@xMH^AF)Z^XK{m=rf9p?$Ebfoizc?v= z5dsTHYCVX*Xu!Nc-v5v_cJhA^HOtBa#Qu+*{Et%ncVxky_%E^%;o^8`il*3hiz=7! zlu2z&49lYA_aU0|dx^jIApVRlc)eQlb>xka{+pchque1@DY~gDBhO47-$#(I@6Hwa za&n%q`HJMG;!%aVETvxKXi}j*&xCCSc!!xj><|FYzqjn8RQpTf<4J`>2^vJCW>f z+z&(Xm)pchYnq{0X{q9wReVm@vyQ`{2ltXb!pH!JGnOXzG?U`1*M zIwGqYx{-VMNN1q<$#`ETlcs_pW3Jg6go3Gey~lGT*o;=dV$m(N@WIM5iK%CXrclel z!b`$3V;B-o9yYWko5u(KSp3J~2xgHl-_pv#og{9C{JJJrKi}sIwS61w^ai+PYYks8 zwDiOJ*I9ra?aoPm|3{x1HptDlF6;V%^cX2HTEx7`KDvgFFU0}eK3%Wj26?(hzkQ2> zhlcq=LzE()_k7+G5#g3gi7jwSV9V-<3#%0MAkDaV2?*%>9OMzrdp{%CSxi&T_R!#JczK-jSl~ zu7b7r`;_6lK1itaG4pce&w^khey!8$H{ctPUgWQ?l1R8Oh^a?R$~OEtLH#(*&1sgp z_6wZhVW|q=;nmK}7wi#0dL9%=qNF1cZp&n!rza2Mgb?l8j4-M0wf{+CG}Ys=dwzQC5wq3)O(Y9F$V+Nw_U+6v(8O>QkVQ^_SCo37HV zq1fajg}2CF)0qq%VE%aSC=J|fanY?y z1xg95MLzMr0SW9>H|x%p@F->YV_ud3S&SN3II+7O_X*`66^CpzmyhZz2m zZi?PW$4cS+spg5S+EKl8GX3}Z$?)L*X<2v3fg$J9_E61=;x!`=L6?JVu-uZ zWjH27)*|w?;!Sw4f9Rm-RYTj9jwhi&C z(OcJh4-!u8I)yVdMUzc1Y3G(e z8S_|A#H+~4&_LeMZFxxxD3uW`uF(^|oCOQeXB1|PFX$$L=@ zP|}FHR8$5FQ>qP4qe|e-+R`>Xmy_3OZ9lxA9-HPFN5&GhR5KZOiHd_$zf^_s8@9uX43$64<>x-?d-*9dhsh^tE{b7w+FjC0{O+x?R8DR^akZ5#}a#EQqrzfj_ zFB#lxP$K=6LBTybEi$3_ejx0(V0MnP;*WP&ROt(ZL0S`5-E))z80Rbd8=)sQwuKY$ zCpqTHIcdjmEgum5=U;F?*^ImanqejD7CQLFlJo2(x!vP-&jByC4vg9`)^EpoF@lJ6 zLME3Yx>|wAk#^{*#?#1SHTB5G=kTI$;|RDlA%a1T+Vwv3*N+Bt!40QeX|sEswJYtH zLNIq?e(INV|A=iX=d=u~@+S*=&_c)1nWazNUTtAnxtD{;HcYr*`K^8r#P*PfK!~(iRo&crYDFQ_J3CRgC|q1LT{7d+{osrB!G@+ zuPhvGc{gfisldiT+GS7I!W{+1?A;nb#;@{WEUCEr_`=zUsfEkTn+EZ)5svo34ps5= z%|lz7m)y9PY#f`QR7p7(@hjZrel%aVs-o)r%UVfgJv{`0 z%#GV75Ptbw%T4gj7qmj=&hy1H%A!-O`}kuR6JMpC0TL69(yU^=?DGYq1FqG`IEm zCO;jx+sizl>6x0e^`=?*`8eBqwW?d#6#TR?X`H+M6z}w%S@1_BK0u$o@ol~9>Dq5F z^5@Y#=XGwu_EWW`g->)DzqAVxlS70#^BNu)d*ZL&mwG;A4{3g8RN+Uj-0YS}XKex+ zhuh4w`Zoqi%@^!mO6A3$jj})GWuPg@jb;SVpJTuC z_$2lsOwW3(=0{wm8JMTpt#2*|-thZF74K|1j(3=&MKa2wlzAuxg)BXgxkvTfZMe?H zdvjv`fV~Uc@}o@Q0bW9zR|@qU#6>@Wwc(p5JnfE^Cnjn% zEa~(*@#=#<%6fTp$|JU(hdg`C$3yNGBQ@)2>av?KVN6s{8y^(FvpylFO9APQuMj|e zJpZe-eqX;qJVhr2&q;5u{3@)kq@CM@X=k4DQPlpyrIO=}$Y-71KD<+Kb2f|8Uu3(o z=GJbU7U4Wb0bR#Xml4wb&rQYgY1!SpE!s`_^L${!a`e6-rt)A5MyBN+;Cqs-rTu%8 zP$TB`|0JWnAd%mHUJLohPxZC+Bzn#<&sMUWwX_U1I(9&BCK1rX*O>fPl_FF>xwM2%7-Gw`Ngzq9px|7pEr*-pH}SP&3_|J2?i#0@DMvh06K{; z0ImU;cXigD)0(SA8QkA^6=j{r9!4C zS>suypCP$75m^+@TWu+?#66&w4cgpu548J_0vtqA7_FZ@C(Comiwa;FvB9_p-6{^U zZItll0)Cl0u}&0mhvs9VOs_Oh0w<_Y0X5z5v??|zKaJ`-AnrzL`WpU$f}CNzANN`QinQds30wz0$aqtRyzu(l2Mo1=yUa|H(wwF}r0J=c z_$pb%V`P=Hrbn7Vg?(&M0EvRA^9$)cWvr6FLfOVOH2t^83n8&k?5hFCE8a3XGQhLl zD)BS+?^IemxG5n|&smw$9oa+GVNH&R*P0Lbt`Rej1WLldDreb45FG8IPOPy&iRMz9;%6Q_bj>_6aSjACfT# zl$#wK=l@uul|DHjNS%U%hLWn%gRV)MLW@W z^u}nt2XV8bd$Ee~#>2GaAQ23#nbyi`tFpUH=-8MEI{1gT^=A-R!3MgrwRu1;aiF`= zi}pPw9p%OMuK70*>KA1+g5|?u9(AQ8A=xnFD@Kgt+dMOMs1_G!GFXfOY4tTUr%Y?! zrWp>Vq=6H!_>!UFTdo(({ROcgZ0B;uN9m{X0~_B@(O5;)?*)VkBG$0cm6Bpa9u5US zLVoF0Vb~%m1eu4R&uYS4%9T?GIcLs-KVGI^>(mACx?}e{{eF z=#w2X)DQ*RBkhXSH!OAJPwM+L=Pw{g7tprsZ*?+J771lI#!RvBmM(sm(L{ZvHG60K zTlTJjE&)(TcmN-3vRkgvQ6*_3;P(L2Xow&{H5>Y$h5t1&8~qN9{}c_v`P+_G`pLc+ zTkaySjnwQispDxx^yLCTYQX+HAg@J+RrcaAiB$aq(Q6cPGV8ZxhGDjsD{Y>LVVrX*;$jS6s7spUC-a2 z(nuIU1!Flb>043|smtq8Qip)$`)3X;aIxl__^tCu1i&0s?AcUsxUl3_WMJ;#K7(Ju zyQdw>Nv5EZ-I3W(D_JFKptXZ%EzJmV7e+rB$W3^UileH^yZW-@ zqH}B|_oqfPihL-Ye|aCK>QCnK)-Q$0qLm)}X0Onblk$s5gsNVj`L-dQkw3E75{nW6pUWn$Y3qV^p2fI+BCnx6<&@QsA^{5?Kwd8?u>CMG z`%M1m`Fsa*_M2$;YwL)QA>WNzZE8WpS=IBK9ku%CSE7B^u8j%~cmtp!dU-{MJ5Rv^ zqUr6jXNXpew;FRJdaX;kU9rUsJ>xvST zJz6xU`15AdrA5#Q+2zEzU#d52N)6`0>GpKN0j+)(t1CL(C5lt~v+t0zw=pRT`XfRy zbdsZ`y}74B%)b-e1z|yWM}INv)g^^(Y%6`PF;q7pO_9xW-|o_?Fyd%J%d(W8*h(B= z*l5|0I46up(p3kIyPtV4!c&5O8|VFX8yh>p3K057%X~tV@&zASeb!M;nS{N5p3g33 zf6l_t26ssuz0`<3%I@$C8oONAy`ob=>000)q-n9-!S{L%h#eyfA{IpM zO7-yc21lz)W0dp-@-{49EjEPG=~zXH(c^lUw(Y80cB89HYKo9&mT{Mc16Kbd-4A5s(-*o(mj7cf>7wgwHJ9 z2e9JmZ5os+2WMtHu+{|CvQlHv?5!4EcH!T(=&9Q*I_ql8*Sm6kCygasTjIp*b&4<=T(g3=<|}979JfgA&Ccnxd4C zVN#{I2HO@tL@j60$)ug~k=IF~6QO<|DaDBWWQRyf_aIj_JDb{{#&}L>^w#%tE zjQX!*QRueQ!=Dln0>g@fKi@AQ7Jsi+B9%vIYiZg#;OE@WiuU_Rc5(amMC0egz~G@+ z76nb~=FO(uyR3Q5;Yi0@2g<)fC;+j`qsQsp)m7d>Z z+M_BIn)U`rp0zd`UFm_JpaTa&B2drjwmvT{L(=M$!1pL_p5+lM|59fUbERlON3rbo zI@*@IFp-=#;ucfcSzTjsD1Yt0i;Kc8!;R)UAf6E5yxFExoR$8~PY3Q_g*&RX* z+GI>^6kdU%d>39pa);MV_400NH+iI4IDKSFUidOX-nf2#fX^Gx4|QIrP06k`nYWY+1%+w}92u*= zJJ8S?uPBkGZ_wFnM3nd?kM3=LtK{N62AyNWDf(m=n$9i3VXbOHpUxs^XX>MqGpRr{&~GcS;sW5>uDiJ^u*@ZJ$qQo^Yzn(CyuZ_167v$+LK%(FUTR-z% zefOdZwUy;g!0HA3!ycoe&ohTo))Ko0JU=k4_wEAZ!r2JiQ~Qq~K~L}jY%0l=aHE9dbUQ>)=>^&<=_ zxDRb{R=kXUqx!|8*!>=QWHk$7>;3kJAbXXwwCeEZM-L>^>2e8drbM(|RdRu1O5vurVnZx%LKM)R{YDd7lRo z0TG%yU*penW@vh9g9(v;G@z**%h0Ps3sM{RvJ(6vgnKWZEn=b(e4b1i4nO^^ATIfa zll+@(o$Zf`W$`W29nxq=H|%M9oqol@d-BRG{CNeueA&R<;gUQ=e4?&xm?jKgQk{2& zSUqZT`|P$AdapzTICX!u@vb9a3fM&|*_hsDq@Nj2gyFE`+iLmVmS&0o*6$td7jHJU zYjV*HBwj2x)F)=Ri)J$BI$mQeud?g_(s%QXTZ1)3Z-Dn&3JdU9Tp2b~aP>(|G)p8& zp=7*=_!-}Pg>d8DO*((aLlGw-Mw~9-b%F#Ds|tBtl{Ej+RM?L(sDJy7ziO{U#Bs7^ zz9Ovmp%bmlGyjPS3Xj^sjOjqvJ^9v!<>}h5Fphz<7&?neHijeu2Ocbsv-pfa2vtG? zq&j7f;~W^w+D9|2OC}p=_hyHkifM<<-EGajpT)gyw*S^~98Etx`p?6-e&hIIGL0ZW ztsvd51H|=LV6OOAo;@{Gqc_R31p+^eK3FtFnKZF~|HIp;_R}6^0Pn+IiJ=+$MqeC? zjmRdSvC*?we)tj^@1Hr5RCXfyRWJ4XE}458ayUeJZYoCBiV09S`ZpvrQ(k$PQ#G)q zy!3pWB*+hzUVb=Seb$?rnuQA@?s8ybOc3W)H~sMgEpVzxQpy#i9)o*%zS>0=$!@qT z>+weIZal#^P9f(CSAjLMf8!?+R`J3cz6x*c)U~@|%2XR5MnG&zR7KPz{D1`&GnpxDXCcyacCC(MGI0zaf5jidIK($;Va_&{Kr*D;w3q9_q8<>Xl+ z!Unb#87ZS6#8(3X=7C+xB$zdx7E>RE@lp?f$|4+D2~E;;rodnHlpk0wqTo`ZeoN!V z3fT_&>b@-AV{>hUZ?OVs?!zLJE*Qyb9ECA-hN{=(0{R=v(;#AArG&jf1tN)a(fy*O zH8vw?e|=(}!63$*HhkIH&xY?oNG7wqC-zE}SqcDsD`d~ocnE|IL=!eGhFHZqCWgDmM5-ham_!Ys-j;QE-^07e-|z2^;JJ?h zWbv&msnl_F+pxsqcieagq=~CcoEquL_CFD2^+&PEE_`@Bk+_EK# z@i8@S*C6~$xhi?r9WN?QBx4-N_=dW$epKYt?}SM`F3h|j;>D3+8_mO5e2F0|iF<%d zjO#l)2XE|XZ<)@!pHoB+8Kjpm%3$-2Sabg{9c^ZR?-gGH$K0nO{WY|2?J@9xHH}-C z>Xal7amHtt?5*yf{do#JXA4)3N{K4)g$b`USKZkJ-XrAQxhy5#eKKyG&onam@yK0Y z@6C7gcg4PCP*Ki!eAHK+n%*Ehyx;`Ko-dem(s9tP2A-n;CzB8q7TzX<@OQ$>Fa#U7 zz&f5KO25>(N}di6xhczcbbS@RlGHu-l6Z?7J<30M?ZKkS7`43K?vMAV6og*W)7!$s z)4MV7X~Uwalf~=?%rkqKK%a$gu#7qm0T82`dXIxVV=VCK<1Rd=ncR6eGEtby6KWP= ze^$*UUdHTndDH>ra}W9}_Y2{3~uaD^Ua$ue&Fj(ppw%@>dO(ly%gp+lAM^yC1{TBkgw1 zb)O&LF6SB1GE#SSL5O|dMt9j^0Woq0Uf%@AMH&eTg$bIAsd(1q7EZ++9S-ew@cGza zzHRSgz&>ghNC+q;CNOF2Aqxtmg1AtProNs&$>TDTdDeJyp_8(_|0)lF^<_LPkkoB> zqJN!=Pj3Hw;p;^v70lvLf#A#tp^k~Y`cas#G;E}EKRu;-8g6ABM$$Xkl#OWwY9o%J zFhZ>GJc#;tqmIR__}&93PYg9Li>nVO-y^A;e0$i5#(lvjgn)kpY3hL0#yDZ>VYtNk zdLPw;EvVJu)fraGIpECX?yF=)ohtLq{POzW-7_X~k&@iMc;*}P2}DyF!| z@TFJzQ2hi7=W;j9?aE^7K)6c=vA~f@+LxPu&tri9r=GZ-pzD?w>Z7Ks15Zfc6|P!6 zYsPrT(f`HSTL#tj#9^AaOK^7r1h?Ss?jGFT0~dD-4#C~soxsK20|a+>cP{Mx&s0s# zPVI-?{d%gqT2A*l-9LF=02z#7b$606_LCuuVKHKgMoOTiT%9L(iJfX5`rwbCQSPdH z!l9**!7K1~8SlY=3q3N=^yQq2V9ac|^}YBBl8iA9{WL$iTi9$53(`)|bNC$t%Qs1v znF3cX1i4sw;$@wt$6E2;Ry^_ttY^1r+b-`h7<#CnKk|6=KMn>{pAQI_RJRxgvOPkY zA9X#oy|Kng2_3*C+y7Ft(G5w`*wf2!TNef#7~AqjuOOAEBBqbM8{fIhq~99ccPLN^ zBK@2p3Ey|mawUQu|K|$qt8z*Htz4*JA*7IcWLGB*`~kb^{y|#<&+?^Nl_tGVZkYowbZ~3qZW7W-{oY`N&Y$ht=y_$A-2Yj<6yV#lC z7r6OozP0oh8V)Z5mAcM-KLDO#+jQpp=9d6- zRef>CwvF=;$q@fkcrEX3HacEOXuVD18K4J_JZKOG_)Mmytq6m1LsTP zMP#o_mu8aL6AQL!CgRoTT^_|=WECqVWk}Kt8^t8QHs8A=1#ZE1$<@zAN78kDskJn% zOD^S;Ql6LnBV5z9lAEUjhtKMIrugbd0^u~p@~pZ2?*(TV*7i7Ui3Je!9*U%)uc*M% zwlvBl#bQh5MLuc$YRvAvC4cuzN)0-2A)tItMPDXXc|`~7N}0jw-x2LFSB7c||D{kT zkNO8b#H~`&mbq`lx7*$aWJBs6k(Et4&h7MjSEJJP41sRH^3}1_{?CZOG%2lYTk63m z9ut&km;D3i8qJZ7JiX1BnWInY;oY8GJe7rSYFFw7cvdrHpa->sg0;j=yVHn0l6Xay zIR-M;?)P#u08GYjLw7WL>fQTjI45!#mY-?;N?lc&O*fn-QS8oL|8AbjQn=6VicTU{ z9q9chTt_y`OeeFM0_?GNb2?<5DXzWM4=C0SEpFwb@B}0`={=koXHG6c#F0x&!2Xvg zVnNQ)QNt*dSHS)k3_?oS;t@N)F_7%R)VnW5?_imIINOsX)>L+0R*sx(+%3_-SAY%Z zcN{uqa$&>m{2r{bY~6zUEy+1vv$C!CbbtF$tCyYOU>;}S0#l~3($L2}wJ9r4*+!l| zIAbF%@ymiv@Y(lE{{@-f)7eG@Sdfj*53e@B*pr8Obb9}w_k_o+OhXMxR3`O_B~%wd z!IXb@!M#K-xY6Hh17oBEr;Sydntvfx0L#T(6@X;I;u+3_N=G-oHB8No4^_LOVsGVJ z-~+an@KBo!vw0!XQnli*v#=O=dOkV17ri)htA0L>u6COAK2aBX^9Fjb@sES9Ti|w&xkQ zJt$q}X|Ro(2wn8v!Hz?4>;~&;>b>&cq*#<#J|ZWIXoXG!y6|1;t#h}(B*=eWI(;$} z^?>YZkWaQX%UJyo041xEGZKdZ{oL_t$EiEWmv&r?9;NUa!XpmhM@1q=xe}0QH!+uI zU$O*0vie2uR zR*>)Cf)F@Qqu{c?em1`r=&NluHq4X~Q!9ie-qy&^H8m3m zKQ`>$QU6|yQ;aM}?X_0f2Gs@RoM$&aj`GBd_V8SvnnkeZ2DkUvo-7zgM(7qG|4tv? zlFhMT-$ZcqhW{VW!vQKJ?SkPqqr(b>W>5C)67Nz}j8%OX!x)HoI3q zXgtB4a-Go^YakSC*+dz?Wr1@D4*4^Pp~*k5wj4r60JA_4b36ba;0dLYhR&U;@ll=( zz4x-l@Y2i@-?scUpD8AC)n*%HcgchGt$rdNPMcNV7aM?qkO0eg#;lQZ+}qv{pe%uF zyLqw*TMU7!=Cus)XV2Rd7<;4g1>XR@L4z#HZN?Q3?p4$xSB|95HUnFZjM?;tfg=vM zB|WBeN9gcV(XAiWz&EFOZX?O#p0fyf)%GN$aY0qGO$Gd;5G#dIt@1L?CHb4Vm-<0jxgIb%Z z-ABa(GIp;Ep-Pu>xzPRN4d3`}7y%@^RUm>13b~ITo&`+1k^0M*mu!T~ z)LW)a_Nl7ZME}3_C`)G`S-`l4XRmTRV>o`7H#e9^zQ>hFIp`y<$@hH+AM}>=CProL zje=3r_SM%*Dq9C1AW~h%AV+FnRM9yu1_HwNf{a{c_@U@06>yjyE?)!(n~y)d;a6 zdPe}ZUqvrWK8L^lkT4T}TtcYR);2nrXM}J%cj)>9+wu(J@^6YYXsiXUOCvjLyOgze zeH;!EZyJE@*U6W1k19@|Tb=@y;%e(ae+_qrlJ73#Tu#^HErjS7O!MA%qiNhB+GrhM zixIP>A9%spBRJF#fo<8A)50bGl^QUH!ygYtUm;Be1r4Jc_AhsYYU^*Yp)D_Yy`A#X z6GiJ0qwQ8n)wE(`Nx<4UK`0e8yy7o z2YDe2JCQoo?)K*b2WL9K_T$ECd6QW7-vK?ZNK*9Vd0-aq6tXR$zmY3iF6nmM$kA}+ z<@LeVr|>7o+?GanjT1LgSGyt}m&yF*7n~doM84iFn&6Rv$4UqmO}Ai(0rh86frWJd z+1Xldo!s>Tm6@9i14E53;->B`)%Ey4(iJhGLPlet<EQ?M*Fk$k(8FJHXaAd__G~q$9sAkdDi*vR4nSCG%-qpeIMD@jow`cDyyrSRpQ$hd zIxsDM=8iLvmYRL-&Wo_Q&r0HGM^&&uX}4_Vw~>r$$p{hYPugUSQ}TR-u0%A;y>+6W}5d;w2%0|2ZGcVS>s}0bUwxgtxu8WjPrx7f`X+>`6B4lLU zdMlmkIct)k@QX-xV2^k;md4p>=5e@@i+o2e2Av`JromgSq{1&%`Hcf2O0%eM5YnyYlDsXO_$z z5(#PmOUJJ`g15&n1kL}J*2*H@&RDj#hr9LE;5da?@5o2DguyzAZX5odpf60~Zr8zc zD3wofD|1_nuQ;z$k-EZAhPqb>;bz>z-S= zMo*dfHp+p0L^58{x9x2~Eg{(uf>ItZPh5lOJza-b4E1QWJ;Pl8K%S}hZ-Q%L1i}Xs zOgJMdQUW2iKwB-0P95bn;})7V~Q zyq?Vfd3&`V_yDtjz~|VfIwTpyhCPKKAv!t1Lf)z76rzQ?3MoCakKZ4)HT&6QeFG$n2})E5)VBAZUNH;Jj78e82uhGO6J+ zWK&G_SAo!VfghO4Jr(r&l#XvukaIc6uv3Mo^6 zOfNUwm8@6MY#hX$9 zJ4hwF$rhE4G@{Y}PFdg8`e9^sOM^U9kIGC0Md)?ULdl&y%Q zm&Lg1MSnM@xWBedjMy>MSA)+FmmyU|tXgD1liu-m{R$vb(0s^w@rjq7;0atzwZZQRq{@Ym?Z9zosm)F;;OAp{$! zKW4)a|E0-?(GMkNV)`thw`r%PX)h_KscrVR?*`O3JsIsj?S~5My=&%7wanoc3oB2` zXn^X2^$-9p6wpR!#j04==S2^8>+Mmh=zp4|9#2lUCDn5Y@>r|@F1T#*gg>+4gFY@p zP+$esKZ>K3Wx04ij&H+fs>=Ak?~g<+XJOwsXl-tMKbAYR&F^m>Vnqtx|1dp!y}995 znQi;anlI;XDja97Gfn9110%YbbPgb0%qv@D!5}eZ+g9w?(U7(gYx$DZ7$BMzLIGh1 z)Op7=Vf3~rjcn{%$%`LHml|I>i{Pwq^_a>u%9p(mR5I^7%>Sz|uyIji$=r0dRlE0y zacOmSIW5;K#k4@76GaL1{{!sq#99@nCUqdIl!#sx=Mg+G-ci-(C1H0_6UYQ>O{i)X z74TZp!)bHss5dNEDQ51v<98j`mXpOkA*qz)nRDzJ;6z!ha0?oxl!hq3n7KIpB_fjc z&tU3-f*KF3rSMYMHJVM90a}$e?FYo^E=E^p}^@_(6=t ziIHUb4)zGf&XrqrMO;9jBvli$(_%pp4=R%WzmyUJ4En(2-)15W_88d*h=hnQs#878 z1b`bj%+0RpVd*C>skpnnXPF!DiKi7(3y0b?KLs0kKB^a;Lwt z_oUlH=nn~tVL1@8p}VDj4{Et;V}5f(8Nw2Ls|8=4GyQ*)RZ}Di3pF|#W*B|XcI5oV zRD1q+|G8lJ!}vD~Os(uK0_MM3W`dL74^sEht!{h=Bu;}y3FBVgpkRqM9SFb!uW$1m zOwS|jIUy$_?BAwJ)0Ij{c->!A2derGiVG(vMlbK?uWau!KU4Nkf4+nnaVGGmFN!dE zhr)z>U{I?Ko3V_CGw!+E<_EL*Nk=6yY-*E8OfzRlbxan&Yw!kH&QMX&rg|0n?|Qxu z4h1i%o3*t@BR|}zUdLz{I!=i8E{w}}j@P@%>*zHJ3TFs0$)(%kFAVCv)Q#5NrL#Ua zgGRxEdhD2UPE#5;QU_`K%H_GmQw5LRvX>7z#-ijXW{Uom*)RYLSNrti2X*DVz)jwe zv|YG4COnP#P*y1Pk`&ZZN^EkQGPGQsr|o+VVc|rfvG`1*@>`q0-3=gDfaw6LX9dN3 zC1|v>tD%B|NQ5YLF~%-Qp!g<#kU=yKC(;^819%!Bjn;-3XP6@_mR8T_ zVkMHpbi?QXNA4h_UmN@n+bjPmVNrRqO(8nu#dhP{w;tpDlg^Tux{6oHpOJs|p}w>H zilP61%!Rn3vm>0r+{+|X znCoFlj#xFvBQk1dAonUdqgrFppw&=J+1I|}|MoDiISSRw09h?;fG96%J}*N5>WbMV zY7aL$EMc|+xHbj79Ug&WWgGFpQL%%6{C@gZ;M|bZd{5q1?8*Kei?(@kJNq?69~WS} z)JIh1VBk*`sC3N_wR!)G5qvO(pBsQlug5;{SJuc7DM2-dHrt}OB(y$Oe~_{O8z==q z`2N_`A&C`#t8UdxkXtUima)|zq&FmzJ6=g(#;g<);eoZK=A!3Yl1i|UQfx`1sJxl) z`x`J@yGhON>ZfJjH~agdU(s&eY#mALj|O{8vt&PtPmCo%e&ACu;6vt>TA0ros(RW<1l9?SPes5JaX$rBxr^tk6H^%-vr+U8wV*}hQp+vA%p<-&+mXe4!y>ndNVKUsm7 zY~ujTt`2zO?l^U2EDy#7{~@kEq6uJ+!K!NbihS1r{`YFXy+@wEveTU!)=lOy%8MDo z`-|Pt)JAXFR_Hk8-`rkfMu%B9e|d~8`%O!#I%_q~dw=qPKf>*}B^jcPD1Hq8-9bYz z3yBs4a}9Q=m_x1>1j;nqD$4rj9lY3_unEh3dbJZ7Ctv=2f!4<*H4j-nA}PO-i6iMR zDF!!!(6yQ%s6;w;rg206Bqi^c9Y_YJkJ&XkS94PqD?Rqw9lD9tr5@Gg_9~h7lv@Hc z>TudOy*%#%_M*dHy;n71zb6pfvEX4OP4i}mJ6JNBR`g}5N+pAn1JD&1Do%_<|4(UU zu#^K>)6($$jiENc{UaVIR5zn}5J2CJ3^>}61k-(Nc)ZcCF<*N=4rT&A?s~wkk1Rxp zdzMeTUp@PRy*@82WCnLJ{wPq-%=ldd?i`s!pb5%8`46@MM=7`BfEVdTy6Yr`D@#tJ z*R-4PtFAtum${!)$I?X;ut90>W`|~@*3)H2GP<(_Hm;PcPjkxaRkoJO|Q=(Ghp>; z8-~aZ;s#SpkikU<)87rv=pRp>%4pG+0=i!Yo`i)#J5K?ioS^6Up3f>c!?=}Ed+Xlc zsJ&S=YOLTf>b&NJJQ{rxdtv#1KAgl8|53ianA!TgzCX$mSDESwSt0Lzn^CyqB9snr zxsLz?R9U89C?(+x|HGBYEB6RN8s>rDp57pzQGGTN(ll(vDBmDzmTTr0tb0_|~?eXoZ=ffK??9cX2`tf>3 zwr$k?A#M3N%+VR}afCVh3F`UuUH=&3{W$u33s|Y^nd+SYZxhoKI2v1JZf0>TibOQXu5X-y!gaqnX|joKb}52fN`4; zU2zz1J$0YT;RgSWNop(L?cz!JonkGTUl=?;ter0p^&fWO8@&IeqpLk44f_6{zQq4c z*zo^EL))-zPl;t)-lH|Ae<{;-K8ZP0Mn+=J3455a{s8Yv89a#1bCDGA?!k4-M=HtK zNSN!gsa|A#5{Kbf%$mzSF~a=`W$9t>A>~#&M6#91OU$0h0`hW!x3U@mT5)P;x*xy2 z_aV!Du!lHFxfKW-{Y6~%gTH1!0B`hw>FS6W%R*uBVr8bS*zkm6`FcGWFiBUm61iu+ zvu$zxbvL>Cmi9B4#c~Vp$q&hW3-v#`H5i-of7fmQ|1jGB=c0$mo4w8K;<{1Z z7rN`X7~-OuD{mGCIqWjL3?WX8Enfou^tw5`7-^0_EOjT#N7WFD{#j397CMW4?Wd(O z9{qblFkQXz{OqpFKs2GH(wn!VZ!5{#3J~#CCmNo4#j*ouNAvinF_2^hK6N5q*=|jcH`UtbNdm#IHQT6B;kxN439t)u|uy^qd9D##^X=bEVR;-BEOy zlP}r3UzGw!Y?u4$E;tg~e9~o2`ABzW>w~Ewq=_Q$?Zp^y+;b#)WGKJgM0~S^E?^9x zughtbTvth}*swHiEled}s24Y0+?2KvNNO8=s{F*feq`9xcW23nH1wG8-U%_+!|8#F zVGh}^ny$_+ZTF3|$O=WN> z%ZP-Ay3m9|*`$Z=InzP(%Y`$P5k%{vfoS1a;1g~Tk52GEZoFlnVS9FJqRf-v(_C^K zkwUL{G=ehh;Y*W6X~^y?epASOj3$*RKIb2Nkep%&1*B}+GpY$YOUD|naeWKaR$i@B zVcuYqWWw(1B6`YOgO(>UgC7ubmx4#eAxsY7i?g7Wc4u&xLTZKVLi>j>c+x<+6KV<7 z<=`gapl%zp*!8bTvbq%xQ2R9sy*?J(tC&SbStz%Crj~_Of}RDcj-TvWt?ELd)8R=Z zmkLUTzc_QS(W<*y4OL=_Hb#wwdY9X;OwhIE>e;0Vi+2u!0$xgt$V`tK0G;+)%TFw$ zP9JwUZ^P{n$eM(>46%!MQ*F)**p8-xLM1N!R?li*>lH#xJ?UY!fK;G2lZZMdkzVH^ z1OBk$K`@02J=V-fUbeCQSg$+|+@uu*FIoKL($M@J3;^OG`Pc5wng&VCe%Sz;NOOr? z66-W`7qQ3UJs1*Z4m29NMHf~q7*LK(QjPCcQ?TaT*pF|RPiO&=v+g09{rV^n<2EINxdOPrn911=Gw!) zYA>lv@LX3_8LoZkZ%budY`FG7Y>j*Up0a}qxkt;<@Zx>8rF!Lo(pTS04wzszuGwC@ zpgsukO&iTg`yGl|?A+O|P&7)OhkViY!??s17N#lHch z;gily4y92q-IY1X@lSaXF^gy+!@c=R%l58s7?aRHxU?g*2b{BLRJX%ATL*MR-o8Du z>$I30OBlwmLM@p;)U@LRuZwA9`YSoX zn%ZZXnvQcAGl&tIX%%DMQAM~f~-br zS+k&v#XFWnt@BvR#QUi@qV zDSS8yXwXhGV9M(f0n{_`7jCliggInwhPlvK96tR0+o?*#bZGe%)Pd4#p#*DsD9fMd zy%RU%8Xf8_ISDTuqyG44->D*~TJ;F-GX*#`M;OdyqAT&{M}vM9B6m1^q%>Rj5?qy8Hsc^`*|Q%6`dKDPrYD>#v)FBe(M*$QH(P3Y&sbES1uqE=HleP3 z@lum1RUvw+Aoa~a{nhXz>gY!qP(0+9ol3Y3jbL3rpL_}vJAU)-z+gXd{pGpTo#{Vj zs7@jEa?-X40f?Frxw=rLEvuzmKND=ioTK@K3XB1(!kT?vo%FxRz1LGu>F&Z(ca1v~ znd65(e$YH&Hc@^4Z%Sw%hm)1GBhDi&noc;|7j1qsKV!;Kd;m!Fi9CL`kBlL!z%w0Q zF3Sfx8Fq4@CD&~3XY$rv?)i@HR2-}#(Pufy1|s9o zbt%+o?$zE-haFS@=g3!d&p$5Zmhwqi0asDDu+^Eba7=L{; z;wAvS0Cg=>BMM7@@-gUaw@;PQdw$a1=SMfhDth^bW)1Tw(T-5UT~$3ke%Z>v8k&J2 z-Akp8H0!P~YCIOyJyiV0wq24^zs1I1J2S~Se;#;yuQ-1(pqyoZ*ZC_j)0w{;0JCT2 zz)6~!V$x*bqBy!An&J;TNx{0B8=*Phth}}ZQMM}0u*I&Z1$4-AY}fGRb-d`ObW8&4U3yQ2Efyhv^gdDDL5GvkD3eJT z**s49H=X_whi|uQ^ZO^Dq|>sYWFNx50?lvyEHpqpbiTYOa7JMK$wRVr8D^Z?KH#zC zpq(F=SfH5CX+=+9p*+eaG0 zNfFr(Kebj71H0@KoW_(KHf4e^5WEH13l;pP=}~a>R5f*2e;P^9?zbx7Fw7APoY9n6 z09Eii?;O_iR^LM>(CP#Ye6bho1?$?0NIMGg3uU48Szirrti=8UzEe=wJg!ohBV?6n z!v98ESFOSwBukLvuy4wMZ^?8BLGMz}B=w+mYjOabwGiQy~P1uhz_*taRX8dJ+r zA~XYyTToG9)=>-gPkSjx;c+K`8_*NDp~tQTT)G!|3~}f`?ScUjiyp~adxNVu`_OuD zdfub^XrJ1|#!V~LtErHw!p-AuM)#YLO;Li!u`Vy?3tiT?~MX z&jA>VjH648;p_{=L^S_1q`dhcr|Ez9hO6ncasma_4K1YL1E}jQgB9}WyF|2tPfp^@s75TD zVBamzBSTj2PD2!@2|4LS_*4K)Ov6Z3kXW?(*M+!~ZatYe0nzo2k_;(~+P$>ZF+}kb zd9)=kvH@UvfTOiMfT&1N>^2`Vd0bO07|*NPS}wxx@wpl5r#GZ(SiyyKDEjT-@f(~h zW=icOG2%J>qP)^?o}>}u}y#x5|Mf;Kc?@_1y1fV z9Clmxqe>Zb7}2`yQ_%)e5V zmb1PM#yNhMj$UUp6HoAUN5yjZ3S1M!e~?qB61TJ{Xb!DLY?Q+-%h-J{YTZpA!dVFj zlM!PQv@fvl&smAP1UfjXc~Vre5;Ldk`3jH*YaSI@oZoDG8bu!eJ(G-@*$O|J3=TdS z6Tbd+gj6S5oBZ)MEzh-CGW#dQ6Y4D4o0tG)v)X$@uH{q#mz*8W(2zNYHT)#5Gfm?| z69wSWqIdH!WWnwtW8qjwkwsLdeXzJ1r(mqz^OPA3A0wSURznOZ8?`kC5_EH3b^oOH zKBKDXdjk@IxleDE#DnWk8?X~Qi;L_}21|N+O*>PIg`oE=*q&z^pQp5>En|G8)$vxw zL4YquvOMx8j#q`9<_d_y+Ur02o;n>^ID$d`|8Cnel$_vXn*uZ5?5s2Dv%r^d?Jr&z zV!Ll(>w-n8MKq1VE%YZ2#{OoO)|ak{#oQ}Bbp~&@02^Bcfuo;q@xv(`WFEMXo6Y6F z>ZXF+6TY`ZzA#kBs|FR%a09*=?zOQBdWKtD?PdyYh6q+=T4*O!t}6U~ zhmeN}Q_0bA0p}8l$KC)N`7#-Nii&b!iY*u3Ydw#VU~$6@$wYPwRcc)IRQ*$%-CAj7 zNUUDgEJVHHOQ$b%~(EifH8l>2i30S4^S8Kp{Mi_hY1s)_kj2-{Xk^^(W1{!f z&UCvV9KS!!lZuzmxF?Kl2AJ-!Uz6b0Q{oFmDEN$AIY_8du8|S!{+8&24?LiQs@u_4 z4Gmu)j)SPH|H+irVnw8(f{kBcRkm+>Rc}U7nx;qtD(<%8W*Wx4n6&1K@q-r6^k$rl zuzTS|LdG!illo5M9p{H(=v%FNTG|E?D)q6Fs-AN1L4{XpuroPVcRm_kcL;K5a;&1CcyY0t%`=Oqdjz z-daA3uGS@NiN~LS!^tN7tK(~}-{^xpVXzFXzp`I&=wS93(ay^CS_MJO=(=g0tZp}C zGsHl*kX>}OP8)k@sTm|Rv2>f41AKF~g>j$AsX)FJV_q}_3)!)(P$WSJ+AtOW>Sg;Q zO)Es*+Wp0BajT&59>UGLvj{y>S7>Kzks&1{EJ1e%VHFC73|0#iMv$ALqbZ=3pxcG1 z!B{5;BNwIZNIM*XYK}Y96_=A8>05*$GC6euIf-=$B!%I+fM3DkN+=2n98Cq!F=4W@ z#vW-^1A^S~NC+>wcW?8uO=Tj?o=Oi$pwcIbNOaZhKwK&b#*uosi*iwuh0{|o4a)HFUpbMaz>~YCy-kGa~w`?JdO??x^_zk6!WsH&uDyPUd;}4a)<`Yko zxXyDtR|>@oDzT=g6?s zL|}`%9Q{Q$n2Ll>h2iHjC-;cY7(W5qeLRJ_J`1t#eq07S|#v6OQ&98b3bmYZg}SzaPPq$*@wKc zCJ;(rMSh||)uB=*Cd4UMOpPyIZY3gY`)E(*?L_P=gT>TLY(lGApJ23buzdg&!~Gov zb?GxFfOOiw%~iiw>h9ec%)f$#DX=8+0o^s<|SygIW zEyaHviV^aOLzfdb9i+I@KUUtW@wBIxb~s2Q;<2oX9xswk>|cMV*EnfM^rOeZ?{(okHLu$`+-rn z7drLW%j!xu$#H7%AapU*uZ~B_ zeHJ1(xesCT8mOqLse@}MoVJ+Ph>;UjRH!dJNpZvniB+TyxufG^k38KrC5@#XsEs`) zZ{GTae;|MBNHLMaRp?A9)u_R(*y!Y5gm~fC?pXsJx_{nq5d#^&>-&7EzAqY4ya^P7 z9OF}vDy3$C|K*$CANJ6oP}rB#d#L%7H((JNCB~y)*~%HeQZv0t#6{56+DyToxFxM# z>h)T;kixKqx>)P{mn7aPX9P(!Z*eZR-5Z~~#qoUfOdvZ-4rJcEi1cHDgfTQyHChbt z;tKk&y+;FIsAUN4i{Dh3LhwiaOrDV{2Xi^ZIv{*^)RVN225hdpf@x=-g0KrK|N;r;lmn^zFEKg zZQ+|@x$MB>@xIH>8*;u3jqkPyM7&Ol{{_}9C{7a?UqXDHgr@= zO_3PrvJ036&)x8bpdh6KvtIdko!Sh$hy5#pXS`jc=Muo+3Lz>+N4h%q}v>nd#=)-cnfq zDO@jDja)Q{M8822=}yM-}2H3u(4#Wo6x=fpPNMUqcRVwx3Y%Tsdg&RrT<}x0USM z@H?{UvW6tNXlp7NqFG@ju?CckyWY#StC07V?P87#-vUf-$V4w6h0tY>MTj~}M& zZ%B;PKguHA)U)A8t0Yx2Xp%CPNsU+ZjRqGr9<*iC{fdfd9YT=Qdu!E2X`J&$S|db( ztMO}G2Qie`hst1CqSvp8=c2S6E3y zNgmXj1vXfeg{V6i?0Ps~qAg%1lEsJ6;ri8M+Q6X^%@8%u_z)0SVX_jU8iK-v|02!y z08+;BD80DG5o{eZK#HcXuR84gCiiO)g7Zf{tjom698%?aW^+6g)EL&X=rI+A-`IbJ za6#XN5Ytb@p6lWM5)%47-o~fDUWwtIm^OK{fA^b?(vE~tMSJsXgpg+>`;l5zd5{D1 z*xHW9qE>ox!Dn{2kKbCHU$;97ejg)RI{U2cr#8RBQ0WL;s48O~=`D)XrR`6BV{s3_ z{DK?t1sB<@;-5;%#43%o^GR`GdVj(YM9U%ptr9)d%MIcTVa8ZKf^osibcBZ>FhdtLVy5-lz8zQ5o*50d?a@a{8$Kiu>K_sb*ZK=XqIm2!va$ATeYMudwF;Q$4C48i7JjEqelAXM- ziTBgneicmIAwy4wPRI3Ac$diWGDf(j40Vof3yv22&pFO=3sX0qFCXP5y9-c0$6EAc zZ(N7q8*o^~Rs0&}pK2H_?BfA&7G3FuE=QMkBBpGPgDuC=4f`PqIAlSfdvsrynbNHK zg*#Misj=*LC(Pfm-ZwK0uY(7IU!Z6Ioc|Zj;M6F?gMbO}#dZ8YM|f(){)E!=>hu18 zw_8frB%%U@pCeba|M_My6ECQZ@Xk<#Ifb002)aY@rKJ1Lcpd+%l)cPfv)iro@uN!- zB+6n84qK6ra@XO+{i%lA@ap%mn)H1XoR&MGSj^#EfiOROXme4|Yn~_oXTpls{a-^+ zx65mUt$cN1&zf8AJ{0Q1CbZxyw!Hk{)ls>{a8R=hYd+8ngX*Y3r3I^h-D-R4I3#K$ z*ow^*6?g65gzBHuCY6-bGmRSJv8Q#g$TQQo2IpXt#RiA93XOqZ>WC3jt!Dg-CI~&m zpizcc_G`=g0_>c`oyXOgnMK1bcAtw}n-`@P(D`%ji3S5S%N>__b2f}6GkQvn)XhPI z7YDdP1LuJJD7dSy#@_ti;0Mi(|9>6r24a*|Qe@O%?V1T`Uh3mKGt8}*8MBs9+wv|{^P}Wv++4T8^-{ISj#?s zS9W{#LcAAR(o9)BS|(@e}G}L>nku_ks1~2gt9@Aeydja#& zutmx>;P*J?7hb#=7x-K3RC%nfYhjiKLgu-@T&@6*N1Sea8uZSAxY9zS|2`IV**29I z@K{s_tra|xdn&EhhV>W;7-rC5QExXaG1HmZof>be+(zk=m!cNa6++=(sN@7!xV??> z)`a^F?s6h=o5)51G+x9@UcfYZ70pE`1bbFN zSMKyqytbUsS4kKc^o@6SGoSwmUgwBUwkBuIk2!LjpC_@mlvBo)g+H^}(0|RNGRbUz z^keQ{JhBo)6#LU~S*u1s^Py+-i=r{3g&+1n;t%-hpBf&6=b&c!I=Yo4T=8iup#WL= zqSurEx0XxENYd-3@+TJpNtL#jAVBu>H>_ECCvO#rjiG6H+?xM{Y&|%fDaOi9_^ZCf3JYF5C9!*i-d4-m#kVDE1UrYA5jaCr~ z{PQnV_0uYX00u&pBeTqlfAXA$ExmRKs_M1 z>_eeXruO~wBIm-fP!Bu&K-|LrA^;{SIhjULMR~Beh5+jU${TCY5=t2201mt3q3PeI zvBQYJ?!sT7vgI&Sy=czJ!7B2)P<+=_20`baUGlS-pA$8I;kMXopz8*+_{29^q`tA7 zSm6VcA})*Bzgc(Gb{MuL4eGqDv|KQ6WQ>0qoh=bR3C$nv{5RNGbW*kG-K`{zouRlh zFQ&xLDVmtNPh!B}QA!yigoP-0)^kgrD4mE8aMiVejuV zgL*YTjNFPjmMC7iGqE)kujDWv5be8oHrv+x%o5{vGO^gBA8s9H zXa7v*J!whj88;Ls(QM;jBc&z2s%xq^o?f>vMQb4QT4~XJH#c?LqiG47v;etl$pWa@ zBa#gH7mucu3^}IEv2$a|3?3ZTj#k|H9#LsXY!KpaJ$!do!;ylL<0b)3?%H8m5kES)KKc-Ni%lJNMp0tw6hi9ccs4-ipxuziJ6-y8c z^8LRGyYgtL8}3gY5(X7Uwy20EMzUwgnkDJGa(7Det-SW`_Fs-yUV%f+;cwXbI-Zw-gEs@>WuL{u3bM?9O^Hs$&l`e zZ-E!A;3huJ3cFTK^D8D4x9{}x&HYI*2RpHsBKKTSs|xQ3_X!?rGJUs%r&P*h%*KDz z1`bxGwJn8c$=bcCLO!oJ*X7K%W^L~6lmuw4pzd0=LeL}bRVDFA|eC~L@T$1G+PJ6x&zAgRz6=omU3OU1_%-BK#1 z-NQ+7RWJB)^l(Z)Z5c_ZOrL;o4oPJG&+6i-wiXsB&!$Y43 z@?Mv5Arwj01#u2rQeNo0!;^BIRlJOsMGdmku!6C%b4w;67yGEBh;z(;`L44W&xa$G!MWp+?1$g-J zF^yths^HK2KCb&;=a5>0q+x*4hA!yz7nzF{bt$Wsp{$c-8|o0VJ?dik`6 z%vWKZ-Q$|}cc1yPj+x+2iNlne~rUK0vVekaOB07dqr_}C~% zI(Ms7R5TwG$Ax+$$V9^+8FbMAS)77eoohnfMXyqBL31?Lih9`#(jyE?Z)BHGL_V#q zadTw_+JrVNRHM|Q^zcqz2eCqA28yP1eX_lOujjdh`4HDcQrh zEZ!}cn4RU-$!lYn4#sXVd6~Si**daSdT0!&kkzTF+yaybq*U zyJk(bUA9}0lDiW!P|V;FGfA#I^I=^y^Qe3Zzz*oNJb+4Z%9CI*C&w;J%EK?E2;EylWg)O zdh)X!8PtpfS5Shf_UcWR6W6>!*Vg6rr%4GuKXrfv2^V3uL!MoK4Z)iHq!KV+f`@J} zZ{qODCN(&kLz)ZqS)`hDn=)F%PX7`r$7--WkmgVjEReR|J{2VBssrzF;pF5fhE{`A z7JH+wuIaMQxPPtGI_lgGWwcCerka>_JVGI{VEV+J2!x&C5R21oed>;HqWCp7y=T^w zd29h0VcR8vyta@^wie0c5|jh2%gz#MRgQX)A*c5zdzuQ7LwD+DB|GoTPVj+Pr9Ib+ zm%~NcKayU#+v-zy2NpaNxypqvq_m7siV)-9d6JC;B4xZCuPbw|)m}gXKhG~}4&p)D zW)xZ0o?_e7ps^CzeuJQZ)jWw-v;v`)P+|3tQ3gg8ciP=+=3j{y4fTHC)Tnl7WtJ9% z8XZ!%aabzCl#Vjs0}y9viA1Hd$lMys&SPC;Joc8I1jGJZK_QyfZrmr%kE$$gbh6Ws4&>vL&%5z~)Q zV`W`ohC2Pl%xWE_T%=i(zP|U7?AgLckoniHvmx$OP}ZH91@B&TYTn*5Nti3)BV??u z%*u|B)!~|x;O>e|0h@EikafHzHpH`~c*QO4LA{)GY`D4Q4{3(@q>S4IIPK|q z0^CGJc`iK@YndA`{oMSDdy%^mw%+mKTAh~V{OC8ARTpJD!c-PJ-Vu8O$DGN2iH` zLo4gmU>#ClNJq{xz^AdhzQc2+wrk5BLOAf9+!Q;Nw)cu=^{QZ>6P%@8pw6At+1%Vr zU0_{&vNAO8Ib4J>AcJCO5|xD>;$+iFi0Jrii8 zBLY6QyoN<2)H5q)-F(q2uMJgYUd}3< z{Mf%T|5u)`SHy2Y-tt05kADtEzJp0A{rJYfCFs)5>78)Q%ei}(u_|#nXTIDdJ&_PD z&(6d!)g8IT-1)}j_qQ;maKmA4-+S&XS_ej>wg6gy-BR2q@Yu(w1CxP}bHHkT*x=kK zWwVE|alT*<^Voxcemm!KfDYEyI11N@J!(4kzqhAI@3jf!VTykK!I!wU=}VK0Au~m% zs`P8-6PfbF{)>#&tSKs|b~tWN(=t5xIzTQPty;>$`distawDF68)QejYslOPTt(_|tYI?h~^s z)VelppN($6aKkSG{44&Z?wTLImougv zC|6tC-1jGH68M-tw@2mo%-l&VtRegz3^T>FiZ*=Stq#WA59BF6Yxn(z-Bhp#I^Y<$ f;llL4GrsQpVJ1Q&Z-c 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�H0)J}>6n7ICs;7fhv^k32_4;KHx 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%0A{dpu}TDVv>A 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

H22`77xM`S9VJqw8?|P z@N2k*SXqWcAC*TUE7C*-TH(}PFc0WnTFyHrTK-0%BSNp`#zO1lw-k&zV8bC}xdD}# zN$o<^Ubv?c%Jw;ee4W(f=ppp{It&Z8UL{=uvp<7DG$1|_=n|RG+HtZg#4jk@0%ia* zw!{Wfa?(N{>()K~ytI-33|ARYH{b~IaUEsJf#yb`4qj|Pi~wdczOJ5}E!BWuES|kW z5n4-QJyxFQp0kczya$i=Qj?VtMpWz~pC0R$lP8)LYglImgYbqW(XMwu{3A9$(0?ra z2Z5}~@e85IUsoM=#W#*Y`<7OuHQM#aNb3!u{w)G$euTLlu19>Dk zen_K%tGGauHUxMx!6RIbiAc5y`Nz-wJtpb!&?5L5FbbPr5zKj_BZ64}vb8c9e^AHr z^ZjxD2B6*knn(Nt4~{+{(<9}1uJovnavI+UI(h7T6V9QYK(p1zoMLoh2T*opIX%2M zbxUaZ9B=8qU&w?h8m6;0U2P*BUrNBg%Na;LRSQKfe76^u5HZn&<5=W;GLR0{K#@{8 z7=wUBEICSN-mO5zSEDU7Z$qm7g$5g74?9Yjm}z^Krz%&LyrNyeZqedV}Zk&9>=S-VwcyeVmB{ zIDQT`(IcWv^5}=?+#sP+(RO7S5g(6-tT>Fr`hftda8$)&;_?Uhm7aNH$ZWeURI9Lr z(jrYa$&!&qC{6&ngz_P*vkD=aW8}31gl`D($9^4v*@bfOZTRgr-O=y0r(YkZB zq5j1)>d?v(tCV6D56W(uN5UU?`` zvObOX??Ramr(Y^BaXmYYMd*Ih9^0*AEycy7i zaU6hB3z4hFxOeb;aJaOGG6>ide)MIF3T0Lc82s)M1M-7_En^)>>ld5rBtnIAxgr7G zHU00Q^nsnMq5+Tf&GXt~05DA=K7qTi&x-|{Y}I)qR&g7 zYfvZeY4vSn-Ung7l5B5Q<@z|Qw18(@Hc6=sp zvvzUyi=ua^HtF-Y2|JgD0d`>UGR@dg82vtYLjw8T)pP`RAu5G=y*+JD<*3#mb_AE? zZvWlfWGSD`!f0_sXFIdN-wXV5^<=EA*TDP2YIG6Oys!7>@o;l~UJ@6-i=e&^Au48h zvbPHJc{vA)I>6zIF1)nx)@+_#bgxTFkexXP8*QC+@wW=E2ttLSp{{R)`Q&;&i0Aun zC)^KW=pbG|5@fHgiMDp(7Q@FAs2f~%Kl|E`bufYbbs0YuZcdGC@b)UI_H7k-guySK zN5qkf`XOA9t^2;Zb$lQ`_X2SknA~=8M z)S2V$ULt$=zecR8T4z2QeT!~lL_o_^ay(QWq9dC z(Y?XR^LM<5d~iVgpb$gV>i)d9Mhq#06y)`1)B`4`>t{};X#kmT`@7qp%6}LgtXu06 zLbb3C=pJohPB+KcuNZm{2)FFZn_`=5hK-S)q5+|$#`IhMrD}oyYCnpEO&UOk=nfBn zE^l4JjuzwHi*D~51g?V#URJ=B?)&}(uOpyuYQu)z2`&6;!Z7xY_a#rI#_@sTUzT>f z!{yZbgpCQJ_e1Jh+m`91HfxXHz(@DfJ)SGXIzwp=+cwUJ0nj=9lahj zk{YCO&YiZOuicFqN{zz|T&&^^JI^R&H^^tZ!flcUN!XPr)z-7hswY~B4+?*3X)e{E4;WgcoRc1kyOK1m0TdgD z8yot)K?0K@w9YTdD|hD;8?a=T3Tt?$!A-!l$kV@6d_>9Bo&Pr0)_fX#^egsN%BS37 zyk8E6HaFk<@E?|>@R@+Q$ReBTo15zq4ORoEgbnSnrTrgh*indy zX+qs*C{ZIp|DiiGkjZa85syOBSPe^#omT2Qp`eUFCM)%8u?xLF%ckdErHc@!K%Ixs zf=#VQ$k6Jw6IgH2whkb)ZsTP^Uawn;AE(->b*EQ}8>iN}bkd~rHOEl*UeAt}%$!RH zLNt%@`aNs>&$dp4DX;@VG>2>rTi9m{DYGz1UFzNIRYJ!BDi)oX{Ft?n>LE=&>s4Zk zZG@$FKuG9}!@*6}!$uNJVa%!U#>x f|38Ni`|C&IQEkAV4mc7h$RYPlS*lvXIQahphpjAS literal 0 HcmV?d00001 diff --git a/docs/design/evidence/telegram/09_sources.png b/docs/design/evidence/telegram/09_sources.png new file mode 100644 index 0000000000000000000000000000000000000000..f93e33f9c0b853e6842c00746298155fa8efa37c GIT binary patch literal 32433 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Ξ4e z*IZm9HSL&KP|4e^s<6)@d6sM2)=yg=HU4=gi*-6uAGk(zxc@xP=k%&P4Q7b#6~g~{ z9AgTX3_qUUyo@i zC|y!I0KPVOM2~oDQWo{z6>5*&N%e!s!q%FS3}kcq57fbV4;;vZC7*A_%mk*tKCT`o z^uFuL3E-!v@3OOPaTu2K`cF!*hwM+})7dGn&Y0QJm=SsTH+PXac|TZ@s82mI@cw5< z=OZ^Nb}H2*^se_x0<7^b2BIo*s|v&X&M^Ir)QTF^h2ZDUQT#WeMnG{4wd8_l1ZTbL zk|85vM8JUzn*-K7^ygxW|8Sc?RSPduTzSKP^q3KD=Td5!CkI4?cmLe62o!C~oE`lS z+UWQ{^wv`kgnI|MHBU11m`ms|<(5wAlm_7dkdt5j9 z|AO}Of4mr*m^|UNu?o!rG*NSuW$#e15LiBy*&8M{{a)q;6C>}mZ&f5tjH~^ZQ{exr z+cIHPgD`+~e&dyvJvknDKExV=X;KHVgapwA0+pBoiP5!zg?X3jVWTII< zEimlq0UVk(d3j9LG>g8uFEymSe325@`uiefpp|+vXTqw@WEgTrqmX%aZdMQf?f+a8 z$`M=eGKihwie#--_i7~Z>d+XN;NHkPe}$YMnti)hu2LdpY;(x9HyY8pO(<}rxx)#* zEG&q}X?2bln3tc__zS=+QqFX7l}>kQPNR&^LP{`vlcAtXv-nnrpgsDQm2JskwAXqo z@MjjKF^$lH$GEzIX}L%qX^Om z*Kwr@GyXx{{>xWmo3wWYXM&Djh>t*@Tu=={UGRtb(47s#lnB^YpbWad<+Dr@LC^ds zY1r}Nf8Kc8yoULo#sEI(Oc8KCV(k|@yQ8yL*OV|*a@lW?lD=@zJ$H$1{PR2`Cjxc& z)@jm8m>Yk506jQz!g=9*SWyF=CL2-k|r%mzsQD*wz6e43Jkw+hG+ zxa^n`qJ#eM0KWy-T`DmKAX?uom|X}Mxc*!qyX%;kg9~5CI{kA1eV)$!7B7Pm{0Sf0 z0ZQ@(oYWXA<$BvT|JZgl2-3>RtqF%b8;rgLl_o~6;k~c+bc5ix_ZB{^k0_cbkPTSm zgngY9><-*&@)bmj5uPJP1YlVaMRV$(*S}Ds9=SN`*sH;rbZJ|Juu~)yV`ILfd_g;e z&-Ij<8bnXERk?#?@Xnep1G%;9FS0m1@5h+~{?3#spE6*Qzm3;g7I&9xG34oIJkc&8$rEqo6s%vJaRf-pzytBO*roIDKq)D>*)z$1zm^*L-*|&aYgCZ-uh4VYtb2M6wY1G5#VgPk@mH~|l{$@V7 z0G*UbSda%?z#@Gh|m#%NF*M?HzFHW3(u&N%7Yx8TP60MqQXLW>I=F8`= zcE_@q_0Ql|s(Q7KHu}ypKno5^_t69$n#>_>5T-n($KWQ0nb*m zCVxD?Q&kTu@r7`7rl%N1w*qC-J)NN*Cyl2ZnRxZD0l`V>JDsbb>dYj$Z0OS5qo3v% zd*f~`=T{lJLx$?h8Nw%vm-AT4I~U6ZlVFwTuM2ooFDtU)cFnb0ex)N4N9h2&&JC3>~ z2CjnjE~`^tc+bERQCpnYjd{kiTy+I1^vCP!2+pP@_w)2tVZD1q;P@OupK+dIHizay z&Q;1-Vcd}YPFgu;NyVdM+R8H{B6NAG!sWcS;uYZ$g|7zsgF#7+3sDpNXFB6`Zt}Eg z2U{v=mUKt5T+x|&p36C>=hh{(tF6HHezPU$`zw$gyUU(-ig^OeI90HQFbuPGVN|Ja@I^>G7QhP^J;FRltfDnz)}ih#NdI$F8nw>4276V6{@(fGOU9nd2>R z%|R`=j0HSqIi6s)X%`F{Ian*liGV?J^&|+F40YIt-NE!-g&>neos!*(Y$J!6fg7y1 zp$b=#Ypq*8{65fEawb7fuq%s$NU?)fWZ0T+v~e=7dHs4B>V8${btVT0nuYwWSaNr+I~>U~-@zS4jvA%>7b1msjHpLC4D+3W80xXQ$K5_-(2^IY>=xI36E65_DcgT;Z8M|Jsu! zQ5Spg5D{q{mQFowT-l`ZuV#Jq>q1Y}y5`>#sSvDAQ)Ha}G8BA8yN>>SVm^CWlr?_SrvpGqG(LU#X@>Fm6KqZPkfV15MlZpH6AO&<>da@Jau z!bx_=(a?+Qnsu2YV7^sk!az7bYo7a)!diKS?c5WVR;3n``^mU@Q@ds8hbz!u(8!gO zG4*lhDj?LawP`p7-**(QaJh+HxMQKw{v+so2q5E^6J-7=J7K|V9ff@qct9r7gOQKK z(pn1(J@R)UMt+kr&L?2i(1W@ktgp`9Yar7%OAPj+mwQd4J?(x?v`D%cj&$SOF3{C} z0#LiTbS{h|V-8mNEJsZ-{xX&@Xg6sWpvSzN<`Dcix)r~}@~Y*G*m=Vaa;Z3deohNL z-NCkA?n)W`XuW)S>mr23$#c=a^=v27E?mk<(^JY^PTye?iKrKxag4M#sWPsU262K^ zjJJ~Yhi6wEXA>RkHfq&hPG%gWUlu!OMdNeN6f;|60KWMbarZy*J?kA-ObOaw&LD)) zIc1JNy2L78U>H-UD_ZdL*im!bRskA{g)an>n3zM2`JNn1ax7xdiGql{L^1nd+yYwZ zk^#f+$+VTmV=&Q|Tj=>N#i-~*Jrn|{lwgWAv&qn{mk2l_tcakg;V%5>MG8vBHc~6a zT(I@^qP*`_;}Iyg^(^Ge0=|Ny1)m5xmw0$FPMZ^WJ|tDST#(apz5`p(*TSupEL>tj zF+2*FrL{s%GTO?Y$|orgC>G1!PyRs**2Z`iiqcL1hlnRL)|w=wy%EMc2Iyk{Z)}uh znQUE(%=pklbN(s4A~yb3%Hqk{%^gD5svwd5{l1w~ujQ)6vvBX5L5Z?V+3R3XMeugZ zVtHx*`s9|?dZ0c(%)4;TZ(0)aBxUuXX&xdo0(Lro2UwPVMi`of>t#tL^9%+3Xq}(| zAJ6)WkzeMN`c1SnUM3e8N0AF0({Pt3iT>yRC^~U(Dq5yu%YxD-J4%1PtH@q9+|h9| zRjiQx>Dy}AFL=o*UhA2K=Bo)?uDYI&9Z3g#%!Wsb4ocQxdyg{}2=mOUcs&u#s{HH) zVbX=-X0#W+HGh@XU+)b9czb}i-|o~=b(f)V=Pn!{cfte!y(-e*e!;VPV4zFb{_a!obH5i`F{*m`YcBm^4 z9kc|3elA5D2KG3zvBu%s&njkr`m1I0w)zKcZ_e*tEN|v~gjv3-RsUmPSnJ7jGH|3e zA7T7s(v3JVu)qq}U2&6I-6K3;(p0w2AMv2v*gh|!*4x)Yq_+8yf__oKGSr?hw^U59 z<_NaRlhc~@jS*(GR{kpgUj5moX?W{oM$yir6m?sGWL?I#!=m8o!3PyX)co4so%du9 zMj_bT{tByn1AfaCqy?CE-IrrJuwZfTFok8U^-qHv-q2lIFX;GU&up@fP%N}`uD^i& zBPd{*?H{z%mYoIpQ*F<{;A~ia;tQ*aJx70NZ=L5ibJ(ZVknyb<*$wAOx8G);+2aZ0 zQux4kBVXFMJc;nwK^$Rv*BdU=rxFu&o-*vRzTYQKQjvKeWoaXeF z*dpUooWe$VeesYBBk67%0JYZre%+sdf$=MO;Cu}SwjQJ1 zgU4Lt3@^+a=+UggDUn5oBPk(*iWfs^JtWl?1*1UCDH}B<)zZ#bP z3X%ra-%biNY1m4tp)x326#WeUzP?P@29$*RJsaFSC|QMNFP&L|s#m&ZpP>> zY+ccvUx(zeFR7u*@|#o6jECboP0EIrs^bAIy8ndarY9H5;-LWtD2&}eMe^tT>o}YH z-5^&rZ6?wblRL~Q?v`I#d=cLFlYa0dIq^b_CNVgqokYE4ueoiL!_@XYMj1_PazwW^^*{|>y_(jip$@f`K;mAx90|L zGP0ngiv_{3!aCixTH`f|-L`!*8$iEq$zz?k3K`RXRy~B78{My2^2>kfpd{Zv{-E{E zId?gB=j@+@KLP`E1hs=VZZAfgRnw1l743DDNwREaXC*Br9hK55`*UpTW_yG zUT`b!K%!ATYuDtm2{7|(XBxnNp(W*GefzSYwG=(o^@;4d@hWKo@` zUuX{~!8ijf=kxq=^Lzeo8r|)BzhR?S zj0CCXI}!xI0qQAF6p#mL^z)LKan_w~oIwO)Eo$E7`rr*U7g}emPXq#?m$qMFb-&;~ zBCa?zKQ~+Up4jL)6U}zVGobL$1G6> zGZ+l4Kjq@CtJ?r3#*2QV2uvZ~9t~0h&X>P>Gi?39uNY>;4ctqi72GN3a^j_xN#e+KAMQ2Sek zBJ!;&o>fgmBjwmbR9Ajl;^=EEd_=K5{`uv6U^Su&*pTCc~I zZ|ux%A^eyyUuR8jerYryck@t0=(#rfg)-fXO>}F&w}uI7@TVn{J7oej#y_LG?@tY* zUqh1XJQl^+kN_cdA4#8&41iQoB~&>nZjMrIf|*InXHUJHB+-dGh9&J(GW0#~;WO^s zBzwxg<&H>dGoEt}k_<*FW{mfo3LJ9smr0p=iB*|NNg zM|^xfYH@QQ;B#96yd@$ZBgoA~8>}B_LY9$HW(2{J+F?QhBbu0#_m~{|VHE)|BSE*% z^RvXrJ_C!+_SK16VVN5l{Ks-yU(T~U13PQ>*Yb7aQ&}cmULVd032P& zxw6LH82F}{q^NEPGeyOZZ=HO;E$jJLzFy-c?IxL_D$!8_O6GU8wnCC3h~Ey#6UHN# z!>q;fkQt!%S0rln#*aQZ?}3b^=y$gl*P1!n@hROcrG88b!g#D;#fRhbwaF3|tzVv( zd;WT#Y;wz1v*s9zwr0O)upk+NS8st;8fekQ1~ft4k@|9!!nG^ku;})AI#plKZ$<&P zZ@pR`Z7%CDv4)RVsgy!APU#*w4;`G;1m$}kbGEJ_hp4r;hPZn`Y`YI26h7MygvL`_ z9gCRV+g`@RsGqxcJN=?6pPz))Jz`wrU5Hp~{MJ6u>qp2?#wXoh+=Sw)g2n7#tsQ6F zZoG>)!x++elew9<@efL2<@oxF{~k}m2fbv-(JMEnV2F`7`oCK$OhP<_HR#;2J8kGAAbL)`X3quDXN-*Y|AaCd>lOr(19ll$?%ZZP)BEjbEIW@Ub!5yGeO-Tllbtk|H=*QQJ1#5@hMUs(k=n)9= z2yS9A-ae(XSnB-c=Q#872P0q$ZjZXP(^Up-%s#cI>Kr{==&ld|nC*pTZTF=}osCDK zn<|cXO0jS<(K|DO=+XUOAA7KFe(Q8gVNOMD15{B3UBWR7EHHS1z``-og6bWiE(-jMvKpfqW^cnV*tfW@)s1rv+bj zA(bmkmXilh=aA{kK&s%PW(B3VtHzMnk%cR=dHn24 zCn2}q_Z%|Un-dp9B^fNCQx~%(AOI$3`+JL>zL8DCj^AEwIl4ekpaE?&CoR=Ud0z7pgNhESAk5 zS)+2cOx{QY^ouk$HJ(X&v3x39-Tfkkb_El=kF-XX@&CR(CwF$eG#YdtR()Ff@qFL6 zN2{K~wUg9Gt)BLHqNP5-KXJ_cu;oUmsY`t#5BV`XZE9|_=#~uyPhb*HlK*sfSLiEZ z<&|*QKV$Rlr~;C2S|FS_E#sN0@~-1j`>U7ad^RS|M-%KERdp~BAlW_X)*czUx;Zw< zE`otJkTajA$LM@E)ivR3T0qt0$N*irJ8tD&2hN^v>-&*ZhF#_C;A<9jnt2x&p?*O> zz0@Bjfq!Px8nli}cg4dY>n`PHZ}Y?t={^m{61FGwewGU7D1IvmTMx;JJ3q1LMVBoJA|1LG9#zw&;u z=i?Nj6EW)Y@V&nBohmi?);;P9Z~we(Bdm{K-onG<9sjl!`1)|uL~l8+hF`N{;&AI_ zO?KWC|M91$)?R)#vLd^`ozqEip%aIj?G@^3y)U=Yj$RbJl%>%fDTu7$-%RpnHw!V_ zlzAf`DzqqO{k2)Li2E-IGi%b3x_prk{C#;BV5`sj%qROvi>@~3#T$)8E&-gYZamM$ t`<1;r$zT0%$&1$O{{Q^p2))8r&PCaEO{owP(%-nDrlO@>{^~=>{{|gzYX1NL literal 0 HcmV?d00001 diff --git a/docs/design/evidence/telegram/README.md b/docs/design/evidence/telegram/README.md new file mode 100644 index 0000000..a31b50a --- /dev/null +++ b/docs/design/evidence/telegram/README.md @@ -0,0 +1,17 @@ +# Telegram bot — evidence (2026-10-06) + +Rendered from the **rich_message blocks Telegram stored** for real replies of @BasiraCheckBot (fetched back with a +user session after `scripts/live_e2e.py` ran against https://basirapp.site). The drawing is a Telegram-like dark +theme (`integrations/telegram/scripts/preview_blocks.py`); the structure — headings, pull-quotes, tables, collapsible sections, buttons and +their styles — is exactly what the server returned. + +| File | Input | +|---|---| +| `01_start.png` | `/start` | +| `02_found_quran.png` | «قال تعالى: ﴿إن الله مع الصابرين﴾» | +| `03_needs_review_quran.png` | «قال تعالى: ﴿إن الله علي كل شيء قدير﴾» — «علي» / «عَلَىٰ» marked | +| `04_not_found.png` | «قال ﷺ: «الدين المعاملة»» — search buttons only | +| `05_partial_hadith.png` | «طلب العلم فريضة على كل مسلم ومسلمة» — «ومسلمة» marked | +| `07_image_hadith.png` | an image of a hadith → OCR text first, `needs_review/image_unconfirmed` | +| `08_channel_forward.png` | a channel post forwarded to the bot (ayah + hadith, «رواه البخاري») | +| `09_sources.png` | `/sources` | diff --git a/integrations/telegram/.env.example b/integrations/telegram/.env.example index 9879e55..aaa3f9a 100644 --- a/integrations/telegram/.env.example +++ b/integrations/telegram/.env.example @@ -5,6 +5,7 @@ BASIRA_WEB_URL=https://basirapp.site BASIRA_EVAL_KEY= # optional, sent as X-Eval-Key BOT_RATE_PER_MIN=10 # per user, in memory MAX_TEXT=5000 +BOT_RICH=1 # Telegram Rich Messages (Bot API 10.3); 0 = classic HTML # Webhook mode (optional; polling when empty) TELEGRAM_WEBHOOK_URL= TELEGRAM_WEBHOOK_SECRET= diff --git a/integrations/telegram/README.md b/integrations/telegram/README.md index 70839fd..ca008b2 100644 --- a/integrations/telegram/README.md +++ b/integrations/telegram/README.md @@ -1,8 +1,28 @@ # Basira Telegram bot A thin client over the public Basira API. Send or forward a text or an image that quotes the Quran or Hadith; the -bot replies with the status, the source text **verbatim**, its reference, the differing words in **bold** (from the -API `diff`), source/search links and the transparency line. Live: **[@BasiraCheckBot](https://t.me/BasiraCheckBot)**. +bot replies with the status, the source text **verbatim**, its reference, the differing letters **marked** (from the +API `diff`), source/search buttons and the transparency line. Live: **[@BasiraCheckBot](https://t.me/BasiraCheckBot)**. + +## Layout — Telegram Rich Messages (Bot API 10.3) +Each result is **one** right-to-left rich message (`sendRichMessage`, then `editMessageText.rich_message` over a +«جارٍ الفحص…» placeholder), up to 32 768 characters instead of 4 096: + +| Block | Content (all from the API or `messages/ar.json`) | +|---|---| +| `

` + status strip | 🔎 نتيجة الفحص · ✅ 1 وُجد · ⚠️ 1 يحتاج مراجعة · اقتباسان | +| `

` per quote | state icon + label + kind, `1/2` counter | +| paragraph | `messages.status[message_key]` | +| `
` + cite «نصك — كما كتبته» | the user's quote, differing words ``ed | +| `