Skip to content

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Image Search Bot 🤖🖼️

Бот для поиска случайных изображений с Imgur, Prnt.sc, Paste.pics, Freeimage и Kappa.lol. Находит рабочие ссылки на картинки, проверяет их доступность и отправляет изображения в Telegram-чат.

📌 Источник вдохновения

Часть идей была взята у VladislavMilev/prnt.sc_parser, JustEnotik/PrntSCParser, medwuu/prnt.sc-parser.


🔧 Установка и настройка

Требования

  • Python (рекомендуемые версии: 3.9 или 3.13.3)
  • Telegram аккаунт
  • Созданный бот через @BotFather

1. Установка зависимостей

Установите необходимые библиотеки:

pip install python-telegram-bot==20.3 aiohttp==3.9.3 beautifulsoup4==4.12.2 pillow==10.3.0

Или добавьте зависимости из файла requirements.txt:

pip install -r requirements.txt

2. Настройка бота

  1. Получите токен вашего Telegram-бота у @BotFather.
  2. Создайте файл token.txt в той же папке, где находится файл bot.py, и вставьте туда токен.

Пример файла token.txt:

1234567890:ABCD_EFGHIJKLMNOPQRSTUVWXYZ123456

3. Запуск

Запустите бота командой:

python bot.py

🚀 Как использовать

После запуска бота отправьте команду /start, чтобы увидеть список доступных команд.

Доступные команды:

  • /getimg <5|7> <1-50> — поиск случайных изображений на Imgur
    • <5|7>: длина кода (5 или 7 символов)
    • <1-50>: количество изображений (от 1 до 50)
    • Пример: /getimg 5 10
  • /getprnt <1-50> — поиск случайных изображений на Prnt.sc
    • Пример: /getprnt 5
  • /getpastenow <1-50> — поиск случайных изображений на Paste.pics
    • Пример: /getpastenow 7
  • /getfreeimage <1-50> — поиск случайных изображений на Freeimage
    • Пример: /getfreeimage 3
  • /getkappa <1-50> <1-50> — поиск случайных изображений на Kappa.lol
    • Пример: /getkappa 20
  • /getall <1-50> — поиск на всех источниках одновременно (Imgur, Prnt.sc, Paste.pics, Freeimage)
    • Пример: /getall 10
  • /stop — остановить текущий поиск
  • /repeat — повторить последний поиск

Использование кнопок

Для удобства навигации используйте кнопки, которые появляются в чате после запуска бота:

  • ВСЕ ИСТОЧНИКИ — поиск по всем источникам
  • PRNT.SC — поиск на Prnt.sc
  • IMGUR — поиск на Imgur (затем выбирается длина кода: 5 или 7 символов)
  • PASTENOW — поиск на Paste.pics
  • FREEIMAGE — поиск на Freeimage
  • KAPPA — поиск на Kappa.lol
  • ПОВТОРИТЬ — повторить последний поиск
  • СТОП — завершить поиск

После выбора источника (кроме Imgur) нужно выбрать количество изображений (1, 3, 5, 10, 15, 25, 50). Для Imgur сначала выбирается длина кода (5 или 7), а затем количество.


⚠️ Важно

  • Длина кода для источников:
    • Prnt.sc: 6 символов
    • Paste.pics: 5 символов
    • Freeimage: 7 символов
    • Kappa.lol: 5 и 6 символов
    • Imgur: 5 или 7 символов (на выбор)
  • Бот проверяет доступность изображений перед их отправкой
  • Поддерживаются форматы: GIF, JPG, PNG (и возможно видео и документы у kappa.lol)
  • Максимальный размер группы изображений: 10 изображений за раз
  • Между командами установлен кулдаун 3 минуты для предотвращения злоупотребления
  • Если у источника проблема, то он на 10 минут отключается

🔄 Как работает поиск по всем источникам

При выборе команды /getall или кнопки "ВСЕ ИСТОЧНИКИ", бот будет искать изображения одновременно на всех источниках. Распределение поиска регулируется весовыми коэффициентами (по умолчанию):

  • Imgur (5 символов): 10%
  • Imgur (7 символов): 20%
  • Prnt.sc: 10%
  • Paste.pics: 20%
  • Freeimage: 20%
  • Kappa: 20%

Настройки можно изменить в коде бота (переменная SOURCE_WEIGHTS).


📝 Логи

Все события и ошибки работы бота сохраняются в файл image_bot.log. Это упрощает отладку и мониторинг работы.


⏹ Остановка

  • Для отмены текущего поиска отправьте команду /stop или нажмите кнопку СТОП
  • Для полного выключения бота нажмите Ctrl+C в терминале

⚠️ Известные проблемы

Проблема работы в групповых чатах Бот в текущей реализации не поддерживает работу в групповых чатах (беседах). Это связано с особенностями архитектуры и обработки сессий.


✨ Контрибьютинг

Если вы хотите улучшить проект, открывайте Issues или отправляйте Pull Request. Будем рады вашему вкладу!


About

Telegram bot for finding random images from Imgur and prnt.sc.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages