Skip to main content

Helper library for aiogram bots to analyze Telegram photos (format, size, EXIF, sender info).

Project description

jojogram

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

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

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

Установка

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

pip install jojogram

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

pip install .

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

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

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

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

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

from jojogram import analyze_photo_message, PhotoAnalysisResult, JojogramConfig

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

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) в своём хэндлере и используете результат так, как вам нужно.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jojogram-1.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file jojogram-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: jojogram-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for jojogram-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31dae538eee340bfa6aef6792097f08f62dbe71a0d4663265e12a95948bb074e
MD5 9813e6bb014e13da717d662de19dd623
BLAKE2b-256 ed9b7060e35d407f7a2d43b977ae417c24c97a53e1d85f15a1a9b5329917f4c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page