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-0.1.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jojogram-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e54d697bf9f0144d7215b77457eb3b4e2fe765aa2c391229960dec9f6ac39ffd
MD5 fd172cdbfda6047a773604c6969fe1bc
BLAKE2b-256 e26e1f9c46230b90d05b2e07137f413ce5ceff6fd8f29569a3dd97abb826d42e

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