Помните я как-то делал телеграм бота на питоне? Так вот я решил сейчас вспомнить былые времена.
Во-первых, периодически мне писали с вопросами подписчики и просто люди, которые натыкались на мою недописанную статью. Значит, тема интересная. Да и информации с гулькин нос.
Во-вторых, на этот раз появилась реальная и не очень сложная задача. Если коротко, то хочу написать бота, который позволил бы мне прикинуть, сколько стоит реклама в телеграме в зависимости от тематики. Такое уже, разумеется, есть, на том же телеметре, но это платно.
Думаю, будет не лишним сделать это самому, подняв свой скилл, раз уж я решил оживить канал. Да и с вами хочется чем-то полезным поделиться.
Бот буду на JS писать. На данным момент уже второй день копаюсь в библиотеке TelegrafJS. Док-я у нее не очень на мой взгляд, приходится копаться в исходниках и разбираться самому.
Во-первых, периодически мне писали с вопросами подписчики и просто люди, которые натыкались на мою недописанную статью. Значит, тема интересная. Да и информации с гулькин нос.
Во-вторых, на этот раз появилась реальная и не очень сложная задача. Если коротко, то хочу написать бота, который позволил бы мне прикинуть, сколько стоит реклама в телеграме в зависимости от тематики. Такое уже, разумеется, есть, на том же телеметре, но это платно.
Думаю, будет не лишним сделать это самому, подняв свой скилл, раз уж я решил оживить канал. Да и с вами хочется чем-то полезным поделиться.
Бот буду на JS писать. На данным момент уже второй день копаюсь в библиотеке TelegrafJS. Док-я у нее не очень на мой взгляд, приходится копаться в исходниках и разбираться самому.
Пока я разбираюсь с тем, как писать тг ботов, может имеет смысл вам накидать полезной информации, что я нашел, и описать некоторые крутые фичи самой библиотеки? Думаю, вы будете не против.
Вообще для JS, а конкретно Node.js, существует 7 библиотек. Если вас интересует библиотека для другого языка типа python или php, то можете заглянуть сюда. Тут приведен список с коротким описанием каждой отдельной библиотеки.
Вернемся к JS. Не буду расписывать про каждую из них, затрону лишь первые 4 по популярности библиотеки:
––> Node-Telegram-bot. На гитхабе 4.3к звезд. Сам лично ей не пользовался, лишь мельком глянул, но вразумительной документации не нашел, как и толковых примеров, поэтому обошел ее стороной.
––> Telegraf. На гите 3.3к звезд. Позиционируется как полностью поддерживающая Bot API библиотека (что очень круто). Документация не самая дружелюбная (по крайней мере для меня как нуба), но хотя бы есть хоть какие-то примеры использования.
––> telebot. На гите 926 звезд. Есть примеры реализации различных фич, и подобие документации.
––> botgram. На гите 178 звезд. При столь малой популярности на удивление имеется документация, туториалы и примеры.
Пораскинув мыслями, я выбрал TelegrafJS. Со всей документацией можно ознакомиться на сайте.
Мне понравилось, что она поддерживает самый последний Telegram Bot API (версия 4.8, от 24.04.20). Также следует отметить, что имеется приличное количество примеров, часть которых можно найти на гите, часть на сайте.
Есть куча фич, которые очень сильно помогают при разработке. К примеру:
• Имеются middlewares, которые позволяют модифицировать принятые через телеграм данные прежде, чем они попадут в контроллер.
• Есть сессии (Sessions), имеющие возможность хранить информацию без привязки к контроллеру.
• Есть Вебхуки. Их использование позволяет не трезвонить постоянно серверам телеграма с целью узнать, не обновились ли какие-нибудь данные. Наоборот, они сами вам сообщат, когда произойдут изменения. Конечно, другие либы тоже такое умеют, но все же приятно.
• Можно использовать html разметку для текста.
• И на последок: есть возможность создавать свои «сценарии» и вызывать их в зависимости от определенных условий. Также можно создавать цепочки событий, которые 100% выполнятся в нужном вам порядке.
В общем, библиотека имеет много полезного для разработки, но лично для меня порог вхождения высоковат. Понятно, что написать простого бота, который бы вас приветствовал, минутное дело. Но чтобы сделать что-то по-настоящему стоящее, нужно понять, как работает каждая функция по отдельности и в связке с другими, на что сейчас я и трачу время. Причем копаться приходится в исходниках. Может это и не плохо, но непривычно.
В скором времени поделюсь наработками с вами. Да пребудет с вами JavaScript.
Вообще для JS, а конкретно Node.js, существует 7 библиотек. Если вас интересует библиотека для другого языка типа python или php, то можете заглянуть сюда. Тут приведен список с коротким описанием каждой отдельной библиотеки.
Вернемся к JS. Не буду расписывать про каждую из них, затрону лишь первые 4 по популярности библиотеки:
––> Node-Telegram-bot. На гитхабе 4.3к звезд. Сам лично ей не пользовался, лишь мельком глянул, но вразумительной документации не нашел, как и толковых примеров, поэтому обошел ее стороной.
––> Telegraf. На гите 3.3к звезд. Позиционируется как полностью поддерживающая Bot API библиотека (что очень круто). Документация не самая дружелюбная (по крайней мере для меня как нуба), но хотя бы есть хоть какие-то примеры использования.
––> telebot. На гите 926 звезд. Есть примеры реализации различных фич, и подобие документации.
––> botgram. На гите 178 звезд. При столь малой популярности на удивление имеется документация, туториалы и примеры.
Пораскинув мыслями, я выбрал TelegrafJS. Со всей документацией можно ознакомиться на сайте.
Мне понравилось, что она поддерживает самый последний Telegram Bot API (версия 4.8, от 24.04.20). Также следует отметить, что имеется приличное количество примеров, часть которых можно найти на гите, часть на сайте.
Есть куча фич, которые очень сильно помогают при разработке. К примеру:
• Имеются middlewares, которые позволяют модифицировать принятые через телеграм данные прежде, чем они попадут в контроллер.
• Есть сессии (Sessions), имеющие возможность хранить информацию без привязки к контроллеру.
• Есть Вебхуки. Их использование позволяет не трезвонить постоянно серверам телеграма с целью узнать, не обновились ли какие-нибудь данные. Наоборот, они сами вам сообщат, когда произойдут изменения. Конечно, другие либы тоже такое умеют, но все же приятно.
• Можно использовать html разметку для текста.
• И на последок: есть возможность создавать свои «сценарии» и вызывать их в зависимости от определенных условий. Также можно создавать цепочки событий, которые 100% выполнятся в нужном вам порядке.
В общем, библиотека имеет много полезного для разработки, но лично для меня порог вхождения высоковат. Понятно, что написать простого бота, который бы вас приветствовал, минутное дело. Но чтобы сделать что-то по-настоящему стоящее, нужно понять, как работает каждая функция по отдельности и в связке с другими, на что сейчас я и трачу время. Причем копаться приходится в исходниках. Может это и не плохо, но непривычно.
В скором времени поделюсь наработками с вами. Да пребудет с вами JavaScript.
Пока рылся в интернете в поисках годных туториалов и исходников по ботам, нашел книгу Building Telegram Bots. Сразу скажу, что лично мне она не зашла, но вдруг кому-то она покажется полезной.
Книга свежая (2019 года), на английском языке. Ее суть в том, что она содержит простенькие и короткие примеры создания ботов на 12 языках (Ruby, Nim, Crystal, Rust, D, C++, Clojure, Java, Go, Elixir, Node.js и Python). Несмотря на такое обилие, каждый язык рассматривается бегло без особых пояснений.
Она может подойти на самом старте изучения, когда ты еще даже о существовании библиотек не вкуриваешь. Однако если говорить про углубленную разработку, то я бы не стал тратить время. Хотя претензия даже не в этом. Сказать в чем? Она стоит в среднем 2000 руб, но не понятно, за что? За такие деньги можно купить реально крутые технические IT книги.
Не может пдф’ка, в которой с открытых репозиториев вставлены примеры, стоить как серьезное полноценное издание.
В любом случае всем желающим читателям-дебагерам она достанется бесплатно. К ней также прилагается репозиторий с примерами.
С уважением, @arutemu_su
Книга свежая (2019 года), на английском языке. Ее суть в том, что она содержит простенькие и короткие примеры создания ботов на 12 языках (Ruby, Nim, Crystal, Rust, D, C++, Clojure, Java, Go, Elixir, Node.js и Python). Несмотря на такое обилие, каждый язык рассматривается бегло без особых пояснений.
Она может подойти на самом старте изучения, когда ты еще даже о существовании библиотек не вкуриваешь. Однако если говорить про углубленную разработку, то я бы не стал тратить время. Хотя претензия даже не в этом. Сказать в чем? Она стоит в среднем 2000 руб, но не понятно, за что? За такие деньги можно купить реально крутые технические IT книги.
Не может пдф’ка, в которой с открытых репозиториев вставлены примеры, стоить как серьезное полноценное издание.
В любом случае всем желающим читателям-дебагерам она достанется бесплатно. К ней также прилагается репозиторий с примерами.
С уважением, @arutemu_su
Друзья, хотите увидеть бота, сделанного за пол дня сухого времени? Можете оценить плод моих творений.
Сначала опишу, что к чему. В общем изначально хотел сделать бота для анализа рекламных характеристик (для закупов на канал). Оказалось, что задача почти невыполнимая, ибо парсить инфу мне надо было с закрытых каналов, что невозможно, если бот не в админке. Я как-нибудь подробней про подводные камни расскажу, суть в том, что эту идею отложил.
Но руки то чешутся. Собственно, один мой друг владеет агентством по продвижению, сейчас они делают себе сайт. Ну я и решил сделать им бота для приема заявок прямо с телеграма. Думаю, что им будет полезно, и я не абстрактными вещами займусь.
По сути получился интерфейс их сайта, только в тг. В целом задача бота – познакомить потенциального клиента с услугами агентства и дать возможность клиенту оправить заявку.
Пока что бот сыроват, но вот с чем уже успел поработать:
Вообще работы еще много. Предстоит разобраться со «сценами». Это очень крутая фича в telegraf.js, но я еще не до конца разобрался. Она позволяет создавать отдельные сцены, прописывать, когда пользователь входит в сцену и выходит из нее. То есть программно можно ограничить пользователя так, чтобы он ничего лишнего не натворил, при этом без тонны лишнего кода.
Также надо разбить код. Убрать его повторение, добавить обработку ошибок и прочее. В принципе, это довольно интересное дело, скажу я вам. Вот бы знать, сколько за таких ботов на рынке платят...
Собственно, сам бот @deepAnal_bot
С уважением, @arutemu_su.
Сначала опишу, что к чему. В общем изначально хотел сделать бота для анализа рекламных характеристик (для закупов на канал). Оказалось, что задача почти невыполнимая, ибо парсить инфу мне надо было с закрытых каналов, что невозможно, если бот не в админке. Я как-нибудь подробней про подводные камни расскажу, суть в том, что эту идею отложил.
Но руки то чешутся. Собственно, один мой друг владеет агентством по продвижению, сейчас они делают себе сайт. Ну я и решил сделать им бота для приема заявок прямо с телеграма. Думаю, что им будет полезно, и я не абстрактными вещами займусь.
По сути получился интерфейс их сайта, только в тг. В целом задача бота – познакомить потенциального клиента с услугами агентства и дать возможность клиенту оправить заявку.
Пока что бот сыроват, но вот с чем уже успел поработать:
• С обычными и inline клавиатурами. Обычная в данном случае служит как основное меню, где можно посмотреть услуги компании, ее портфолио, контакты, вернуться на главную, и , разумеется, оставить заявку. Inline клавиатура служит для переключения внутри вышеописанных вкладок. Это довольно удобно, ибо вместо засорения экрана сообщениями ты можешь с запросом пользователя постоянно редактировать предыдущее сообщение.• С реакциями бота на текст и команды.• С асинхронными запросами. Дело в том, что те показатели, которые отображены на главной странице их сайта, постоянно меняются. Я хочу парсить эту инфу с их сайта и выводить через бота, чтобы данные были постоянно актуальными. Пока что эта фича еще не до конца прикручена, но вопрос лишь времени.Вообще работы еще много. Предстоит разобраться со «сценами». Это очень крутая фича в telegraf.js, но я еще не до конца разобрался. Она позволяет создавать отдельные сцены, прописывать, когда пользователь входит в сцену и выходит из нее. То есть программно можно ограничить пользователя так, чтобы он ничего лишнего не натворил, при этом без тонны лишнего кода.
Также надо разбить код. Убрать его повторение, добавить обработку ошибок и прочее. В принципе, это довольно интересное дело, скажу я вам. Вот бы знать, сколько за таких ботов на рынке платят...
Собственно, сам бот @deepAnal_bot
С уважением, @arutemu_su.
Немного картинок бота на случай, если я уйду спать, и кто-то захочет потестить.
Друзья, слушайте! Есть мысли и дикое желание не просто показывать результат работы написанных ботов, но и некоторые подводные камни объяснять с точки зрения разработки. Или даже целый туториал запилить, где будет мой ход разработки, повторив который, вы получите и опыт и своего готового бота.
Кстати, сделанный за вчера бот ребятам понравился. Когда их сайт будет полностью готов, я доведу его до продакшн версии. Интересно, во сколько оценится моя работа с их точки зрения…
Сейчас, к слову, не теряю времени и делаю бота для своего чайного магазинчика. Хочу поработать с парсингом, асинхронными запросами и «сценами», а после поделиться с вами.
Спасибо, что читаете. Так что, писать мануалы?
Кстати, сделанный за вчера бот ребятам понравился. Когда их сайт будет полностью готов, я доведу его до продакшн версии. Интересно, во сколько оценится моя работа с их точки зрения…
Сейчас, к слову, не теряю времени и делаю бота для своего чайного магазинчика. Хочу поработать с парсингом, асинхронными запросами и «сценами», а после поделиться с вами.
Спасибо, что читаете. Так что, писать мануалы?
В конце ’18 года я брал интервью у одного android-разраба и выкладывал на этом канале. Если судить по обратной связи, то людям такой формат тогда зашел. Да и мне понравилось. Тут можете глянуть.
Почему бы не возродить этот формат снова? Сейчас начал искать человека, который мог бы с интересной подачей рассказать про свой путь прогера. И это не обязательно будет сотрудник топовой компании. Напротив, иногда у фрилансеров можно выведать куда более интересную информацию, так как они не связаны контрактами и прочим.
Почему бы не возродить этот формат снова? Сейчас начал искать человека, который мог бы с интересной подачей рассказать про свой путь прогера. И это не обязательно будет сотрудник топовой компании. Напротив, иногда у фрилансеров можно выведать куда более интересную информацию, так как они не связаны контрактами и прочим.
Пока работаю над ботом, поделюсь некоторыми новостями касаемо телеграма:
Дай бог, чтобы телега такой и оставалась. Зря я что ли ботов учусь делать…
• Только в России телеграмом пользуются 30 млн пользователей. И это при том, что он «заблокирован».• В ближайшее время в телегу, возможно, завезут обычные и групповые звонки (предположение на основе исходного кода).• Постоянные обновления, которые действительно делают этот мессенджер лучше, а также призовые фонды для сторонних разработчиков.• В принципе комьюнити здесь, наверное, самое читающее. Взаимодействовать в такой среде гораздо приятнее.Дай бог, чтобы телега такой и оставалась. Зря я что ли ботов учусь делать…
Если кто-то продолжает задаваться вопросом «какие же существуют роли в IT-команде, и какие компетенции соответствуют каждой из них?», то предлагаю глянуть данные пикчи.
Здесь коротко и ясно расписаны характеристики базовых ролей. По hard и soft скиллам можно понять, в сторону чего надо смотреть. Можно еще лишний раз открыть тот же hh, полистать вакансии и смотреть уже, что конкретно работодатель ждет от вас.
Правда, по собственному опыту могу сказать, что не всегда это прокатывает. Взять только мою попытку устроиться в одну из IT-контор…
Здесь коротко и ясно расписаны характеристики базовых ролей. По hard и soft скиллам можно понять, в сторону чего надо смотреть. Можно еще лишний раз открыть тот же hh, полистать вакансии и смотреть уже, что конкретно работодатель ждет от вас.
Правда, по собственному опыту могу сказать, что не всегда это прокатывает. Взять только мою попытку устроиться в одну из IT-контор…
Друзья, взял обещанное интервью у молодого веб-разраба – Захара Пословского, который сотрудничает с игровой компанией и параллельно учится в магистратуре на веб-разработке.
Если хотите из первых уст узнать про сложности работы, про учебу, про академ.мобильность и в целом про путь молодого разработчика, то можете послушать интервью за кружкой чая.
Если хотите из первых уст узнать про сложности работы, про учебу, про академ.мобильность и в целом про путь молодого разработчика, то можете послушать интервью за кружкой чая.
– Как ты вошёл в IT? Можешь коротко рассказать об этом с момента твоего первого "Hello, world", до первой оплачиваемой работы?