Metadata-Version: 2.4
Name: jojogram
Version: 0.1.1
Summary: Helper library for aiogram bots to analyze Telegram photos (format, size, EXIF, sender info).
Author: COLT
License: MIT
Keywords: aiogram,bot,exif,jojogram,photo,telegram
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Requires-Dist: aiogram<4.0.0,>=3.4.0
Requires-Dist: exifread<4.0.0,>=3.0.0
Requires-Dist: pillow<11.0.0,>=10.0.0
Description-Content-Type: text/markdown

# jojogram

Небольшая библиотека‑надстройка над `aiogram` для Telegram‑ботов, которая помогает анализировать фотографии:

- **Кто отправил фото** — id, username, полное имя.
- **Технические параметры** — формат, размер в пикселях, примерный размер файла, MIME‑тип.
- **Путь к файлу в Telegram** — `file_path`, `file_id`, `file_unique_id`.
- **EXIF‑данные** (если есть) — например, автор, камера и т.п.

Основная функция — `analyze_photo_message(message)`, которая принимает `aiogram.types.Message` с фотографией и возвращает объект `PhotoAnalysisResult`.

## Установка

После публикации на PyPI:

```bash
pip install jojogram
```

Локально из исходников (из корня проекта, где лежит `pyproject.toml`):

```bash
pip install .
```

Зависимости, которые подтянутся автоматически:

- `aiogram>=3.4.0,<4.0.0`
- `Pillow>=10.0.0,<11.0.0`
- `exifread>=3.0.0,<4.0.0`

## Быстрый старт

### Импорт библиотеки

Основные объекты, которые экспортирует пакет:

```python
from jojogram import analyze_photo_message, PhotoAnalysisResult, JojogramConfig
```

### Простой бот, который отвечает информацией о присланном фото

```python
from aiogram import Bot, Dispatcher, F
from aiogram.types import Message
from aiogram.enums import ParseMode
from aiogram.filters import CommandStart
from aiogram.types import ContentType

from jojogram import analyze_photo_message


API_TOKEN = "PUT_YOUR_BOT_TOKEN_HERE"


async def on_start(message: Message) -> None:
    await message.answer(
        "Привет! Отправь мне фото, и я расскажу о нём информацию."
    )


async def on_photo(message: Message) -> None:
    result = await analyze_photo_message(message)
    await message.answer(result.human_readable)
```

Полностью рабочий пример есть в файле `example_bot.py` (или можете посмотреть `main.py`).

## Возвращаемая структура

Класс `PhotoAnalysisResult` содержит:

- `from_user_id`, `from_user_username`, `from_user_full_name`
- `file_id`, `file_unique_id`, `file_size_bytes`
- `width`, `height`, `mime_type`, `file_path`
- `image_format`, `mode`
- `exif` — словарь с EXIF‑тегами
- `human_readable` — готовая строка для отправки пользователю

## Использование вместе с aiogram

Библиотека не вмешивается в архитектуру бота: вы просто вызываете `analyze_photo_message(message)` в своём хэндлере и используете результат так, как вам нужно.

