регистрация того, сколько раз команда использовалась смещенно для идентификатора пользователя [Discord.py] - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь записать, сколько раз команда использовалась для конкретного пользователя, а затем записать ее в файл, который будет добавляться при каждом ее запуске.

Вот команда, которой я являюсьпытаюсь сделать это для

@client.command(pass_context=True)
async def boop(ctx):
    mentions = ctx.message.mentions
    for user in mentions:
        await client.say("{} has been Boop'ed!".format(user))

Я пытаюсь записать число вместе с userid в файл json.

1 Ответ

0 голосов
/ 27 мая 2018

Самый простой способ, вероятно, состоит в том, чтобы поддерживать словарь, отображающий количество пользователей, о котором они упоминались.Тогда вы можете просто использовать json.dump, чтобы отправить это в файл.Вы должны отметить, что это не очень хорошо масштабируется.Если вы видите, что обновляете этот файл постоянно, вам следует подумать о переходе на асинхронную базу данных (особенно потому, что запись в файл является блокирующей операцией).

import json
from collections import Counter

boop_dict = Counter()

@client.command(pass_context=True)
async def boop(ctx, *users: discord.User):
    for user in users:
        await client.say("{} has been Boop'ed!".format(user))
        boop_dict[user.id] += 1
    with open('boop_file.json', 'w+') as f:
        json.dump(boop_dict, f)
...