From 187b9cce41a5314d32be608d964a89e5896193b6 Mon Sep 17 00:00:00 2001 From: xaoyaoo Date: Wed, 7 Aug 2024 10:24:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=81=8A=E5=A4=A9=E6=83=85?= =?UTF-8?q?=E5=86=B5=E7=83=AD=E5=8A=9B=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pywxdump/api/remote_server.py | 4 +++- pywxdump/db/dbMSG.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pywxdump/api/remote_server.py b/pywxdump/api/remote_server.py index fa26592..a6c32ce 100644 --- a/pywxdump/api/remote_server.py +++ b/pywxdump/api/remote_server.py @@ -462,11 +462,13 @@ def get_date_count(): word = rq_data.get("wxid", "") start_time = rq_data.get("start_time", 0) end_time = rq_data.get("end_time", 0) + time_format = rq_data.get("time_format", "%Y-%m-%d") my_wxid = get_conf(g.caf, g.at, "last") if not my_wxid: return ReJson(1001, body="my_wxid is required") db_config = get_conf(g.caf, my_wxid, "db_config") - date_count = DBHandler(db_config).get_date_count(wxid=word, start_time=start_time, end_time=end_time) + db = DBHandler(db_config) + date_count = db.get_date_count(wxid=word, start_time=start_time, end_time=end_time, time_format=time_format) return ReJson(0, date_count) diff --git a/pywxdump/db/dbMSG.py b/pywxdump/db/dbMSG.py index 4e5c985..a667878 100644 --- a/pywxdump/db/dbMSG.py +++ b/pywxdump/db/dbMSG.py @@ -291,7 +291,7 @@ class MsgHandler(DatabaseBase): return rdata, list(wxid_list) @db_error - def get_date_count(self, wxid='', start_time: int = 0, end_time: int = 0): + def get_date_count(self, wxid='', start_time: int = 0, end_time: int = 0, time_format='%Y-%m-%d'): """ 获取每日聊天记录数量,包括发送者数量、接收者数量和总数。 """ @@ -312,7 +312,8 @@ class MsgHandler(DatabaseBase): sql_time = "AND CreateTime BETWEEN ? AND ? " if start_time and end_time else "" params = params + (start_time, end_time) if start_time and end_time else params - sql = ("SELECT strftime('%Y-%m-%d', CreateTime, 'unixepoch', 'localtime') AS date, COUNT(*) AS total_count ," + sql = (f"SELECT strftime('{time_format}', CreateTime, 'unixepoch', 'localtime') AS date, " + " COUNT(*) AS total_count ," " SUM(CASE WHEN IsSender = 1 THEN 1 ELSE 0 END) AS sender_count, " " SUM(CASE WHEN IsSender = 0 THEN 1 ELSE 0 END) AS receiver_count " "FROM MSG "