This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user