fixed databasequerymanager

This commit is contained in:
pacnpal
2024-11-16 17:57:37 +00:00
parent bdc1ce4f4c
commit 64f75c74c1
2 changed files with 81 additions and 83 deletions

View File

@@ -5,29 +5,30 @@ from pathlib import Path
from typing import Optional, Dict, Any, List
from .schema_manager import SchemaManager
from .query_manager import QueryManager
from .query_manager import DatabaseQueryManager
from .connection_manager import ConnectionManager
logger = logging.getLogger("VideoArchiverDB")
class VideoArchiveDB:
"""Manages the SQLite database for archived videos"""
def __init__(self, data_path: Path):
"""Initialize the database and its components
Args:
data_path: Path to the data directory
"""
# Set up database path
self.db_path = data_path / "archived_videos.db"
self.db_path.parent.mkdir(parents=True, exist_ok=True)
# Initialize managers
self.connection_manager = ConnectionManager(self.db_path)
self.schema_manager = SchemaManager(self.db_path)
self.query_manager = QueryManager(self.connection_manager)
self.query_manager = DatabaseQueryManager(self.connection_manager)
# Initialize database schema
self.schema_manager.initialize_schema()
logger.info("Video archive database initialized successfully")
@@ -39,16 +40,11 @@ class VideoArchiveDB:
message_id: int,
channel_id: int,
guild_id: int,
metadata: Optional[Dict[str, Any]] = None
metadata: Optional[Dict[str, Any]] = None,
) -> bool:
"""Add a newly archived video to the database"""
return await self.query_manager.add_archived_video(
original_url,
discord_url,
message_id,
channel_id,
guild_id,
metadata
original_url, discord_url, message_id, channel_id, guild_id, metadata
)
async def get_archived_video(self, url: str) -> Optional[Dict[str, Any]]:
@@ -64,17 +60,10 @@ class VideoArchiveDB:
return await self.query_manager.get_guild_stats(guild_id)
async def get_channel_videos(
self,
channel_id: int,
limit: int = 100,
offset: int = 0
self, channel_id: int, limit: int = 100, offset: int = 0
) -> List[Dict[str, Any]]:
"""Get archived videos for a channel"""
return await self.query_manager.get_channel_videos(
channel_id,
limit,
offset
)
return await self.query_manager.get_channel_videos(channel_id, limit, offset)
async def cleanup_old_records(self, days: int) -> int:
"""Clean up records older than specified days"""