Бот для поиска случайных изображений с 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
Установите необходимые библиотеки:
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- Получите токен вашего Telegram-бота у @BotFather.
- Создайте файл
token.txtв той же папке, где находится файлbot.py, и вставьте туда токен.
Пример файла token.txt:
1234567890:ABCD_EFGHIJKLMNOPQRSTUVWXYZ123456
Запустите бота командой:
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. Будем рады вашему вкладу!