Обработчик команды /start_time и времени
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user