/
buvanenko
/
tts-top
Обзор
Документация
Войти
/
buvanenko
/
tts-top
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/database.py
63 строки
2 KB
buvanenko
init
08 авг 2025, 07:48
08 авг 2025, 07:48
9c89ef5
Код
Авторство
О чём код?
import sqlite3 import hashlib from typing import Optional class TranscriptionCache: """Класс для работы с кэшем расшифровок в SQLite.""" def __init__(self, db_path: str = "transcriptions.db"): self.db_path = db_path self.init_database() def init_database(self): """Инициализация базы данных и создание таблицы.""" conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS transcriptions ( id INTEGER PRIMARY KEY AUTOINCREMENT, file_hash TEXT UNIQUE NOT NULL, text TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ''') cursor.execute(''' CREATE INDEX IF NOT EXISTS idx_file_hash ON transcriptions(file_hash) ''') conn.commit() conn.close() def get_transcription(self, file_hash: str) -> Optional[str]: """Получение расшифровки по хэшу файла.""" conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute( "SELECT text FROM transcriptions WHERE file_hash = ?", (file_hash,) ) result = cursor.fetchone() conn.close() return result[0] if result else None def save_transcription(self, file_hash: str, text: str) -> None: """Сохранение расшифровки в базу данных.""" conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute(''' INSERT OR REPLACE INTO transcriptions (file_hash, text) VALUES (?, ?) ''', (file_hash, text)) conn.commit() conn.close() def calculate_file_hash(audio_bytes: bytes) -> str: """Вычисление MD5 хэш-суммы аудиофайла.""" return hashlib.md5(audio_bytes).hexdigest()