Untitled

 avatar
unknown
plain_text
a year ago
3.2 kB
4
Indexable
def parse_time(time_string):
    """
    Преобразует строку времени в Unix-время.

    Args:
        time_string: Строка времени в формате "10s", "5m", "2h", "1d".

    Returns:
        Unix-время в секундах, если строка времени корректна,
        иначе None.
    """

    if not time_string:
        return None

    match = re.match(r"(\d+)([a-z])", time_string.lower().strip())
    if match:
        value, unit = int(match.group(1)), match.group(2)

        match unit:
            case "s":
                time_delta = value
            case "m":
                time_delta = value * 60
            case "h":
                time_delta = value * 3600
            case "d":
                time_delta = value * 86400
            case _:
                return None

        # Получаем текущее время в секундах
        current_time = time.time()

        # Применяем временную дельту
        new_time = current_time + time_delta

        return new_time  # Возвращаем Unix-время в секундах

    return None

def parse_command_arguments(command: str) -> list:
    """Разбирает команду на список аргументов."""
    arguments = command.split()
    return arguments

def format_mute_time(time_string: str) -> str:
    """Форматирует строку с временем мута."""
    value, unit = int(time_string[:-1]), time_string[-1]

    words = {
        's': {
            'single': get_string('second', 'plurals'),
            'plural1': get_string('seconds2', 'plurals'),
            'plural2': get_string('seconds3', 'plurals')
        },
        'm': {
            'single': get_string('minute', 'plurals'),
            'plural1': get_string('minutes2', 'plurals'),
            'plural2': get_string('minutes3', 'plurals')
        },
        'h': {
            'single': get_string('hour', 'plurals'),
            'plural1': get_string('hours2', 'plurals'),
            'plural2': get_string('hours3', 'plurals')
        },
        'd': {
            'single': get_string('day', 'plurals'),
            'plural1': get_string('days2', 'plurals'),
            'plural2': get_string('days3', 'plurals')
        }
    }

    if config.language == 'ru':
        if unit in words:
            if value % 10 == 1 and value % 100 != 11:
                word = words[unit]['single']
            elif 2 <= value % 10 <= 4 and (value % 100 < 10 or value % 100 >= 20):
                word = words[unit]['plural1']
            else:
                word = words[unit]['plural2']
        else:
            word = ''  # На случай, если unit не найден
    else:
        # Логика склонения для других языков
        word = words.get(unit, {}).get('single')  # Форма единственного числа по умолчанию
        if value > 1:
            word = words.get(unit, {}).get('plural2' if value >= 5 else 'plural1')

    return f"{value} {word}"
Editor is loading...
Leave a Comment