Skip to content

Commit 3aea271

Browse files
committed
日聊天记录数量可用
1 parent 442d60e commit 3aea271

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

pywxdump/api/remote_server.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,15 +451,24 @@ def get_export_json():
451451
# start 聊天记录分析api **************************************************************************************************
452452

453453
@rs_api.route('/api/rs/date_count', methods=["GET", 'POST'])
454-
@error9999
455454
def get_date_count():
456455
"""
457456
获取日期统计
457+
:return:
458458
"""
459+
if request.method == "GET":
460+
word = request.args.get("wxid", "")
461+
elif request.method == "POST":
462+
word = request.json.get("wxid", "")
463+
else:
464+
return ReJson(1003, msg="Unsupported method")
465+
print(word)
466+
467+
459468
my_wxid = get_conf(g.caf, g.at, "last")
460469
if not my_wxid: return ReJson(1001, body="my_wxid is required")
461-
merge_path = get_conf(g.caf, my_wxid, "merge_path")
462-
date_count = DBHandler(merge_path).date_count()
470+
db_config = get_conf(g.caf, my_wxid, "db_config")
471+
date_count = DBHandler(db_config).get_date_count(word)
463472
return ReJson(0, date_count)
464473

465474

@@ -518,7 +527,7 @@ def get_readme():
518527
res = requests.get(url)
519528
if res.status_code == 200:
520529
data = res.text
521-
data = data.replace("# <center>PyWxDump</center>","")
530+
data = data.replace("# <center>PyWxDump</center>", "")
522531
return ReJson(0, body=data)
523532
else:
524533
return ReJson(2001, body="status_code is not 200")

pywxdump/db/dbMSG.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,24 @@ def get_msg_list(self, wxid="", start_index=0, page_size=500, msg_type: str = ""
290290

291291
return rdata, list(wxid_list)
292292

293+
@db_error
294+
def get_date_count(self, wxid=''):
295+
"""
296+
获取日聊天记录数量
297+
"""
298+
sql_base = ("SELECT strftime('%Y-%m-%d', CreateTime, 'unixepoch', 'localtime') as date, COUNT(*) "
299+
"FROM MSG WHERE StrTalker not like '%chatroom%' ")
300+
params = ()
301+
302+
sql_wxid = "AND StrTalker=? " if wxid else ""
303+
params += (wxid,) if wxid else params
304+
305+
sql = f"{sql_base} {sql_wxid} GROUP BY date ORDER BY date ASC;"
306+
result = self.execute(sql, params)
307+
if not result:
308+
return {}
309+
return {row[0]: row[1] for row in result}
310+
293311

294312
@db_error
295313
def decompress_CompressContent(data):

0 commit comments

Comments
 (0)