- Телеграм-бот на Python
- Как всё будет работать
- Что будем делать
- 1. Регистрация нового бота
- 2. Установка библиотеки
- Подключаем библиотеку и получаем сообщения
- Добавляем кнопки
- Добавляем обработчик кнопок
- Убираем лишнее
- Что дальше
- Телеграм-бот на Python
- Как всё будет работать
- Что будем делать
- 1. Регистрация нового бота
- Бот в телеграм Гороскоп, Астрология
- Дубликаты не найдены
- Фильмы телеграм. ТОП-5 лучших киноботов
- Новый тест TelegramTV бота
- КАК НАПИСАТЬ TELEGRAM BOT НА VBA?
Телеграм-бот на Python
В первой части мы сделали гороскоп на Python, который выдаёт нам прогноз на день по знаку зодиака. Сегодня пойдём дальше: теперь этот же генератор гороскопов будет встроен в Телеграм в виде бота.
Да. То, что обычно на курсах продают за 50 тысяч рублей, мы вам сейчас расскажем за 15 минут бесплатно.
Как всё будет работать
В этом проекте три звена: наш компьютер с Python, сервер Телеграма и Телеграм-клиент.
На компьютере работает интерпретатор Python, а внутри интерпретатора крутится наша программа на Python. Она отвечает за весь контент: в неё заложены все шаблоны текста, вся логика, всё поведение.
Внутри программы на Python работает библиотека, которая отвечает за общение с сервером Телеграма. В библиотеку мы вшили секретный ключ, чтобы сервер Телеграма понимал, что наша программа связана с определённым ботом.
Когда клиент с Телеграмом запрашивает у бота гороскоп, запрос приходит на сервер, а сервер отправляет его на наш компьютер. Запрос обрабатывается программой на Python, ответ идёт на сервер Телеграма, сервер отдаёт ответ клиенту. Изи:
Обратите внимание, что работать наш бот будет только тогда, когда включён компьютер и на нём запущена программа на Python. Если компьютер выключится, пропадёт интернет или вы отключите интерпретатор, то бот работать перестанет: запросы будут приходить, но никто на них не ответит. В одной из следующих частей мы сделаем так, чтобы это всё работало на удалённом сервере и было всегда доступно.
Что будем делать
Если записать пошагово наш план, то он будет выглядеть так:
- Регистрируем бота в Телеграме.
- Устанавливаем Python-библиотеку для работы с Телеграмом.
- Добавляем библиотеку в программу с гороскопом и учим программу реагировать на сообщения в чате.
- Пишем там же код, который покажет кнопки для выбора знаков зодиака.
- Сделаем так, чтобы по кнопкам появлялся гороскоп для этого знака.
Теперь по очереди разберём каждый пункт.
1. Регистрация нового бота
В Телеграме находим канал @BotFather — он отвечает за регистрацию новых ботов:
Нажимаем Start и пишем команду /newbot. Нас по очереди спросят про название бота и его никнейм (мы придумали только с третьей попытки, потому что остальные были заняты):
2. Установка библиотеки
Есть два основных способа работать с телеграмом в Python: через библиотеку telebot и с помощью Webhook. Мы будем использовать библиотеку — так проще и быстрее.
Чтобы её установить, запускаем командную строку от имени администратора (если у вас Windows) и пишем команду pip install pytelegrambotapi
Подключаем библиотеку и получаем сообщения
Чтобы программа на Python умела управлять Телеграм-ботами, нужно в самое начало кода добавить строки:
Единственное, о чём нужно не забыть — заменить слово «токен» на настоящий токен, который дал нам @BotFather. Открываем программу гороскопа и добавляем.
Теперь научим бота реагировать на слово «Привет». Для этого добавим после строчек с импортом новый метод и сразу пропишем в нём реакцию на нужное слово. Если не знаете, что такое метод и зачем он нужен, — читайте статью про ООП.
И последнее, что нам осталось сделать до запуска, — добавить после метода такую строчку:
Она скажет программе, чтобы она непрерывно спрашивала у бота, не пришли ли ему какие-то новые сообщения. Запускаем программу и проверяем, как работает наш бот.
Добавляем кнопки
Чтобы пользователям нашего бота было удобно, покажем им сразу все знаки зодиака в виде кнопок. А потом сделаем так, что когда на них нажимаешь — появляется гороскоп для этого знака на сегодня.
Добавляем код с кнопками в раздел, который реагирует на «Привет»:
Добавляем обработчик кнопок
Скорее всего, вы заметили, что в каждой кнопке у нас написано callback_data=’zodiac’ . Это значит, что при нажатии на любую кнопку у нас будет вызываться один и тот же метод, который отвечает за гороскоп. Если вы хотите сделать честный гороскоп, придётся в каждой кнопке прописать своё название обработчика, а потом задать его поведение, тоже для каждой кнопки.
Давайте сделаем обработчик кнопок, который будет реагировать на ‘zodiac’ и выдавать случайный текст, как в исходной программе. Для этого добавим новый метод в программу:
Убираем лишнее
Теперь у нас есть готовый бот, и нам осталось только убрать лишний код, который раньше отвечал за вывод знаков зодиака в консоли. После чистки получаем готовую программу:
Как видно, большую часть кода занимает тупое перечисление всех знаков зодиака. Мы могли бы автоматизировать это через циклы, но на улице такая хорошая погода, что мы это отложим.
Что дальше
Впереди — безграничные возможности:
- можно сделать индивидуальный гороскоп для каждого знака;
- научить бота новым командам;
- присылать свежий гороскоп каждое утро;
- наладить непрерывную работу на веб-сервере.
Напишите в комментариях, что бы вы хотели от такого бота? Что должен уметь идеальный бот с гороскопом?
Источник
Телеграм-бот на Python
15 минут — и можете запускать своего первого бота.
В первой части мы сделали гороскоп на Python , который выдаёт нам прогноз на день по знаку зодиака. Сегодня пойдём дальше: теперь этот же генератор гороскопов будет встроен в Телеграм в виде бота.
Да. То, что обычно на курсах продают за 50 тысяч рублей, мы вам сейчас расскажем за 15 минут бесплатно.
Как всё будет работать
В этом проекте три звена: наш компьютер с Python, сервер Телеграма и Телеграм-клиент.
На компьютере работает интерпретатор Python, а внутри интерпретатора крутится наша программа на Python. Она отвечает за весь контент: в неё заложены все шаблоны текста, вся логика, всё поведение.
Внутри программы на Python работает библиотека, которая отвечает за общение с сервером Телеграма. В библиотеку мы вшили секретный ключ, чтобы сервер Телеграма понимал, что наша программа связана с определённым ботом.
Когда клиент с Телеграмом запрашивает у бота гороскоп, запрос приходит на сервер, а сервер отправляет его на наш компьютер. Запрос обрабатывается программой на Python, ответ идёт на сервер Телеграма, сервер отдаёт ответ клиенту. Изи:
Обратите внимание, что работать наш бот будет только тогда, когда включён компьютер и на нём запущена программа на Python. Если компьютер выключится, пропадёт интернет или вы отключите интерпретатор, то бот работать перестанет: запросы будут приходить, но никто на них не ответит. В одной из следующих частей мы сделаем так, чтобы это всё работало на удалённом сервере и было всегда доступно.
Что будем делать
Если записать пошагово наш план, то он будет выглядеть так:
- Регистрируем бота в Телеграме.
- Устанавливаем Python-библиотеку для работы с Телеграмом.
- Добавляем библиотеку в программу с гороскопом и учим программу реагировать на сообщения в чате.
- Пишем там же код, который покажет кнопки для выбора знаков зодиака.
- Сделаем так, чтобы по кнопкам появлялся гороскоп для этого знака.
Теперь по очереди разберём каждый пункт.
1. Регистрация нового бота
В Телеграме находим канал @BotFather — он отвечает за регистрацию новых ботов:
Источник
Бот в телеграм Гороскоп, Астрология
Я сделала бота в Телеграме, который на основе вашего дня и места рождения делает прогнозы с помощью Нейросетей и Машинного обучения
Дубликаты не найдены
Судя по имени вашего бота, боты goroscopbot и goroscopbotbot уже существуют.
Ясно всем без гороскопа,
Всех нас ждет большая радость
поправила) дальше все будет ок)
о, спасибо большое, поправлю баг
с помощью Нейросетей и Машинного обучения
это когда есть пачка обтекаемых текстов общими фразами ни о чем, из которых выбирает нужный тупо рандомом?
Это когда ты понятия не имеешь что это, поэтому пишешь с большой буквы, на всякий случай.
я вообще аналитик и прекрасно понимаю о чем пишу)
аналитик анализирует данные. При чем тут астрология?
Разве что диванный. Потому как неграмотный аналитик это нонсенс.
а причем тут это вообще?
потому что нейросети и машинное обучение могут помочь там, где есть некие кореллирующие данные. А гороскопы и вообще астрология — это просто сраное шарлатанство, и все астрологические прогнозы — это бессмысленные тексты ни о чем.
вам никто не запрещает так думать)
Фильмы телеграм. ТОП-5 лучших киноботов
На повестке дня — боты, для поиска и просмотра фильмов, мультфильмов и сериалов.
Перебрал несколько десятков ботов, где-то неудобная логика, где-то удобная, но мало картин, где-то картин много, но нельзя скачивать. В общем, сделал свой рейтинг из 5 ботов, благодаря которым можно найти практически любую картину.
Самый удобный и быстрый из всего рейтинга.
Можно найти практически любой фильм. Около миллиона картин с переводами и разного качества.
Есть удобный рейтинг IMBD и КиноПоиск, фильтры по жанрам и датам , коллекции по категориям и многое другое.
Можно скачивать, делиться списком избранных фильмов.
2 место нашего чарта
Минимум функциональности, больше скорости. Можно добавлять фильмы и делиться с друзьями. Также имеется вкладка избранные, для сохранения фильмов и дальнейшего просмотра.
Большая библиотека, но все же находит не все. Рекомендую
Популярный бот, имеет англоязычную версию. Собрана огромная коллекция фильмов. Вообще это каталог описаний к фильмам, в нем нельзя просматривать картины. Возможно найдет своего пользователя.
Собрано огромное множество фильмов и сериалов. Можно скачивать, смотреть трейлеры, следить за новинками.
Из недостатков. ну только то, что в менюшках реклама.
Классный бот. Есть фильтры, новинки, поиск, а самое главное, ты просто вводишь фильм и сразу смотришь его.
Новый тест TelegramTV бота
Доброго времени суток.
Появилось немного свободного времени. И я решил посвятить это время своему хобби. «Говнокодингу». Уверен так назовут мой код, гуру.
А именно доработкой своего TelegramTV бота: @t_tv_bot (текущая версия)
Что я сделал в новой версии на данный момент:
— Взял за основу базы каналов всем нам известный сервис iPTV, чье имя нельзя произносить в слух. Более 1000 каналов.
— Добавил возможность подгрузить весь список каналов по команде /playlist
— Добавил возможность посмотреть список доступных групп каналов по команде /groups
— Добавил возможность подгрузить список каналов только нужной группы
— Добавил поиск нужного канала в базе по названию
Ссылка на тестовый TelegramTV bot: @ttvdemo_bot
Приглашаю всех протестить мое творение и высказать свои мнения.
По ограничениям на данный момент.
Я крайней степени бич. Поэтому на данный момент использую только один временный аккаунт базы, поэтому возможно возможность просмотра будет ограничена из-за занятости аккаунта. пробуйте открыть нужный канал через какое-то время.
Ссылки на потоки во время теста временные, поэтому копировать, воровать и прочее бесполезно. Не тратьте время.
С нетерпением жду комментарии
КАК НАПИСАТЬ TELEGRAM BOT НА VBA?
У моего заказчика случился один инцидент. Ну, как инцидент, обычная житейская история. У него в компании есть девушка (или женщина, все относительно), которая следит за днями рождений сотрудников, собирает деньги на подарок и т.д., короче, Шура – профсоюзная активистка из «Служебного романа» (помните?: «… если сегодня кто-нибудь еще родится или умрет, я останусь без обеда…»), только помоложе и без профсоюза.
И вот однажды подходит эта «Шура» к одному из сотрудников и просит его помочь ей поднять на этаж пиццу.
— У меня сегодня День рождения, я заказала на всех пиццу…
— (Ой-йо-мойо(. )) ну… это… я тебя поздравляю, пошли за пиццей… Коллеги! у «Шуры» сегодня День рождения!
Тут, конечно, началось… в спешке, пока «Шура» и «Шурик» исчезли в направлении пиццы, торопливые сборы ассигнаций, в ближайший цветочный ларёк направлялся гонец, и воздухе витала мысль: «Просрали полимеры день рождения девушки, которая о каждом из нас не забывала»…
Дабы не попадать в следующий раз впросак, заказчик попросил меня написать для их корпоративного Telegram чата некую программку, которая бы утром поздравляла тех, у кого день рождения (в компании около 200 человек), а за три дня до дня рождения персонально направляла каждому сотруднику группы/отдела, в котором работает будущий именинник, telegram-сообщение о грядущем событии.
«Деньги в руки – будут звуки». Что в результате получилось? Есть чат, в котором сотрудники обсуждают разные вопросы, в нем каждое утро в 9-00 появляется средних размеров сообщение на тему «10 знаменитых людей, родившихся в этот день». Если в «этот день» родился кто-то из компании заказчика, то этот кто-то оказывается в компании знаменитостей. Такой вот каламбур. Также индивидуально некоторые сотрудники получают сообщение от бота «Шура – профсоюзная активистка» о ДР за три дня до «грустного праздника».
Вот, такая преамбула.
Для реализации поставленной задачи я использовал API Telegram, c# и серверную инфраструктуру заказчика на платформе Microsoft.
После создания заказной разработки на c# и .Net мне пришла в голову мысль: а можно ли запилить Telegram бот на VBA? На странице «Bot Code Examples» VBA среди множества языков нет, но ведь это не означает, что на нем нельзя написать бот для «телеги».
Попробую в этом посте заполнить «брешь». Сначала нужно сделать то, что делается для любого языка программирования – создать и прописать бота.
1) Для создания бота в Telegram найдите крестного отца всех telegram ботов — BotFather и дайте ему команду: «/newbot». В ответ отец всех telegram ботов попросит дать имя новому боту. Далее, нужно указать логин бота (username), заканчивающееся на bot. Вот бот готов. В доказательство свершившегося BotFather выдаст access token для доступа в Telegram API приблизительно такого вида: «1234567890:ABCDEFGabcdfgQWERTYUIOPasdfghjklZXC».
2) Нужно новорожденного бота пригласить в свою группу.
3) Все, бот может отправлять сообщения в эту группу.
Общая часть закончена. Теперь специфика Visual Basic for Application.
Попробуем отправить сообщение на VBA. Заранее прошу прощения за лубочный вид кодов. Как с помощью тега типа
Конкретно этот код работает. Проблема возникнет, если вы попытаетесь отправить сообщение на русском языке. В этом случае от Telegram вы получите ответ: «Bad Request: strings must be encoded in UTF-8».
У VBA, к сожалению, нет встроенной функции перевода в требуемый формат (UTF-8). «Что же делать? Что же делать? Надо выпить».
Можно придумать свой собственный велосипед на тему: «URL Encoding», в соответствии с RFC-3986, можно найти на просторах интернета множество чужих велосипедов разной степени глючности и «доработать напильником», но я бы предложил велосипед не изобретать, а воспользоваться функцией JavaScript encodeURIComponent(), она заменяет «неправильные» символы процентными (escape-) последовательностями, представляющими кодировку символа UTF-8.
Это окошко в возможности JavaScript меня уже неоднократно выручало.
Соответственно, функция SendAMessage2TheTelegram будет выглядеть так:
Теперь сообщения с русскими буквами прекрасно перевариваются Telegram API. Отдельный вопрос: как узнать id чата, если речь идет о группе или даже конкретной персоне, а не о канале?
Для этого нужно отправить какое-либо сообщение боту из чата, в который вы планируете отправлять сообщения бота.
Например, такое: «/myid @UserNameOfMybot».
После чего посмотреть на историю сообщений бота с помощью команды, которую можно отправить из, например, Google Chrome:
Посмотреть на последние строчки истории и найти собственное сообщение в структуре JSON. Там должен быть и такой фрагмент: «chat»:<"id": 123456789. 123456789- на месте этих цифр должен быть ID чата для переменной ChatID.
Изначально я думал создать на c# com компонент для VBA, с большим набором функций по работе с Telegram. Но нужен ли такой com-компонент? – я пока не решил. Так что этот вопрос тоже можно обсудить.
Источник