Расскажите о себе и сути проекта?
ImgMacroBot — это inline бот для Telegram для генерации мемасов (а точнее image macro'сов)
Как появилась идея? Что вдохновило?
Помню когда-то, чтобы удачно пошутить достаточно было наложить незамысловатый текст Impact'ом на какую-нибудь картинку и запостить на борду. Да и сейчас иногда хочется запостить в беседу старичка-Боромира, который не ищет лёгких путей в Мордор, а лезть в онлайн мемогенератор — лень. Вот я и решил заавтоматизировать свои любимые шаблоны в телеграм-боте.
Что вошло в прототип и сколько времени на него было потрачено?
В прототипе 5 мемчиков на английском и русском. Ушло пару недель по вечерам.
Поддерживается не слишком много шаблонов, полный список можно глянуть в README проекта, но он будет потихоньку расти, пока я не забью. Если чего-то не хватает — можно завести issue.
Какой технологический стек вы использовали? Почему?
Сам бот написан Kotlin / Ktor, потому что люблю это дело.
Текст на картинках рисуется с помощью Skija — это Java-обёртка над довольно интересной Skia, которая в ваших андроедах и хромах, ага. Поставьте лайк на GitHub при случае, либу пилит Tonsky практически в одинчку, наверняка вы читали его блог.
Картинки заливаются в Imgur, потому что это бесплатно.
Кеш в Oracle Autonomous Transaction Processing (Oracle 21c). И тут вы наверное такие: чёёё? Нафига аж Oracle в пет-проекте?
Всё нормально. Просто Oracle пытаются занять своё место под Солнцем в мире облачных решений и предлагают абсолютно бесплатно на неограниченный период времени 2 виртуалки и 2 инстанса этого самого (да ещё и managed) Oracle в рамках Always Free Tier. Почему бы и не взять?
Базовый мониторинг — через Grafana Cloud. Опять же, потому что абсолютно бесплатно.
С какими самыми неожиданными трудностями пришлось столкнуться?
Inline боты не могут отдавать контент напрямую клиентам. Т.е. нельзя просто так… а в прочем что это я… Давайте покажу, как это работает.
Набираете в любом Телеграм-чате "@ImgMacroBot нельзя просто так взять и отдать контент из inline бота" и получаете картинку:
Видите, какой полезный бот?
Так вот, инлайн боты могут лишь возвращать URL к ресурсам, уже размещённым где-то (картинки, видосы, статьи), но не сами эти ресурсы. Приходится вначале загружать куда-то картинку, а потом возвращать ссылку на неё.
Imgur, в принципе, неплох для такого, но API у него убого задокументировано и выглядит так, словно прямо завтра его закроют.
Oracle хоть и раздаёт бесплатные БД в своём облаке, те имеют свойство тушиться после недели простоя. Приходится периодически пропинговывать базу, записывая туда таймстемпы.
Сколько потратили и заработали? Есть идеи как это можно монетизировать?
Потратил 0 денег, и часов 50 времени. Заработал тоже ничего. Поковырял Skia и Oracle Cloud с Grafana, получил какой-никакой опыт, уже неплохо.
Бот-то довольно нишевый, написан по угару (а может и не угарно это всё, а аутично), развивать как-то и монетизировать особо не планировал.