Если в прошлый раз при попытке заставить ChatGPT написать код для нейросети распознающую эмоции мы потерпели не удачу, то в этот раз я попробовал запросить у ChatGPT код и объяснения для создания Телеграм бота
Запрос был простым
ChatGPT смог выдать довольно-таки интересный ответ
Для написания Телеграм бота, уведомляющего о изменении курса рубля по отношению к доллару, вам потребуется выполнить следующие шаги:
Весь выданный код будет в конце публикации.
Шаг 1: Создать бота в Telegram
- Откройте приложение Telegram и найдите бота "BotFather".
- Напишите команду "/start" и следуйте инструкциям для создания нового бота. Назовите бота и получите токен.
Шаг 2: Настройка окружения
- Установите необходимые библиотеки: python-telegram-bot, requests, и beautifulsoup4. Это можно сделать с помощью следующих команд:
Импортируйте библиотеки:
Шаг 3: Получить текущий курс
- Отправьте GET запрос на сайт, содержащий информацию о текущем курсе.
- Используйте библиотеку BeautifulSoup для парсинга HTML-страницы и получения информации о курсе.
3. Найдите информацию о курсе в HTML-коде страницы.
Шаг 4: Написание кода бота
- Создайте объект бота и используйте токен, полученный от BotFather.
2. Создайте функцию для отправки сообщения с информацией о курсе.
3. Вызовите функцию send_message, передав в нее текущий курс.
4. Запустите бота.
Шаг 5: Получение chat_id
- Отправьте сообщение боту в Telegram.
- Используйте метод getUpdates() для получения chat_id.
Шаг 6: Запуск бота
- Определите функцию main, в которой будет выполняться опрос курса каждые 10 минут.
- Используйте метод time.sleep() для ожидания 10 минут между запросами курса.
После просмотра результата я решил переформулировать запрос
В конечном результате мы имеем нормальный код который можно спокойно использовать
import requests
import telegram
from telegram.ext import Updater, CommandHandler
# Токен бота, полученный от BotFather
TOKEN = 'ТОКЕН_ВАШЕГО_ТЕЛЕГРАМ КОДА'
# ID пользователя, который будет получать уведомления от бота
USER_ID = 'YOUR_TELEGRAM_USER_ID'
# Адрес API банковского ресурса для получения информации о курсе валют
BANKI_API_URL = 'https://www.banki.ru/api/currency/cash'
# Коды валют для получения курса (USD и RUB)
CURRENCY_CODES = 'USD/RUB'
# Функция, которая будет вызываться при выполнении команды /start
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="Привет! Я буду уведомлять тебя об изменении курса доллара по отношению к рублю.")
# Функция, которая будет вызываться периодически для проверки изменения курса доллара
def check_dollar_rate(context):
response = requests.get(BANKI_API_URL, params={'currency': CURRENCY_CODES})
response_json = response.json()
# Получаем текущий курс доллара
dollar_rate = response_json['rates'][0]['sell']
# Отправляем уведомление пользователю, если курс доллара изменился
if dollar_rate != context.job.context:
context.bot.send_message(chat_id=USER_ID, text=f"Курс доллара изменился и теперь составляет {dollar_rate} рублей.")
# Обновляем значение текущего курса доллара
context.job.context = dollar_rate
def main():
# Создаем объект updater и dispatcher для бота
updater = Updater(TOKEN, use_context=True)
dispatcher = updater.dispatcher
# Добавляем обработчик команды /start
start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)
# Запускаем периодическую проверку изменения курса доллара
j = updater.job_queue
j.run_repeating(check_dollar_rate, interval=300, first=0, context=0)
# Запускаем бота
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
Краткое описание работы кода:
- Импортируем необходимые модули: requests для запроса информации от API банковского ресурса, telegram для работы с Telegram API, и Updater и CommandHandler для создания бота и обработки команд.
- Указываем токен Telegram бота и ID пользователя, который будет получать уведомления.
- Указываем адрес API банковского ресурса и коды валют