본문 바로가기

색인불가

"원화와 엔화 변환을 텔레그램에서! 놀라운 자동화 봇"

반응형

텔레그램 챗봇을 사용하여 금액을 입력하고 결과를 출력하도록 코드를 수정해보겠습니다. 이를 위해 python-telegram-bot 라이브러리를 사용할 것입니다.

텔레그램 봇으로 실시간 계산하는 이미지
텔레그램 봇으로 실시간 계산하는 이미지


다음 단계를 따르세요:

  1. python-telegram-bot 라이브러리를 설치합니다:
  2. pip install python-telegram-bot
  3. 텔레그램 봇을 만들고, 봇 토큰을 받아옵니다. 텔레그램에서 BotFather를 사용하여 봇을 생성하고 토큰을 얻을 수 있습니다.
  4. 다음은 텔레그램 챗봇으로 금액을 입력받아 결과를 출력하는 수정된 파이썬 코드입니다:

import requests
from bs4 import BeautifulSoup
from telegram import Update, ForceReply
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

# 텔레그램 봇 토큰을 입력하세요
TELEGRAM_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'

def get_exchange_rate():
    url = "https://finance.naver.com/marketindex/exchangeDetail.naver?marketindexCd=FX_JPYKRW"
    response = requests.get(url)
    if response.status_code == 200:
        soup = BeautifulSoup(response.content, 'html.parser')
        exchange_rate = soup.select_one('#content > div.spot > div.today > p.no_today').text.strip()
        exchange_rate = ''.join(filter(lambda x: x.isdigit() or x == '.', exchange_rate))
        return float(exchange_rate.replace(',', '')) / 100
    else:
        raise Exception("환율 정보를 가져오는 데 실패했습니다.")

def start(update: Update, _: CallbackContext) -> None:
    update.message.reply_text(
        '안녕하세요! 환율 변환 봇입니다. 원화 -> 엔화 또는 엔화 -> 원화 변환을 위해 금액을 입력하세요.\n'
        '1. 원화 -> 엔화: 예) 1 10000\n'
        '2. 엔화 -> 원화: 예) 2 10000\n'
        '종료하려면 /stop 을 입력하세요.'
    )

def convert_currency(update: Update, _: CallbackContext) -> None:
    try:
        krw_to_jpy_rate = get_exchange_rate()
    except Exception as e:
        update.message.reply_text(f"환율 정보를 가져오는 데 실패했습니다: {e}")
        return

    text = update.message.text
    try:
        choice, amount = text.split()
        choice = int(choice)
        amount = float(amount)

        if choice == 1:
            converted_to_jpy = amount / krw_to_jpy_rate
            update.message.reply_text(f"{amount} KRW는 {converted_to_jpy:.2f} JPY입니다.")
        elif choice == 2:
            converted_to_krw = amount * krw_to_jpy_rate
            update.message.reply_text(f"{amount} JPY는 {converted_to_krw:.2f} KRW입니다.")
        else:
            update.message.reply_text("유효한 선택이 아닙니다. 다시 입력해주세요.")
    except ValueError:
        update.message.reply_text("유효한 형식이 아닙니다. 다시 입력해주세요.")
    except Exception as e:
        update.message.reply_text(f"오류가 발생했습니다: {e}")

def stop(update: Update, _: CallbackContext) -> None:
    update.message.reply_text('프로그램을 종료합니다.')
    return

def main() -> None:
    updater = Updater(TELEGRAM_TOKEN)

    dispatcher = updater.dispatcher

    dispatcher.add_handler(CommandHandler("start", start))
    dispatcher.add_handler(CommandHandler("stop", stop))
    dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, convert_currency))

    updater.start_polling()

    updater.idle()

if __name__ == '__main__':
    main()

위 코드는 다음과 같은 기능을 수행합니다:

  1. 텔레그램 봇에 /start 명령을 입력하면 인사말과 함께 사용법을 안내합니다.
  2. 사용자가 금액과 변환 옵션을 입력하면 환율 정보를 가져와 계산한 후 결과를 반환합니다.
  3. /stop 명령을 입력하면 봇이 종료 메시지를 반환합니다.

텔레그램 봇 토큰을 YOUR_TELEGRAM_BOT_TOKEN 자리로 교체한 후 코드를 실행해 보세요. 이 코드는 봇이 사용자와 상호작용하며 원화와 엔화 간의 환율 변환을 처리할 수 있도록 합니다.

https://twicetidetime.tistory.com/361

 

"Python으로 만드는 환율 계산기: 원화에서 엔화까지 한 방에 변환!"

원화와 엔화 간의 환율 계산기 만들기환율 계산은 여행이나 국제 거래를 할 때 매우 중요한 작업입니다. 이번 포스트에서는 Python을 사용하여 네이버 금융에서 최신 환율 정보를 가져오고, 원화(

twicetidetime.tistory.com

 

반응형