Untitled
unknown
plain_text
2 years ago
3.2 kB
10
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