From c39453bd7c83d09b6d124f1ae2c95fb0aa9ee627 Mon Sep 17 00:00:00 2001 From: Whyverum Date: Mon, 23 Dec 2024 22:04:12 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D1=87=D0=B8=D0=BA=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B?= =?UTF-8?q?=20/start=5Ftime=20=D0=B8=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commands/user_cmd/start_time_cmd.py | 10 ++-- BotLibrary/library/time.py | 49 +++++++++++++++++++ 2 files changed, 55 insertions(+), 4 deletions(-) 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