Skip to content

Instantly share code, notes, and snippets.

@FriggB
Created May 9, 2022 07:44
Show Gist options
  • Save FriggB/24e03a683528bff0eb8c9cea76b1e79b to your computer and use it in GitHub Desktop.
Save FriggB/24e03a683528bff0eb8c9cea76b1e79b to your computer and use it in GitHub Desktop.
import json
import requests
import telebot
#import random
#import config
#from requests import get
bot = telebot.TeleBot('5298932751:AAHA2d35PBcfF9VDRKkRPINxRrS89CHujao') #Valerian
keys = {
'бит':'BTC',
'эте':'ETH',
'дол':'USD',
'руб':'RUB'}
class ConvertionException (Exception):
pass
@bot.message_handler(commands=["start" , "help"])
def rules (message: telebot.types.Message):
text = "Для перевода валюты ведите <Что, куда, сколько> \n Для просмотра доступных к обмену валют /values"
bot.reply_to(message,text)
@bot.message_handler(commands=["values"])
def values (message: telebot.types.Message):
text = "Доступные валюты:"
for key in keys.keys():
text = '\n'.join((text, key ))
bot.reply_to(message, text)
@bot.message_handler(content_types=['text', ])
def convert(message: telebot.types.Message):
print(message.text, message.chat.username)
values = message.text.split(' ')
if len != 3:
raise ConvertionException ("Введите 3 параметра")
quote, base, amount = values
if quote == base:
raise ConvertionException (f"Валюта та же итог - {amount}")
try:
quote_ticker = keys[quote]
except KeyError:
raise ConvertionException (f"Ошибка в валюте {quote}")
try:
base_ticker = keys[base]
except KeyError:
raise ConvertionException (f"Ошибка в валюте {base}")
try:
amount = float(amount)
except ValueError:
raise ConvertionException (f"Введите число. Введено : {amount}")
quote_ticker, base_ticker = keys[quote], keys[base]
r = requests.get(f"https://min-api.cryptocompare.com/data/price?fsyms={quote_ticker}&tsyms={base_ticker}")
total_base = r.content
text = f'Стоимость {amount} {quote} в {base} - {total_base}'
bot.send_message(message.chat.id, text)
@bot.message_handler(content_types= "photo")
def send_foto (message:telebot.types.Message):
bot.reply_to(message, "XDD")
bot.polling(none_stop=True, interval=0)
#json.loads(r.content)[keys[quote]], [keys[base] ]
#https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment