导出所有数据库的聊天记录

This commit is contained in:
shuaikangzhou
2023-11-16 23:16:38 +08:00
parent 38080499cd
commit 9c7cb674f8
4 changed files with 89 additions and 56 deletions

View File

@@ -1,24 +1,40 @@
import os.path
import re
import sqlite3
DB = None
cursor = None
msg_path = "./app/Database/Msg/MSG0.db"
DB = []
cursor = []
msg_root_path = "./app/Database/Msg/"
# misc_path = './Msg/Misc.db'
if os.path.exists(msg_path):
DB = sqlite3.connect(msg_path, check_same_thread=False)
# '''创建游标'''
cursor = DB.cursor()
if os.path.exists(msg_root_path):
for root, dirs, files in os.walk(msg_root_path):
for file in files:
if re.match('^MSG[0-9]+\.db$', file):
# print('ok', file)
msg_path = os.path.join(msg_root_path, file)
DB0 = sqlite3.connect(msg_path, check_same_thread=False)
# '''创建游标'''
cursor0 = DB0.cursor()
DB.append(DB0)
cursor.append(cursor0)
def init_database():
global DB
global cursor
if not DB:
if os.path.exists(msg_path):
DB = sqlite3.connect(msg_path, check_same_thread=False)
# '''创建游标'''
cursor = DB.cursor()
if os.path.exists(msg_root_path):
for root, dirs, files in os.walk(msg_root_path):
for file in files:
# print(file)
if re.match('^MSG[0-9]+\.db$', file):
print('ok', file)
msg_path = os.path.join(msg_root_path, file)
DB0 = sqlite3.connect(msg_path, check_same_thread=False)
# '''创建游标'''
cursor0 = DB0.cursor()
DB.append(DB0)
cursor.append(cursor0)
def get_messages(username_):
@@ -28,15 +44,25 @@ def get_messages(username_):
where StrTalker=?
order by CreateTime
'''
cursor.execute(sql, [username_])
result_ = cursor.fetchall()
return result_
result = []
for cur in cursor:
cur.execute(sql, [username_])
result_ = cur.fetchall()
# print(len(result))
result += result_
result.sort(key=lambda x: x[5])
return result
def close():
for db in DB:
db.close()
if __name__ == '__main__':
from pprint import pprint
msg_path = './Msg/MSG3.db'
msg_root_path = './Msg/'
init_database()
username = 'wxid_0o18ef858vnu22'