Бесконечные числа в промокоде
Помогите сделать мне за меня в создание промокодов числа до бесконечности а не до числа где 18 нулей(пайтон имеет максимально 18 нулей число)
Вот код:
# Обработчик сообщений для создания нового промокода
@dp.message_handler(lambda message: message.text.lower().startswith('новый промо'))
async def process_promo_name(message: types.Message):
user_id = message.from_user.id
if user_id in developers_id:
x = 0
try:
_, promo = message.text.lower().split('новый промо ')
except ValueError:
promo = ' '
await message.answer('Введи что за промо, мне гадать что-ли?')
await message.delete()
promo_codes = select_promos_table()
if len(promo.split(' ')) == 3:
promo_text, promo_value, promo_max_use = promo.lower().split(' ')
for i in promo_codes:
if promo_text in i[1]:
x = 0
else:
x += 1
if x >= len(promo_codes):
try:
insert_promos_table(promo=promo_text, promo_value=promo_value, promo_max_use=promo_max_use)
await message.answer(
f"Промокод '{promo_text}' успешно создан. \n"
f"Пользователи получат {promo_value} денег при активации. \n"
f"Максимум активаций: {promo_max_use}.")
await message.delete()
except:
await message.answer('Что-то ты неправильно написал.\n'
'Название промо должно быть текстом.\n'
'Сколько денег он будет давать должно быть числом.\n'
'Макс кол-во использований должно быть числом.')
await add_promo(message)
await message.delete()
else:
await message.answer('Промокод с таким названием существует')
await message.delete()
else:
await message.answer('Пиши все слитно')
await add_promo(message)
await message.delete()
@dp.message_handler(lambda message: 'новый промо' not in message.text.lower() and 'новый донат-промо' not in message.text.lower() and 'промо' in message.text.lower())
async def use_promo(message: types.Message):
x, y, promo = False, False, False
try:
_, promo = message.text.lower().split('промо ')
delete_promo()
delete_donate_promo()
except ValueError:
await message.answer('Введи что за промо, мне гадать что-ли?')
await message.delete()
delete_promo()
delete_donate_promo()
if promo:
delete_promo()
delete_donate_promo()
if len(promo.split(' ')) == 1:
promo_data = select_promos_where_table(promo)
for i in promo_data:
if promo in i[1] and i[3] > 0 and str(message.from_user.id) not in str(i[4]):
x = True
if not x:
try:
donate_promo_data = select_donate_promos_table(promo)
for i in donate_promo_data:
if promo in i[1] and i[3] > 0 and str(message.from_user.id) not in str(i[4]):
y = True
except Exception:
pass
if x:
user_id = message.from_user.id
user = select_balance_table(user_id)[0]
if not user:
NotUser(user_id)
try:
await message.answer('Пополнение баланса...')
amount = select_promos_where_table(promo)[0][2]
change_promo_table(promo)
change_user_balance_table(int(amount), message.from_user.id)
change_promo_used_person(user_id=message.from_user.id, promo=promo)
await message.answer(f'УСПЕШНО\nВаш баланс пополнен на сумму {select_promos_where_table(promo)[0][2]}')
except Exception as e:
await message.answer('Что-то пошло не так, попробуйте еще раз')
await message.delete()
elif y:
user_id = message.from_user.id
user = select_user_table(user_id)
if not user:
NotUser(user_id)
try:
await message.answer('Пополнение баланса...')
amount = select_donate_promos_table(promo)[0][2]
change_donate_promo_table(promo)
user = select_user_table(user_id)
update_donate_table(user[0][0], int(amount))
change_donate_promo_used_person(user_id=message.from_user.id, promo=promo)
await message.answer(f'УСПЕШНО\nВаш донат баланс пополнен на сумму {select_donate_promos_table(promo)[0][2]} ByCoin')
except Exception:
await message.answer('Что-то пошло не так, попробуйте еще раз')
await message.delete()
else:
await message.answer('Такого промо не существует, или ты его использовал, смерись с этим и живи с этим')
await message.delete()