This commit is contained in:
parent
753a77ae72
commit
bd004f6fce
|
@ -22,7 +22,6 @@ logger = logging.getLogger('\t[services.viewed]\t')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
GOOGLE_KEYFILE_PATH = os.environ.get('GOOGLE_KEYFILE_PATH', '/dump/google-service.json')
|
GOOGLE_KEYFILE_PATH = os.environ.get('GOOGLE_KEYFILE_PATH', '/dump/google-service.json')
|
||||||
GOOGLE_GA_VIEW_ID = os.environ.get('GOOGLE_GA_VIEW_ID', '')
|
|
||||||
# GOOGLE_ANALYTICS_API = 'https://analyticsreporting.googleapis.com/v4'
|
# GOOGLE_ANALYTICS_API = 'https://analyticsreporting.googleapis.com/v4'
|
||||||
GOOGLE_ANALYTICS_SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
|
GOOGLE_ANALYTICS_SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
|
||||||
|
|
||||||
|
@ -51,29 +50,27 @@ class ViewedStorage:
|
||||||
"""Подключение к клиенту Google Analytics с использованием аутентификации"""
|
"""Подключение к клиенту Google Analytics с использованием аутентификации"""
|
||||||
self = ViewedStorage
|
self = ViewedStorage
|
||||||
async with self.lock:
|
async with self.lock:
|
||||||
if os.path.exists(GOOGLE_KEYFILE_PATH) and GOOGLE_GA_VIEW_ID:
|
if os.path.exists(GOOGLE_KEYFILE_PATH):
|
||||||
self.analytics_client = get_service()
|
self.analytics_client = get_service()
|
||||||
logger.info(f' * Постоянная авторизация в Google Analytics {self.analytics_client}')
|
logger.info(f' * Постоянная авторизация в Google Analytics {self.analytics_client}')
|
||||||
|
|
||||||
# Загрузка предварительно подсчитанных просмотров из файла JSON
|
# Загрузка предварительно подсчитанных просмотров из файла JSON
|
||||||
self.load_precounted_views()
|
self.load_precounted_views()
|
||||||
|
|
||||||
# Установка диапазона дат на основе времени создания файла views.json
|
|
||||||
file_path = '/dump/views.json'
|
file_path = '/dump/views.json'
|
||||||
|
|
||||||
if os.path.exists(file_path):
|
if os.path.exists(file_path):
|
||||||
creation_time = os.path.getctime(file_path)
|
creation_time = os.path.getctime(file_path)
|
||||||
current_time = datetime.now().timestamp()
|
current_time = datetime.now().timestamp()
|
||||||
time_difference_seconds = current_time - creation_time
|
time_difference_seconds = current_time - creation_time
|
||||||
self.days_ago = int(time_difference_seconds / (24 * 3600)) # Convert seconds to days
|
self.days_ago = int(time_difference_seconds / (24 * 3600)) # Convert seconds to days
|
||||||
print(f'The file {file_path} was created {self. days_ago} days ago.')
|
logger.info(f'The file {file_path} was created {self. days_ago} days ago.')
|
||||||
else:
|
else:
|
||||||
print(f'The file {file_path} does not exist.')
|
logger.info(f'The file {file_path} does not exist.')
|
||||||
|
|
||||||
# Запуск фоновой задачи
|
# Запуск фоновой задачи
|
||||||
asyncio.create_task(self.worker())
|
asyncio.create_task(self.worker())
|
||||||
else:
|
else:
|
||||||
logger.info(' * Пожалуйста, добавьте ключевой файл Google Analytics и задайте переменную GOOGLE_GA_VIEW_ID')
|
logger.info(' * Пожалуйста, добавьте ключевой файл Google Analytics')
|
||||||
self.disabled = True
|
self.disabled = True
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -101,12 +98,10 @@ class ViewedStorage:
|
||||||
async with self.lock:
|
async with self.lock:
|
||||||
if self.analytics_client:
|
if self.analytics_client:
|
||||||
data = (
|
data = (
|
||||||
self.analytics_client.reports()
|
self.analytics_client.data().batchRunReports(
|
||||||
.batchGet(
|
{
|
||||||
body={
|
'requests': [
|
||||||
'reportRequests': [
|
|
||||||
{
|
{
|
||||||
'viewId': GOOGLE_GA_VIEW_ID,
|
|
||||||
'dateRanges': [{'startDate': f'{self.days_ago}daysAgo', 'endDate': 'today'}],
|
'dateRanges': [{'startDate': f'{self.days_ago}daysAgo', 'endDate': 'today'}],
|
||||||
'metrics': [{'expression': 'ga:pageviews'}],
|
'metrics': [{'expression': 'ga:pageviews'}],
|
||||||
'dimensions': [{'name': 'ga:pagePath'}],
|
'dimensions': [{'name': 'ga:pagePath'}],
|
||||||
|
|
Loading…
Reference in New Issue
Block a user