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