Привет! Давно ничего не писал. Обещанного в прошло статье бота закончил, проект оказался довольно сложным, но опыта и знаний заметно прибавилось. А значит время начать новый проект! В этот раз, вдохновившись глубочайшими мыслями японских поэтов-философов, мы будем делать бота, который не просто постит хокку, а сам пишет и подбирает картинку по теме. Строго говоря, бот не придумывает хокку, а формирует новые из уже существующих, но хуже, как мне кажется, он от этого не становится. Итоговый код я оставлю на своём GitHub, а за работой бота можно следить в этом Телеграм канале. Подпишитесь, очень хочу, чтобы этот канал набрал аудиторию. Готовый результат Первым делом нужно создать базу хокку, из которой наш бот будет брать строчки своих стихов. Для этого пришлось изучить несколько сотен хокку и выбрать подходящие. Вставляем всё в текстовый документ, чтобы у нас всегда была возможность добавить строки. Всего 1903 строки, так как хокку всегда состоят из трёх строк, то такого набора хватит на примерно столько вариантов: Как вы уже могли догадаться, наш бот будет брать 3 случайных строки из списка и формировать из них хокку. Казалось бы, должно получиться нечто совсем бессмысленное, но учитывая специфику жанра, даже самые бредовые сочетания будут иметь (очень глубокий) смысл. С именами авторов мы поступим таким же образом, а год будем генерировать случайный от 0 до 2022 года (н.э или до н.э). В итоге у нас получилась такая функция: Про последние 4 строки подробнее далее. Теперь наш бот способен выводить хокку, если прописать message внутрь bot.send_message. Примерно так: Но так как нам этого мало, давайте научим бота отправлять нам картинку, желательно в той же стилистике и с соответствующей тематике. Как вариант, можно было бы найти несколько изображений руками и выводить их в случайном порядке. Но так нам не получится сделать так, чтобы картинки соответствовали по смыслу тексту хокку. Поэтому мы будем искать (парсить) наши картинки в поиске Яндекса. На помощь нам тут приходит библиотека request и волшебный алгоритм, написанный давно моим близким другом. Итак, ищем картинки в поиске, извлекаем ссылку из кода страницы и вуаля, бот вставляет случайную картинку. Чтобы содержание её соответствовало нашим стихам, посылаем поисковой запрос в форме 'Японская живопись + {строчка из хокку}'. То есть в 28-й строке функции hokky_bot м посылаем такой запрос в функцию picture (о ней далее), откуда мы отправляем наш запрос в функцию request_photo. Штош, нам удалось сделать, чтобы бот выводил то что нам нужно. Такой результат меня уже более чем устраивает, но как насчёт сделать из картинки полноценное изображение, содержащее хокку. Это позволит нам убрать текст из постов и улучшить общий вид изображений. Для этого нам и нужна функция picture. В этом варианте решения мы записываем найденный запрос в файл img.jpg, после чего уже открываем для редактирования (библиотека Pillow), куда вставляем наш message. В итоге после настройки и подбора разных шрифтов, лучшее что у меня вышло выглядит так: Но тут уже не угадаешь, какое у нас будет изображение, тёмное или светлое, а фильтры и т.п. вставлять не хочется. Поэтому этот вариант мы оставим для других проектов, а пока довольствуемся результатом. Всё! Ещё раз напоминаю, код проекта можно найти на GitHub. Телеграм канал с хокку. Подпишитесь, мне будет очень приятно. Если есть идеи, как можно доработать бота, делитесь в комментариях. Всем пока, до встречи в новых статьях!  ученик гикбрейнс, будущий ml инженер