Бот для навигации в Телеграм канале

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

ellvenro / bot_eat Public

22.07.2021 Элементарный Telegram-бот, выполняющий поиск мест на карте

ellvenro/bot_eat

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Собираем Telegram-бот для навигации | BotHelp

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

Элементарный Telegram-бот, выполняющий основные функции

  1. Бот для поиска ближайших ресторанов быстрого питания
  2. Основные моменты при реализации
  3. Реализация поиска заведений и геокодера
    3.1 Geocoder API
    3.2 Places API
    3.3 Альтернатива с использованием Яндекс-сервисов

Бот для поиска ближайших ресторанов быстрого питания

Программа создана для изучения основ при работе с картами с помощью Telegram-бота.

Программа производит поиск ближайших заведений по отправленному пользователем местоположению или названию станции метро в СПб. Также она предоставляет выбор между четырьмя ресторанами:

Бот присылает местоположение ближайших заведений с помощью точек на картах. Пользователь может выбрать ресторан, наиболее подходящий его требованиям.

Отправление локаций пользователю оптимизировано и содержит мало сообщений: отправляется одна локация и предоставляется вариант выбора другой, либо же выбора другого ресторана.

Видео, иллюстрирующее работу программы.

Основные моменты при реализации

Бот написан на языке python 3, с помощью библиотеки pyTelegramBotAPI (документация Telegram Bot API). Для реализации бота создано три файла.

Еще по теме:  Максимальная длина видео в Телеграмме

В файле bot_eat.py расположены основные функции бота, реагирующие на отклики пользователя.

Файл functions.py содержит реализации функций, необходимых для корректной работы программы. В нем находятся как функции для реализации работы с картами, так и функции вывода текста и кнопок.

API-ключи, как и token бота, были помещены в файл config.py. Для запуска программы необходимо добавить индивидуальные данные в этот файл.

Реализация поиска заведений и геокодера

Работа с картами была реализована с помощью сервиса 2gis и библиотек requests и json. 2gis не требует подключения нескольких ключей для выполнения разных действий. Для реализации были использованы сервисы Geocoder API и Places API.

Geocoder API

  • Используется для определения координат станций метро, введенных пользователем.
  • Использовано в функции func_geo_gis.
  • Документация Geocoder API для 2gis.
  • Альтернатива при использовании сервисов Яндекс: API Геокодера.

С помощью библиотеки requests отправляются get-запросы с конкретными параметрами, которые указаны в документации, на сайты, результат возвращается в формате объекта json.

Пример отправления запроса на сайт config.gis_geo на получение координат объекта query с преобразованием полученного объекта json в список:

query = ‘СПб метро ‘ + message.text r = requests.get(url=config.gis_geo, params=< ‘q’ : query, ‘key’: config.API_key_gis, ‘fields’ : ‘items.point’ >) result = json.loads(r.text)

Работа с полученными результатами производится согласно документации.

point = str(result[‘result’][‘items’][0][‘point’][‘lon’]) + ‘,’ + str(result[‘result’][‘items’][0][‘point’][‘lat’])

Places API

  • Используется для нахождения ближайших заведений на карте по координатам в определенном радиусе.
  • Использовано в функции func_search_gis.
  • Документация Places API для 2gis.
  • Альтернатива при использовании сервисов Яндекс: API поиска по организациям.

Пример отправления запроса на сайт config.gis_search на получение объекта call.data, находящегося в радиусе 1000 метров от точки point с последующем преобразованием в список:

r = requests.get(url=config.gis_search, params=< ‘q’ : call.data, ‘key’: config.API_key_gis, ‘point’ : point, ‘type’ : ‘branch’, ‘fields’ :’items.point,items.schedule’, ‘radius’ : ‘1000’ >) result = json.loads(r.text)

Результаты, полученные списками из нескольких элементов можно обрабатывать по разному. Есть возможность использовать цикл со счетчиком для перебора всех элементов списка.

Пример отправления ботом полученных результатов пользователю через функцию send_venue с помощью перебора циклом for:

for item in result[‘result’][‘items’]: bot.send_venue(call.message.chat.id, item[‘point’][‘lat’], item[‘point’][‘lon’], item[‘name’], item[‘address_name’])

Также зная количество полученных элементов возможно производить обработку по одному элементу.

bot.send_venue(chat_id=call.message.chat.id, latitude=result[‘result’][‘items’][cnt][‘point’][‘lat’], longitude=result[‘result’][‘items’][cnt][‘point’][‘lon’], title=result[‘result’][‘items’][cnt][‘name’], address=result[‘result’][‘items’][cnt][‘address_name’])

Альтернатива с использованием Яндекс-сервисов

При реализации работы с картами с помощью Яндекс-сервисов необходимо иметь индивидуальный ключ для каждого сервиса. Работа осуществляется также с помощью библиотек requests и json. Однако параметры запроса и работу с полученным объектом json необходимо корректировать согласно документации.

  • Документация API Геокодера при использовании сервисов Яндекс.
  • Документация API поиска по организациям при использовании сервисов Яндекс.

About

22.07.2021 Элементарный Telegram-бот, выполняющий поиск мест на карте

Источник: github.com

Телеграм бот кнопки. Как сделать кнопку в телеграм

Я подключил одно реле, а к нему подключил лампу. Теперь нажимая на кнопку Вкл у нас включается лампа, а нажав на ВЫКЛ выключается. Согласитесь, что это намного удобнее, и кнопки всегда на экране. Здесь ещё выведены кнопки таймера, но об этом чуть позже.

Теперь давайте рассмотрим как работает скетч.
Сначала о его возможностях.
В скетче я управляю реле, включает или выключает нагрузку. В качестве нагрузки я подключил лампу ан 12 вольт, но можно подключить что угодно.
Как и в прошлом примере я запрограммировал 6 действий за которые отвечают эти кнопки.
Первая кнопка сделана для перехода на вэб страницу. При нажатии на эту кнопку открывается браузер и вы переходите по ссылке. В коде указана ссылка на мой канал.

Еще по теме:  Где почмотреть удаленные посты Телеграмм

Эти две кнопки отвечают за включение и выключение реле. Переключение происходит достаточно быстро, практически без задержек.

Про оставшиеся кнопки таймера я расскажу позже, когда буду объяснять код скетча. Там есть некоторые трудности. Это таймер на включения на 1, 2 и до минут, но вы сами можете устанавливать любое время.

Теперь рассмотрим код скетча. Я взял свой пример о подключении реле. Про то как подключать реле или как устанавливать библиотеки и что такое токен, я рассказывать не буду. Если не понимаете о чём я, то посмотрите вот это видео.
Единственное отличие в коде – это то что я подключил реле к выводу D5 платы ESP.

В SETUP тоже нет ничего интересного. Стандартный набор подключения к WIFI сети. Ну кроме вот этой строчки.
Я правда не совсем понял, за что она отвечает. Это мой перевод комментариев. Если хотите, можете сами потестить разные значения. По умолчанию здесь стояла цифра 60. Мне показалось, что значение 20 мне больше подходят. Но особой разницы я не видел.

Весь основной код вывода приветствия и кнопок расположен вот в этом кусочке кода.
Это отвечает за включение и выключения реле от кнопок. Это стандартный код как в Ардуино. Если приходит значение ON то включить реле, а если OFF то выключить.

Это условие для работы с таймером. Если значение равно значению нажатой кнопки, то включить реле. Если реле было включено, то оно будет отключено.
Это перевод текстового значения в числовое. А это перевод в минуты.

Эти строчки кода отвечают за определение вашего имени, и если оно будет не определено, то будет написано Гость. Имя вставляется в текст приветствия.
Ну вот мы и подошли к кнопкам. За вывод кнопок отвечает вот этот код. Это json. Параметры команды такие. Описание и действие. В первой части – это текст который будет выведен на кнопке, а второй это действие.
Здесь я вывел на экран 6 кнопок.
Первая кнопка отвечает за переход по адресу на вэб страницу.
В первой части написано Перейти на мой канал, а во второй части URL канала.

В двух последующих сказано, что надо при нажатии включать или выключать реле, а соответственно нагрузку подключенную к нему.
При нажатии включить реле сработает, а при выключить отключится.
В первой части – это текст на кнопках, а во второй команда на включение или отключение.

Теперь про таймер.
Здесь выведено 3 кнопки, но вы можете сделать сколько угодно.
Я сделал таймер на включение через 1, 2, и 10 минут. Дальше будет показано как это работает при нажатии первой и второй кнопки. 10 минут я ждать не стал.
Давайте рассмотрим код.
Первую. Часть мы рассматривать не будем, да и со второй тоже всё понятно. Самое интересное вот в этом коде.

Еще по теме:  Как вступить в Телеграмм по ссылке

При получении текста из кнопки таймера – этот текст обрабатывается функцией replace.
Будет заменено слово TIME на пустоту. Если проще сказать, то просто удалится слово TIME а останется только цифра. Это 1, 2, или 10. Но так как мы передаём текст, нам его надо перевести в числовой формат. Вот это и сделаем.
Если реле уже было включено, то выключаем его.
Напомню, что это всё сказано для реле которые управляются низким сигналом. Если у вас управление происходит высоким уровнем, то везде HIGH надо заменить на LOW.
Здесь из полученной цифры создаём минуты. Это получается умножением на 1000 и умножением на 60. Затем прибавляем время из функции millis и записываем в переменную.
Ну вот вроде со всем разобрались. Теперь давайте смотреть что получилось. По ходу я буду иногда вставлять свои комментарии.
Открываем бот и видим приветственную надпись со ссылкой вывести кнопки на экран. Нажимаем и видим кнопки.
Нажимаем на первую кнопку и переходим на мой канал.

Здесь на экране выведены записи с трёх источников. С телефона, с компьютера и с камеры. Так, что если где-то что-то не состыковывается, то извиняйте. А календарь с часами я вывел для того чтобы отсчитывать время таймера.

Просто нажимаем включить и выключить и видим что лампочка загорается и гаснет. Отклик происходит почти мгновенно.

А теперь посмотрим как работает таймер на включение лампы. Я нажал на 1 минуту. Здесь показано время запуска таймера, а затем будет показано время срабатывания.

Боты

Переводите текстовые сообщения в голосовые и отправляйте друзьям в чате. Выбирайте мужскую и женскую озвучку.

Создавайте плейлисты, добавляйте треки из памяти смартфона и рекомендуемые ботом композиции из Интернета.

Находите человека по фотографии, идентифицируйте книгу по фотографии обложки.
Бесплатно загружайте из открытых аккаунтов Инстаграм посты, истории и хайлайты.
Проверьте орфографию в текстах на русском, украинском и английском языках.
Бесплатно решайте тесты ЦДЗ с сайта МЭШ и получайте хорошие оценки.
Проверьте текст на орфографические ошибки, исправьте ошибки пунктуации, удалите повторы слов.
Снятые на скрытую камеру фотографии, видео моделей, слитые фото бывших.
Бесплатно загружайте видео из Тик Ток без водяного знака.
Знакомьтесь, общайтесь, флиртуйте в анонимном чате онлайн. Обменивайтесь фото и видео.

Анонимный чат Telegram для общения и знакомства. Обменивайтесь фотографиями и видео. Отправляйте гифки, стикеры и голосовые сообщения.

Комментарии

  • Как удалить аккаунт в Telegram
  • Как установить Телеграмм на компьютер
  • Регистрация в Телеграмм на компьютере
  • Как пользоваться Telegram
  • Видеочат в Телеграмм
  • Голос из текста онлайн: бот Алеша
  • Как слушать музыку в Телеграмме
  • Бот Телеграмм для поиска людей по фото
  • Бот для проверки орфографии
  • Бот Решу ЦДЗ
  • Генерал СВР
  • Соловьев телеграмм-канал
  • Армагеддоныч
  • Железная логика

Источник: telegram-pc.ru

Рейтинг
( Пока оценок нет )
Загрузка ...