Untitled
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