mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-18 16:36:15 +00:00
del get_file_ops_status_by_day
This commit is contained in:
@@ -9,11 +9,10 @@ from rest_framework.views import APIView
|
|||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from seahub.utils import get_file_ops_stats, get_file_ops_stats_by_day, \
|
from seahub.utils import get_file_ops_stats_by_day, \
|
||||||
get_total_storage_stats_by_day, get_user_activity_stats_by_day, \
|
get_total_storage_stats_by_day, get_user_activity_stats_by_day, \
|
||||||
is_pro_version, EVENTS_ENABLED
|
is_pro_version, EVENTS_ENABLED
|
||||||
from seahub.utils.timeutils import datetime_to_isoformat_timestr
|
from seahub.utils.timeutils import datetime_to_isoformat_timestr
|
||||||
from seahub.settings import TIME_ZONE
|
|
||||||
|
|
||||||
from seahub.api2.authentication import TokenAuthentication
|
from seahub.api2.authentication import TokenAuthentication
|
||||||
from seahub.api2.throttling import UserRateThrottle
|
from seahub.api2.throttling import UserRateThrottle
|
||||||
@@ -66,19 +65,14 @@ class FileOperationsView(APIView):
|
|||||||
param:
|
param:
|
||||||
start: the start time of the query.
|
start: the start time of the query.
|
||||||
end: the end time of the query.
|
end: the end time of the query.
|
||||||
group_by: group records by day or by hour, default group by hour.
|
|
||||||
return:
|
return:
|
||||||
the list of file operations record.
|
the list of file operations record.
|
||||||
"""
|
"""
|
||||||
group_by = request.GET.get("group_by", "hour")
|
offset = get_time_offset()
|
||||||
if group_by.lower() not in ["hour", "day"]:
|
data = get_file_ops_stats_by_day(start_time, end_time, offset)
|
||||||
error_msg = "group_by can only be day or hour."
|
ops_added_dict = get_init_data(start_time, end_time)
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
ops_visited_dict = get_init_data(start_time, end_time)
|
||||||
|
ops_deleted_dict = get_init_data(start_time, end_time)
|
||||||
data = get_data_by_hour_or_day(group_by, start_time, end_time, get_file_ops_stats, get_file_ops_stats_by_day)
|
|
||||||
ops_added_dict = get_init_data(start_time, end_time, group_by)
|
|
||||||
ops_visited_dict = get_init_data(start_time, end_time, group_by)
|
|
||||||
ops_deleted_dict = get_init_data(start_time, end_time, group_by)
|
|
||||||
|
|
||||||
for e in data:
|
for e in data:
|
||||||
if e[1] == 'Added':
|
if e[1] == 'Added':
|
||||||
@@ -107,7 +101,7 @@ class TotalStorageView(APIView):
|
|||||||
data = get_total_storage_stats_by_day(start_time, end_time, get_time_offset())
|
data = get_total_storage_stats_by_day(start_time, end_time, get_time_offset())
|
||||||
|
|
||||||
res_data = []
|
res_data = []
|
||||||
init_data = get_init_data(start_time, end_time, 'day')
|
init_data = get_init_data(start_time, end_time)
|
||||||
for e in data:
|
for e in data:
|
||||||
init_data[e[0]] = e[1]
|
init_data[e[0]] = e[1]
|
||||||
for k, v in init_data.items():
|
for k, v in init_data.items():
|
||||||
@@ -126,7 +120,7 @@ class ActiveUsersView(APIView):
|
|||||||
data = get_user_activity_stats_by_day(start_time, end_time, get_time_offset())
|
data = get_user_activity_stats_by_day(start_time, end_time, get_time_offset())
|
||||||
|
|
||||||
res_data = []
|
res_data = []
|
||||||
init_data = get_init_data(start_time, end_time, 'day')
|
init_data = get_init_data(start_time, end_time)
|
||||||
for e in data:
|
for e in data:
|
||||||
init_data[e[0]] = e[1]
|
init_data[e[0]] = e[1]
|
||||||
for k, v in init_data.items():
|
for k, v in init_data.items():
|
||||||
@@ -135,20 +129,14 @@ class ActiveUsersView(APIView):
|
|||||||
return Response(sorted(res_data, key=lambda x: x['datetime']))
|
return Response(sorted(res_data, key=lambda x: x['datetime']))
|
||||||
|
|
||||||
|
|
||||||
def get_init_data(start_time, end_time, group_by):
|
def get_init_data(start_time, end_time):
|
||||||
res = {}
|
res = {}
|
||||||
if group_by == 'hour':
|
|
||||||
start_time = start_time.replace(minute=0).replace(second=0)
|
|
||||||
end_time = end_time.replace(minute=0).replace(second=0)
|
|
||||||
time_delta = end_time - start_time
|
|
||||||
date_length = (time_delta.days * 24) + time_delta.seconds/3600 + 1
|
|
||||||
else:
|
|
||||||
start_time = start_time.replace(hour=0).replace(minute=0).replace(second=0)
|
start_time = start_time.replace(hour=0).replace(minute=0).replace(second=0)
|
||||||
end_time = end_time.replace(hour=0).replace(minute=0).replace(second=0)
|
end_time = end_time.replace(hour=0).replace(minute=0).replace(second=0)
|
||||||
time_delta = end_time - start_time
|
time_delta = end_time - start_time
|
||||||
date_length = time_delta.days + 1
|
date_length = time_delta.days + 1
|
||||||
for offset in range(date_length):
|
for offset in range(date_length):
|
||||||
offset = offset if group_by == 'hour' else offset * 24
|
offset = offset * 24
|
||||||
dt = start_time + datetime.timedelta(hours=offset)
|
dt = start_time + datetime.timedelta(hours=offset)
|
||||||
res[dt] = 0
|
res[dt] = 0
|
||||||
return res
|
return res
|
||||||
@@ -157,12 +145,3 @@ def get_time_offset():
|
|||||||
timezone_name = timezone.get_current_timezone_name()
|
timezone_name = timezone.get_current_timezone_name()
|
||||||
offset = pytz.timezone(timezone_name).localize(datetime.datetime.now()).strftime('%z')
|
offset = pytz.timezone(timezone_name).localize(datetime.datetime.now()).strftime('%z')
|
||||||
return offset[:3] + ':' + offset[3:]
|
return offset[:3] + ':' + offset[3:]
|
||||||
|
|
||||||
|
|
||||||
def get_data_by_hour_or_day(parameter, start_time, end_time, func, func_by_day):
|
|
||||||
offset = get_time_offset()
|
|
||||||
if parameter == "hour":
|
|
||||||
data = func(start_time, end_time, offset)
|
|
||||||
elif parameter == "day":
|
|
||||||
data = func_by_day(start_time, end_time, offset)
|
|
||||||
return data
|
|
||||||
|
@@ -685,13 +685,6 @@ if EVENTS_CONFIG_FILE:
|
|||||||
|
|
||||||
return events if events else None
|
return events if events else None
|
||||||
|
|
||||||
def get_file_ops_stats(start, end, offset):
|
|
||||||
""" Return file audit record of specifiy time.
|
|
||||||
"""
|
|
||||||
with _get_seafevents_session() as session:
|
|
||||||
res = seafevents.get_file_ops_stats(session, start, end, offset)
|
|
||||||
return res
|
|
||||||
|
|
||||||
def get_file_ops_stats_by_day(start, end, offset):
|
def get_file_ops_stats_by_day(start, end, offset):
|
||||||
""" return file audit record of sepcifiy time group by day.
|
""" return file audit record of sepcifiy time group by day.
|
||||||
"""
|
"""
|
||||||
@@ -761,8 +754,6 @@ else:
|
|||||||
pass
|
pass
|
||||||
def get_file_audit_events():
|
def get_file_audit_events():
|
||||||
pass
|
pass
|
||||||
def get_file_ops_stats():
|
|
||||||
pass
|
|
||||||
def get_file_ops_stats_by_day():
|
def get_file_ops_stats_by_day():
|
||||||
pass
|
pass
|
||||||
def get_total_storage_stats_by_day():
|
def get_total_storage_stats_by_day():
|
||||||
|
Reference in New Issue
Block a user