Metadata-Version: 2.4
Name: kdefender-wrapper
Version: 0.3.0
Summary: A Telegram bot wrapper for K-Defender security
Author-email: Fire-K <karpov.konstantin.s@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/FIRE-K/K-Defender
Project-URL: Issues, https://github.com/FIRE-K/K-Defender/issues
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Framework :: AsyncIO
Classifier: Topic :: Security
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# K-Defender-wrapper

🛡️ **K-Defender-wrapper** is an async Python wrapper that integrates Telegram bots
with **K-Defender**, providing centralized message filtering and injection protection.

Designed for **aiogram / Telethon-based bots**.

---

## Features

- Async-safe verdict requests
- Telethon-based backend listener
- Decorator-based protection (`@kdefender_check`)
- Injection detection (via K-Defender)
- Safe-by-default blocking
- Zero business logic coupling

---

## Installation

```bash
pip install kdefender-wrapper
```

## Quick Start
```python
import asyncio
from kdefender_wrapper import setup, kdefender_check

await setup(
    bot=bot,
    url=URL,
    chat_token=CHAT_TOKEN,
    lang="en" # language
)

@kdefender_check()
async def handler_auto_parameter_detection(message):
    await message.answer("✅ Message accepted")
# OR
@kdefender_check(param="message")
async def handler_with_parameter(message):
    await message.answer("✅ Message accepted")
```

## How It Works
1. User message is intercepted
2. Text is sent to K-Defender group
3. JSON verdict is awaited
4. Message is allowed or blocked based on verdict
5. All checks are serialized and timeout-safe.
