Обработчик команды /start_time и времени

This commit is contained in:
Whyverum
2024-12-23 22:04:12 +07:00
parent 133c8fa843
commit c39453bd7c
2 changed files with 55 additions and 4 deletions

View File

@@ -4,11 +4,13 @@
from aiogram import Router, types, F from aiogram import Router, types, F
from aiogram.filters import Command from aiogram.filters import Command
from BotLibrary import * 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") router = Router(name="start_time_router")
log_type = "Start_Time" log_type = "Start_Time"
description = "Время запуска"
# Список ключевых слов для команды # Список ключевых слов для команды
start_time_keywords = ["start_time", "stime", "старт_время", "время_старта", "сремя", start_time_keywords = ["start_time", "stime", "старт_время", "время_старта", "сремя",
@@ -17,7 +19,7 @@ start_time_keywords = ["start_time", "stime", "старт_время", "врем
# Хэндлер на команду /start_time # Хэндлер на команду /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)) @router.message(F.text.lower().in_(start_time_keywords))
async def start_time(message: types.Message, started_at: str, started_at_msk: str): async def start_time(message: types.Message, started_at: str, started_at_msk: str):
try: 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) await cmd_logginger(message, log_type, text)
return text await msg_default(message)
# Проверка на ошибку и ее логирование # Проверка на ошибку и ее логирование
except Exception as e: except Exception as e:

View File

@@ -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