Как сделать настройку времнни tempmute в боте discord.py

У меня есть код на tempmute, но там мут идет только по секундам. Т.е если я пишу !mute @ник (время) (причина) то оно мутит на количество секунд указанных в коде. Но я хочу чтобы вместо просто числа там можно было написать например "1m" "1h" "10h" И т.п


Ответы (1 шт):

Автор решения: user423208

Используйте эту функцию

def to_seconds(string: str):
    total = 0
    number = 0
    for i in string:
        if i in ['0', '1', '2',  '3', '4', '5', '6', '7', '8', '9']:
            number = int(str(number) + str(i))
        else:
            if i == 'd':
                total = total + number * 24 * 60 * 60
                number = 0
            elif i == 'h':
                total = total + number * 60 * 60
                number = 0
            elif i == 'm':
                total = total + number * 60
                number = 0
            elif i == 's':
                total = total + number
                number = 0
    return total

Данная функция преобразовывает строку вида '(число)d(число)h(число)m(число)s' (без пробелов) в секунды, где d - дни, h - часы, m - минуты, s - секунды. Пример:

to_seconds('2h') = 7200

to_seconds('1d2s') = 86402

→ Ссылка