diff --git a/pywxdump/api/remote_server.py b/pywxdump/api/remote_server.py index 1c0a7ee..ae5ddb6 100644 --- a/pywxdump/api/remote_server.py +++ b/pywxdump/api/remote_server.py @@ -451,15 +451,24 @@ def get_export_json(): # start 聊天记录分析api ************************************************************************************************** @rs_api.route('/api/rs/date_count', methods=["GET", 'POST']) -@error9999 def get_date_count(): """ 获取日期统计 + :return: """ + if request.method == "GET": + word = request.args.get("wxid", "") + elif request.method == "POST": + word = request.json.get("wxid", "") + else: + return ReJson(1003, msg="Unsupported method") + print(word) + + my_wxid = get_conf(g.caf, g.at, "last") if not my_wxid: return ReJson(1001, body="my_wxid is required") - merge_path = get_conf(g.caf, my_wxid, "merge_path") - date_count = DBHandler(merge_path).date_count() + db_config = get_conf(g.caf, my_wxid, "db_config") + date_count = DBHandler(db_config).get_date_count(word) return ReJson(0, date_count) @@ -518,7 +527,7 @@ def get_readme(): res = requests.get(url) if res.status_code == 200: data = res.text - data = data.replace("#
PyWxDump
","") + data = data.replace("#
PyWxDump
", "") return ReJson(0, body=data) else: return ReJson(2001, body="status_code is not 200") diff --git a/pywxdump/db/dbMSG.py b/pywxdump/db/dbMSG.py index 04025b7..ea4b099 100644 --- a/pywxdump/db/dbMSG.py +++ b/pywxdump/db/dbMSG.py @@ -290,6 +290,24 @@ class MsgHandler(DatabaseBase): return rdata, list(wxid_list) + @db_error + def get_date_count(self, wxid=''): + """ + 获取日聊天记录数量 + """ + sql_base = ("SELECT strftime('%Y-%m-%d', CreateTime, 'unixepoch', 'localtime') as date, COUNT(*) " + "FROM MSG WHERE StrTalker not like '%chatroom%' ") + params = () + + sql_wxid = "AND StrTalker=? " if wxid else "" + params += (wxid,) if wxid else params + + sql = f"{sql_base} {sql_wxid} GROUP BY date ORDER BY date ASC;" + result = self.execute(sql, params) + if not result: + return {} + return {row[0]: row[1] for row in result} + @db_error def decompress_CompressContent(data):