Написал тг бота, хотелось бы получить совет, да может не один
я новичок в программировании, ну или скорее только начал писать какие-то собственные проекты. Хотелось бы узнать, нормально ли написан ТГ Бот. Если есть какие то претензии или советы, напишите пожалуйста, буду рад любому комментарию, вот сам код:
import telebot
from telebot import types
bot = telebot.TeleBot('токен')
yan = 13.5 #Курс юаня
liberty = 7 #процент поизон
@bot.message_handler(commands = ['start', 'restart'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
itembtn1 = types.InlineKeyboardButton(text="?Ссылки для скачивания", callback_data="Download")
itembtn2 = types.InlineKeyboardButton(text="?Отзывы", callback_data="Rewiews")
itembtn3 = types.InlineKeyboardButton(text="❓Ответы на вопросы", callback_data="QИA")
itembtn4 = types.InlineKeyboardButton(text="?Калькулятор стоимости", callback_data="Calc")
itembtn5 = types.InlineKeyboardButton(text="?Инфо по доставке", callback_data="Delivery")
itembtn6 = types.InlineKeyboardButton(text="?Как пользоваться приложениями", callback_data="How to")
itembtn7 = types.InlineKeyboardButton(text="?Связаться с нами", callback_data="Conndect")
markup.row(itembtn7)
markup.row(itembtn2, itembtn4)
markup.row(itembtn1, itembtn6)
markup.row(itembtn3, itembtn5)
mess = f"Привет, {message.from_user.first_name}, рад нашей встрече.
Я официальный бот-помощник Liberty.
Во мне собрана вся необходимая и полезная информация.
Жду ваших указаний!"
if (message.text != "Exit"):
bot.send_message(message.chat.id, mess, reply_markup = markup)
else:
bot.send_message(message.chat.id, f"{message.from_user.first_name} снова в главном меню. Можно продолжать работу!", reply_markup = markup)
#Ссылка на группу с отзывами(Работает)
def review_link(message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton("Тыкай, не бойся", url = "https://t.me/China_Pkg_Reviews"))
bot.send_message(message.chat.id, "Группа с отзывами", reply_markup = markup)
#Калькулятор суммы(Работает)
def calculator(message):
bot.send_message(message.chat.id, "Введите стоимость товара в юанях: ")
bot.register_next_step_handler(message, calculation)
def calculation(message):
if (message.text.isdigit()):
summ = message.text
summ = int(summ)
liberty_percent = summ * (liberty / 100)
price = (summ + liberty_percent) * yan
bot.send_message(message.chat.id, f"Итоговая примерная сумма: {round(price, 2)} + {500} рублей/кг за доставку")
else:
message.text = "?Калькулятор стоимости заказа"
bot.send_message(message.chat.id, "Вы ввели некорректрную цену или допустили ошибку при вводе! Повторите сначала!")
calculator(message)
#Ссылки на приложения и главное меню(Работает)
def download_links(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
itembtn1 = types.InlineKeyboardButton("IOS")
itembtn2 = types.InlineKeyboardButton("Android")
itembtn3 = types.InlineKeyboardButton("Вернуться в главное меню")
markup.row(itembtn1, itembtn2)
markup.row(itembtn3)
bot.send_message(message.chat.id, "Выберите свою систему или вернитесь в главное меню", reply_markup = markup)
bot.register_next_step_handler(message, choice_platform)
def choice_platform(message):
if (message.text == "IOS"):
iphone(message)
elif (message.text == "Android"):
android(message)
else:
message.text = "Exit"
start(message)
def iphone(message):
markup = types.InlineKeyboardMarkup()
link1 = types.InlineKeyboardButton("Ссылка на скачивание Poizon", url = 'https://apps.apple.com/ru/app/得物-得到运动x潮流x好物/id1012871328')
link2 = types.InlineKeyboardButton("Ссылка на скачивание TaoBao", url = 'https://apps.apple.com/ru/app/淘宝-春节不打烊/id387682726')
markup.row(link1)
markup.row(link2)
bot.send_message(message.chat.id, 'Ссылки на приложения для IOS', reply_markup = markup)
message.text = "Exit"
start(message)
def android(message):
markup = types.InlineKeyboardMarkup()
link1 = types.InlineKeyboardButton("Ссылка на скачивание Poizon", url = 'https://m.anxinapk.com/rj/12201303.html')
link2 = types.InlineKeyboardButton("Ссылка на скачивание TaoBao", url = 'https://play.google.com/store/apps/details?id=com.taobao.taobao')
markup.row(link1)
markup.row(link2)
bot.send_message(message.chat.id, 'Ссылки на приложения для Android', reply_markup = markup)
message.text = "Exit"
start(message)
#Видео по обучению использования и главное меню(Работает)
def video(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
itembtn1 = types.InlineKeyboardButton("Poizon")
itembtn2 = types.InlineKeyboardButton("TaoBao")
itembtn3 = types.InlineKeyboardButton("Вернуться в главное меню")
markup.add(itembtn1, itembtn2)
markup.add(itembtn3)
bot.send_message(message.chat.id, "Выберите нужное приложение или вернитесь в главное меню", reply_markup = markup)
bot.register_next_step_handler(message, choice_app)
def choice_app(message):
if(message.text == "Poizon"):
poizon(message)
elif(message.text == "TaoBao"):
taobao(message)
else:
message.text = "Exit"
start(message)
def poizon(message):
bot.send_video(message.chat.id, open("Poizon.mp4", "rb"), supports_streaming = True)
message.text = "Exit"
start(message)
def taobao(message):
bot.send_video(message.chat.id, open("TaoBao.mp4", "rb"), supports_streaming = True)
message.text = "Exit"
start(message)
#Инфо по доставке(Работает)
def delivery(message):
info = "1️⃣ Мы не осуществляем возврат товара, обратите на это внимание.
\nСмотрите Пункт 1️⃣ \"❓Ответы на вопросы\"\n
\n\2️⃣ Прием заказов осуществляется минимум от 1000 руб. Заказы, стоимость до данного минимума не будут рассматриваться.\n
\n\3️⃣ Сумма за товар/предмет/вещь переводится сразу после оформления заявки. Это необходимо для выкупа заказа с площадки.\n
\n\4️⃣ Сроки доставки могут исчисляться от 2 недель до 1 месяца при задержках поставок.\n
\n\5️⃣ Если вы проживаете или временно находитесь в г. Хабаровск или г. Артем, вы можете осуществить самовывоз заказа.
\В ином случае, доставка осуществляется через 100СП, СДЕК или иную курьерскую службу по согласованию сторон.\n
\n\6️⃣ По уточняющим вопросам обращайтесь к администраторам: @hrbdbudnf , @I_TEMKA_I"
bot.send_message(message.chat.id, info)
#Ответы на вопросы(Работает)
def questions(message):
info = "1️⃣ Почему мы не можем осуществить возврат товара❓
\n\Мы являемся посредниками и работаем через Китайский склад. Это означает, что мы не можем вернуть товар ввиду сложной логистики.
\Вы заказываете посылку \"на свой страх и риск\", но от себя мы можем сказать, что вещи приходят в целостности и сохранности.\n
\n\2️⃣ Настоящие ли отзывы в группе❓
\n\Ответ довольно прост - если вы сомневаетесь, просто напишите покупателям и спросите их лично.
Скорее всего, они будут не против поделиться опытом.\n
\n\3️⃣ Если посчитать сумму заказа самостоятельно, выходит меньшая сумма. Как так❓
\n\На этот вопрос можно ответить довольно просто: наша личная комиссия + процент склада из Китая за хранение товара.
Нам нужно что-то кушать, а складу платить аренду. \Не стоит забывать о конвертации валют, за которую банк взымает свой процент.\n
\n\4️⃣ Приходит ли оригинал с торговых площадок❓
\n\По поводу Poizon можно сказать точно - ДА. В данном маркетплейсе расположены только официальные представители компаний:
\Nike, Reebok, Adidas, TNF, Gucci, Louis Vuitton и многие другие. Вы сами можете скачать приложение и убедиться в этом.
\Так же к каждому заказу с Poizon прикладываются сертификаты, в которых расписана вся информация о том товаре, который вы приобрели.
\По поводу TaoBao можно сказать следующее: на площадке, в большей степени, преобладает китайская атрибутика.
\Это, буквально, Aliexpress, только изолированный от других стран.
Как если бы наш WildBerries решил выйти на мировой рынок под другим названием с теми же самыми товарами!\n
\n\5️⃣По дополнительным вопросам, вы можете обратиться к администраторам канала и бота: @hrbdbudnf , @I_TEMKA_I"
bot.send_message(message.chat.id, info)
#Связь с нами(Работает)
def connection(message):
mess = "Отлично, вы решили связаться с нами!
Если вы выбрали именно этот пункт, значит, по всей видимости,
\вы прочитали и изучили всю остальную информацию.
\Это замечательно! Для обратной связи обратитесь к одному из администраторов:
@hrbdbudnf , @I_TEMKA_I\n
\n\Стоит учесть: если вы решите оформить заказ,
вам понадобится форма для заполнения. Ниже будет представлен файл,
который вам необходимо заполнить и отправить нам.
Так вы облегчите нашу работу!"
bot.send_message(message.chat.id, mess)
bot.send_document(message.chat.id, open("forma dlya zapolneniya.xlsx", "rb"))
@bot.message_handler(content_types = ['text'])
def com(message):
if (message.text == "?Отзывы"):
review_link(message)
if (message.text == "?Калькулятор стоимости"):
calculator(message)
if (message.text == "?Ссылки для скачивания"):
download_links(message)
if (message.text == "?Как пользоваться приложениями"):
video(message)
if(message.text == "?Инфо по доставке"):
delivery(message)
if(message.text == "❓Ответы на вопросы"):
questions(message)
if(message.text == "?Связаться с нами"):
connection(message)
bot.polling(none_stop = True)