WeChatMsg/wxManager/db_v4/audio2text.py

67 lines
1.8 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time : 2025/4/1 20:31
@Author : SiYuan
@Email : 863909694@qq.com
@File : wxManager-audio2text.py
@Description :
"""
import os
import sqlite3
import traceback
from wxManager.merge import increase_update_data, increase_data
from wxManager.model.db_model import DataBaseBase
class Audio2TextDB(DataBaseBase):
def create(self):
sql = '''
CREATE TABLE IF NOT EXISTS Audio2Text (
ID INTEGER PRIMARY KEY,
msgSvrId INTEGER UNIQUE,
Text TEXT NOT NULL
);
'''
cursor = self.DB.cursor()
cursor.execute(sql)
# 创建索引
cursor.execute('''CREATE UNIQUE INDEX IF NOT EXISTS idx_msg_id ON Audio2Text (msgSvrId);''')
self.commit()
def get_audio_text(self, server_id):
sql = '''select text from Audio2Text where msgSvrId=?'''
cursor = self.DB.cursor()
cursor.execute(sql, [server_id])
result = cursor.fetchone()
if result:
return result[0]
else:
return ''
def add_text(self, server_id, text):
try:
cursor = self.DB.cursor()
sql = '''INSERT INTO Audio2Text (msgSvrId, Text) VALUES (?, ?)'''
cursor.execute(sql, [server_id, text])
self.commit()
return True
except sqlite3.IntegrityError:
return False
except:
return False
def merge(self, db_path):
if not (os.path.exists(db_path) or os.path.isfile(db_path)):
print(f'{db_path} 不存在')
return
try:
# 获取列名
increase_data(db_path, self.cursor, self.DB, 'Audio2Text', 'msgSvrId')
except:
print(f"数据库操作错误: {traceback.format_exc()}")
self.DB.rollback()