#python #discord.py
Вопрос:
Что происходит, когда я создаю токен, он также публикует предыдущий токен
Это код ниже, который я использую для генерации токенов.
tokenOpts = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".lower()
tkn = []
def GenToken():
t1 = ''.join((choice(tokenOpts)) for x in range(5))
t2 = ''.join((choice(tokenOpts)) for x in range(3))
t3 = ''.join((choice(tokenOpts)) for x in range(7))
t4 = ''.join((choice(tokenOpts)) for x in range(5))
return f"{t1}-{t2}-{t3}-{t4}"
@bot.command()
async def createtoken(ctx, planDays=0):
if ctx.message.author.id in config.OWNERS:
with open(path, "r") as data: tokens = json.load(data)
with open(path, "w") as output:
#with open("temp", "w") as tk:
for i in range(int(1)):
tok = GenToken()
tkn.append(tok)
tokens[0]['Unused'].append({"Days": planDays, "Level": "None", "Token": str(tok)})
output.write(json.dumps(tokens, sort_keys=False, indent=4))
o = 'n'.join(tkn)
# tk.write(o)
embed = discord.Embed(
title="Verification",
color= discord.Color.dark_theme()
)
embed.add_field(name="Token Status: Created <:white_check_mark:886940376127131689>", value=f"Token: `{o}`")
embed.set_footer(text="YoursTruly.exe")
await ctx.send(embed=embed)
Комментарии:
1. почему у тебя есть
for i in range(int(1)):
. цикл for бесполезен, приведение int также бесполезно. если это произойдет только один раз, то удалите цикл for и снимите отступы между строками. и где определяется tkn?2. @WasiMaster ой, мой плохой, tkn — это стол. Я помещу его в код, спасибо, что заметили. Изменить: Только что отредактировал мой код.
Ответ №1:
tkn
определяется глобально, поэтому, если вы добавите другой токен, он будет сохранен даже после завершения метода. Таким образом, каждый раз, когда вызывается метод, tkn
становится на одну запись больше.
Просто переместите объявление tkn
внутри функции. Или не используйте все это, просто используйте tok
вместо o
встраивания. Это тоже должно сработать.