读取群聊数据,主要为 wxid,以及对应昵称

This commit is contained in:
xaoyaoo 2024-04-05 19:18:01 +08:00
parent fba58803b9
commit d1d92cfa0d
2 changed files with 33 additions and 2 deletions

View File

@ -251,6 +251,25 @@ def wordcloud_generator(text, out_path="", is_show=False, img_path="", font="C:\
wordcloud_img.show()
def convert_bytes_to_str(d):
"""
遍历字典并将bytes转换为字符串
:param d:
:return:
"""
for k, v in d.items():
if isinstance(v, dict):
convert_bytes_to_str(v)
elif isinstance(v, list):
for item in v:
if isinstance(item, dict):
convert_bytes_to_str(item)
elif isinstance(item, bytes):
item = item.decode('utf-8') # 将bytes转换为字符串
elif isinstance(v, bytes):
d[k] = v.decode('utf-8')
def read_BytesExtra(BytesExtra):
if BytesExtra is None or not isinstance(BytesExtra, bytes):
return None
@ -259,3 +278,15 @@ def read_BytesExtra(BytesExtra):
return deserialize_data
except Exception as e:
return None
def read_ChatRoom_RoomData(RoomData):
# 读取群聊数据,主要为 wxid以及对应昵称
if RoomData is None or not isinstance(RoomData, bytes):
return None
try:
data = read_BytesExtra(RoomData)
convert_bytes_to_str(data)
return data
except Exception as e:
return None

View File

@ -20,6 +20,7 @@ def time_int2str(time_int):
"""
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_int))
def read_dict_all_values(data):
"""
读取字典中所有的值单层
@ -199,7 +200,6 @@ class DBPool:
cls.__db_pool[db_path] = sqlite3.connect(db_path, check_same_thread=False)
cls.connection = cls.__db_pool[db_path]
def __init__(self, db_path):
if db_path == "DBPOOL_INIT":
return