diff --git a/BotCode/routers/commands/user_cmd/start_time_cmd.py b/BotCode/routers/commands/user_cmd/start_time_cmd.py index c491b37..f348701 100644 --- a/BotCode/routers/commands/user_cmd/start_time_cmd.py +++ b/BotCode/routers/commands/user_cmd/start_time_cmd.py @@ -4,11 +4,13 @@ from aiogram import Router, types, F from aiogram.filters import Command from BotLibrary import * +from routers.msg_default import msg_default -# Создание роутера и настройка экспорта модулей -__all__ = ("router", "start_time", "log_type",) +# Создание роутера, переменных и настройка экспорта модулей +__all__ = ("router", "start_time", "log_type", "description") router = Router(name="start_time_router") log_type = "Start_Time" +description = "Время запуска" # Список ключевых слов для команды start_time_keywords = ["start_time", "stime", "старт_время", "время_старта", "с_время", @@ -17,7 +19,7 @@ start_time_keywords = ["start_time", "stime", "старт_время", "врем # Хэндлер на команду /start_time -@router.message(Command(*start_time_keywords, prefix=BotEdit.prefixs, ignore_case=True)) +@router.message(Command(*start_time_keywords, prefix=BotVariables.prefixs, ignore_case=True)) @router.message(F.text.lower().in_(start_time_keywords)) async def start_time(message: types.Message, started_at: str, started_at_msk: str): try: @@ -29,7 +31,7 @@ async def start_time(message: types.Message, started_at: str, started_at_msk: st # Активация логгера await cmd_logginger(message, log_type, text) - return text + await msg_default(message) # Проверка на ошибку и ее логирование except Exception as e: diff --git a/BotLibrary/library/time.py b/BotLibrary/library/time.py index e69de29..65e291e 100644 --- a/BotLibrary/library/time.py +++ b/BotLibrary/library/time.py @@ -0,0 +1,49 @@ +# BotLibrary/library/time.py +# Библиотека поиски времени + +import pytz +from tzlocal import get_localzone +from datetime import datetime + +# Настройка экспорта модулей и логирования +__all__ = ("TimeVariable", "host_time", "get_choice_time", "get_time_zone") +log_type = "Time" + + +"""Создание класса с временными параметрами""" +class TimeVariable: + format = "%Y-%m-%d %H:%M:%S" + another_format = "%S:%M:%H %d-%m-%Y" + choice_main_utc = "Asia/Novosibirsk" + choice_utc_msk = "Europe/Moscow" + + +"""Получение времени хоста и иного места""" +timezone = pytz.timezone(TimeVariable.choice_utc_msk) +host_time = datetime.now(timezone) + + +"""Функция получения локальной временной зоны""" +def get_time_zone(): + local_timezone = get_localzone() + return local_timezone.key + + +"""Возвращает текущее время по выбранному часовому поясу в формате строки""" +def get_choice_time(choice_utc): + # Текущее время в UTC + utc_now = datetime.now(pytz.utc) + + # Московский часовой пояс + choice_tz = pytz.timezone(choice_utc) + + # Перевод времени в московский часовой пояс + choice_now = utc_now.astimezone(choice_tz) + + # Смещение UTC для Москвы + utc_offset_choice = choice_now.utcoffset().total_seconds() / 3600 # Смещение в часах + + # Форматирование времени + choice_time = choice_now.strftime(TimeVariable.format) + f" (UTC{int(utc_offset_choice):+})" + + return choice_time