Добавлено использование переменной окружения TIMEZONE для корректного определения временной зоны в обработке дат и времени
All checks were successful
Deploy bot / build-deploy (push) Successful in 34s
All checks were successful
Deploy bot / build-deploy (push) Successful in 34s
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
FROM python:3.11-slim
|
FROM python:3.11-slim
|
||||||
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
ENV TIMEZONE=UTC
|
||||||
|
|
||||||
# Устанавливаем системные зависимости
|
# Устанавливаем системные зависимости
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
|||||||
11
main.py
11
main.py
@@ -1,6 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from zoneinfo import ZoneInfo
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from aiogram.client.default import DefaultBotProperties
|
from aiogram.client.default import DefaultBotProperties
|
||||||
from aiogram.enums import ParseMode
|
from aiogram.enums import ParseMode
|
||||||
@@ -23,6 +24,10 @@ TELEGRAM_TOKEN = os.getenv("TELEGRAM_TOKEN")
|
|||||||
TRILIUM_URL = os.getenv("TRILIUM_URL")
|
TRILIUM_URL = os.getenv("TRILIUM_URL")
|
||||||
TRILIUM_TOKEN = os.getenv("TRILIUM_TOKEN")
|
TRILIUM_TOKEN = os.getenv("TRILIUM_TOKEN")
|
||||||
INBOX_NOTE_ID = os.getenv("INBOX_NOTE_ID")
|
INBOX_NOTE_ID = os.getenv("INBOX_NOTE_ID")
|
||||||
|
TIMEZONE = os.getenv("TIMEZONE", "UTC") # Переменная окружения для timezone
|
||||||
|
|
||||||
|
# Получаем объект timezone
|
||||||
|
tz = ZoneInfo(TIMEZONE)
|
||||||
|
|
||||||
# создаем Trilium API клиент
|
# создаем Trilium API клиент
|
||||||
ea = ETAPI(server_url=TRILIUM_URL, token=TRILIUM_TOKEN)
|
ea = ETAPI(server_url=TRILIUM_URL, token=TRILIUM_TOKEN)
|
||||||
@@ -85,11 +90,11 @@ async def cmd_daily(message: Message, state: FSMContext):
|
|||||||
async def process_daily_text(message: Message, state: FSMContext):
|
async def process_daily_text(message: Message, state: FSMContext):
|
||||||
"""Обработка текста для дневной заметки"""
|
"""Обработка текста для дневной заметки"""
|
||||||
text = message.text
|
text = message.text
|
||||||
today = datetime.now().strftime("%Y-%m-%d")
|
today = datetime.now(tz).strftime("%Y-%m-%d")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
existing_content = ea.get_day_note(today)
|
existing_content = ea.get_day_note(today)
|
||||||
timestamp = datetime.now().strftime("%H:%M")
|
timestamp = datetime.now(tz).strftime("%H:%M")
|
||||||
new_content = f"{existing_content}<p><strong>{timestamp}</strong>: {text}</p>"
|
new_content = f"{existing_content}<p><strong>{timestamp}</strong>: {text}</p>"
|
||||||
ea.set_day_note(today, new_content)
|
ea.set_day_note(today, new_content)
|
||||||
|
|
||||||
@@ -141,7 +146,7 @@ async def handle_text_to_inbox(message: Message, state: FSMContext):
|
|||||||
lines = text.split("\n", 1)
|
lines = text.split("\n", 1)
|
||||||
title = lines[0][:100] # заголовок = первая строка
|
title = lines[0][:100] # заголовок = первая строка
|
||||||
content = lines[1] if len(lines) > 1 else "" # остальное — тело заметки
|
content = lines[1] if len(lines) > 1 else "" # остальное — тело заметки
|
||||||
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M")
|
timestamp = datetime.now(tz).strftime("%Y-%m-%d %H:%M")
|
||||||
# title = text[:50] + "..." if len(text) > 50 else text
|
# title = text[:50] + "..." if len(text) > 50 else text
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user