Ошибки:
Traceback (most recent call last):
File "", line 186, in addpackage
File "", line 1, in
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\_virtualenv.py", line 55, in
bot.polling(none_stop=True)
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\__init__.py", line 1042, in polling
logger.info('Starting your bot with username: [@%s]', self.user.username)
^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\__init__.py", line 275, in user
self._user = self.get_me()
^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\__init__.py", line 1228, in get_me
result = apihelper.get_me(self.token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\apihelper.py", line 198, in get_me
return _make_request(token, method_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\apihelper.py", line 164, in _make_request
json_result = _check_result(method_name, result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\apihelper.py", line 191, in _check_result
raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 401. Description: Unauthorized
Remainder of file ignored
код:
import re
from typing import Any
import telebot
from telebot import types
bot = telebot.TeleBot('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
yan = 0 # Курс юаня
@bot.message_handler(regexp=r'^/RateEdit_Admin<code lang="python">
</code> [\d.]+$')
def handle_change_admin(message):
global yan
new_yan = re.search(r'[\d.]+', message.text).group(0)
yan = float(new_yan)
bot.reply_to(message, f'Курс был изменен')
# Команда для проверки курса
@bot.message_handler(commands=["rate"])
def main(message):
bot.send_message(message.chat.id, f'Курс Юаня - {yan} ')
# Команда для связи с поддержкой
@bot.message_handler(commands=["contacts"])
def main(message):
bot.send_message(message.chat.id,
'По вопросам доставки, товара писать - xxx \n По вопросам бота писать - xxx')
# Команда для расчета стоимости
@bot.message_handler(commands=["calculator"])
def main(message):
bot.send_message(message.chat.id, 'Введите сумму товара в Юанях')
# Команда для старта бота
@bot.message_handler(commands=["start"])
def main(message):
markup = types.InlineKeyboardMarkup()
btn3 = types.InlineKeyboardButton('Курс', callback_data='rate1')
btn4 = types.InlineKeyboardButton('Калькулятор', callback_data='calculator1')
btn5 = types.InlineKeyboardButton('Контакты', callback_data='contacts1')
markup.row(btn4, btn3)
markup.add(btn5)
bot.send_message(message.chat.id,
f'Здравствйте, {message.from_user.first_name}, мы рады вас видеть вас в нашем чат-боте.\n● Для рассчета стоимости товара, нажмите на кнопку - Калькулятор \n● Для того чтобы связаться с оператором, нажмите - Контакты \n● Для того чтобы узнать курс юаня, нажмите - Курс',
reply_markup=markup)
# Кнопки выбора типа товара
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.message:
if call.data == 'rate1':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text=f'Курс Юаня - {yan} ')
elif call.data == 'contacts1':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id,
text='По вопросам доставки, товара писать - xxx \n По вопросам бота писать - xxx)
elif call.data == 'calculator1':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id,
text='Выберите тип вашего товара',
reply_markup=types.InlineKeyboardMarkup().add(
types.InlineKeyboardButton(text='Обувь', callback_data='shoes'),
types.InlineKeyboardButton(text='Аксессуары', callback_data='accessories'),
types.InlineKeyboardButton(text='Одежда', callback_data='clothing')
))
@bot.message_handler(func=lambda message: True)
def handle_accessories_price(message):
try:
amount = float(message.text)
total_cost = calculate_total_cost_based_on_amount(amount)
bot.send_message(chat_id=message.chat.id,
text=f'Итоговая стоимость аксессуаров с учетом доставки и комиссии: {total_cost}')
except ValueError:
bot.send_message(chat_id=message.chat.id, text='Пожалуйста, введите корректную сумму.')
def calculate_total_cost_based_on_amount(amount, delivery_cost_percentage=None, commission_percentage=None):
total_cost: int | Any = amount * (1 + delivery_cost_percentage + commission_percentage)
return total_cost
@bot.message_handler(func=lambda message: True)
def calculator_total(message):
try:
cost = float(message.text)
commission = 1100
delivery_cost = 0
if message.text.startswith('/air'):
delivery_cost = 150 * yan
elif message.text.startswith('/car'):
delivery_cost = 50 * yan
total_cost1 = cost * yan + 150 * yan + commission
total_cost2 = cost * yan + 50 * yan + commission
bot.send_message(message.chat.id,
f'Экспресс доставка\nСумма вашего товара: {cost * yan} рублей\nСумма доставки: {150 * yan} '
f'рублей\nКоммиссия: {commission}рублей\nИтого: {total_cost1}'
f' рублей\n══════════════════\nОбычная доставка\nСумма вашего товара : {cost * yan}'
f' рублей\nСумма доставки: {50 * yan} рублей\nКоммиссия: {1100}рублей\nИтого: {total_cost2} рублей\n \nДля '
f'оплаты и оформления заказа напишите сюда - xxx ')
except ValueError:
bot.send_message(message.chat.id,
'К сожалению я не умею читать текст(')
bot.polling(none_stop=True)