circular-fix
Some checks failed
Deploy on push / deploy (push) Failing after 17s

This commit is contained in:
2025-08-17 16:33:54 +03:00
parent bc8447a444
commit e78e12eeee
65 changed files with 3304 additions and 1051 deletions

View File

@@ -1,9 +1,9 @@
import asyncio
import os
import time
from datetime import datetime, timedelta, timezone
from datetime import UTC, datetime, timedelta
from pathlib import Path
from typing import ClassVar, Optional
from typing import ClassVar
# ga
from google.analytics.data_v1beta import BetaAnalyticsDataClient
@@ -38,13 +38,13 @@ class ViewedStorage:
shouts_by_author: ClassVar[dict] = {}
views = None
period = 60 * 60 # каждый час
analytics_client: Optional[BetaAnalyticsDataClient] = None
analytics_client: BetaAnalyticsDataClient | None = None
auth_result = None
running = False
redis_views_key = None
last_update_timestamp = 0
start_date = datetime.now(tz=timezone.utc).strftime("%Y-%m-%d")
_background_task: Optional[asyncio.Task] = None
start_date = datetime.now(tz=UTC).strftime("%Y-%m-%d")
_background_task: asyncio.Task | None = None
@staticmethod
async def init() -> None:
@@ -120,11 +120,11 @@ class ViewedStorage:
timestamp = await redis.execute("HGET", latest_key, "_timestamp")
if timestamp:
self.last_update_timestamp = int(timestamp)
timestamp_dt = datetime.fromtimestamp(int(timestamp), tz=timezone.utc)
timestamp_dt = datetime.fromtimestamp(int(timestamp), tz=UTC)
self.start_date = timestamp_dt.strftime("%Y-%m-%d")
# Если данные сегодняшние, считаем их актуальными
now_date = datetime.now(tz=timezone.utc).strftime("%Y-%m-%d")
now_date = datetime.now(tz=UTC).strftime("%Y-%m-%d")
if now_date == self.start_date:
logger.info(" * Views data is up to date!")
else:
@@ -291,7 +291,7 @@ class ViewedStorage:
self.running = False
break
if failed == 0:
when = datetime.now(timezone.utc) + timedelta(seconds=self.period)
when = datetime.now(UTC) + timedelta(seconds=self.period)
t = format(when.astimezone().isoformat())
logger.info(" ⎩ next update: %s", t.split("T")[0] + " " + t.split("T")[1].split(".")[0])
await asyncio.sleep(self.period)