解锁并提取Linux客户端微信数据库 (vibe coded)
at 31 lines 1.2 kB view raw
1# -*- coding: utf-8 -*-# 2# ------------------------------------------------------------------------------- 3# Name: OpenIMMedia.py 4# Description: 负责处理语音数据库 5# Author: xaoyaoo 6# Date: 2024/04/15 7# ------------------------------------------------------------------------------- 8from .db_base import DatabaseBase 9from .utils import silk2audio, db_loger 10 11 12class OpenIMMediaHandler(DatabaseBase): 13 _class_name = "OpenIMMedia" 14 OpenIMMedia_required_tables = ["OpenIMMedia"] 15 16 def get_im_audio(self, MsgSvrID, is_play=False, is_wave=False, save_path=None, rate=24000): 17 if not self.tables_exist("OpenIMMedia"): 18 return False 19 sql = "select Buf from OpenIMMedia where Reserved0=? " 20 DBdata = self.execute(sql, (MsgSvrID,)) 21 if not DBdata: 22 return False 23 if len(DBdata) == 0: 24 return False 25 data = DBdata[0][0] # [1:] + b'\xFF\xFF' 26 try: 27 pcm_data = silk2audio(buf_data=data, is_play=is_play, is_wave=is_wave, save_path=save_path, rate=rate) 28 return pcm_data 29 except Exception as e: 30 db_loger.warning(e, exc_info=True) 31 return False