Commit Graph

21 Commits

Author SHA1 Message Date
pacnpal
d03e8dc8e8 ch ch ch changes 2024-11-18 01:01:12 +00:00
pacnpal
7276e37cab y 2024-11-18 00:51:55 +00:00
pacnpal
afe0e96b14 Adding queue.types to the module reload list in the main init.py
Properly exposing QueueProcessor in processor/init.py
Updating queue/init.py to import and expose all necessary types (QueuePriority, ProcessingMetrics)
Ensuring consistent import patterns across the codebase
The changes maintain the cog's architecture while fixing the import issues:

Module reloading system now includes all dependencies
Package hierarchy properly exposes all needed types
Import structure is consistent across components
All necessary types and models are accessible
2024-11-17 23:51:11 +00:00
pacnpal
d9ce39e38b fix(processor): add fallback to absolute imports in core.py 2024-11-17 22:53:40 +00:00
pacnpal
b8f29341ce fixes 2024-11-17 21:33:12 +00:00
pacnpal
439cf5ff07 Using TYPE_CHECKING for type hints
Moving runtime imports to appropriate locations
Using string literal type annotations
Importing shared utilities through the utils package
2024-11-17 21:24:49 +00:00
pacnpal
e997c6f6b9 Created a proper dependency hierarchy:
core/types.py - Contains shared interfaces and types
queue/types.py - Contains queue-specific types
Components now depend on interfaces rather than concrete implementations
Broke cyclic dependencies:

Removed direct imports between queue_processor.py and manager.py
Removed circular dependencies between core and processor modules
Components now communicate through well-defined interfaces
Improved architecture:

Clear separation of concerns
Better dependency management
More maintainable and testable code
Proper use of dependency injection
2024-11-17 21:11:00 +00:00
pacnpal
97dd6d72f2 loads of import fixes 2024-11-17 19:47:18 +00:00
pacnpal
62c97f0b01 Converted all 'from videoarchiver.' imports to relative imports 2024-11-17 16:05:12 +00:00
pacnpal
c830be2841 videoarchiver/config/validation_manager.py
videoarchiver/config/role_manager.py
videoarchiver/database/connection_manager.py
videoarchiver/database/schema_manager.py
videoarchiver/queue/cleaners/tracking_cleaner.py
videoarchiver/exceptions.py
videoarchiver/processor.py
videoarchiver/commands.py
videoarchiver/update_checker.py
videoarchiver/utils/path_manager.py
videoarchiver/utils/file_ops.py
videoarchiver/processor/message_validator.py
videoarchiver/utils/download_manager.py
2024-11-17 06:12:41 +00:00
pacnpal
247381fc8a Changing the relative import in core.py to use an absolute import path:
from videoarchiver.utils import progress_tracker
Updated the main init.py to properly handle module reloading:
Added 'videoarchiver.processor' and 'videoarchiver.processor.core' to modules_to_reload
Added explicit import and reload of the processor module
These changes ensure that:

The progress_tracker is properly imported from the utils package
All necessary modules are reloaded during initialization
Circular imports are avoided
The package structure maintains proper dependency flow
2024-11-17 01:29:00 +00:00
pacnpal
2557978cf3 lol 2024-11-17 01:03:45 +00:00
pacnpal
dac21f2fcd fixed 2024-11-16 22:32:08 +00:00
pacnpal
dd467df5fc Created a new constants.py file to store the REACTIONS dictionary
Updated all files to import REACTIONS from constants.py instead of reactions.py:
queue_processor.py
message_handler.py
reactions.py (now only contains reaction handling functions)
events.py (now imports REACTIONS from constants.py and handle_archived_reaction from reactions.py)
core.py
queue_handler.py
processor/init.py
2024-11-16 18:12:35 +00:00
pacnpal
a4ca6e8ea6 Core Systems:
Component-based architecture with lifecycle management
Enhanced error handling and recovery mechanisms
Comprehensive state management and tracking
Event-driven architecture with monitoring
Queue Management:

Multiple processing strategies for different scenarios
Advanced state management with recovery
Comprehensive metrics and health monitoring
Sophisticated cleanup system with multiple strategies
Processing Pipeline:

Enhanced message handling with validation
Improved URL extraction and processing
Better queue management and monitoring
Advanced cleanup mechanisms
Overall Benefits:

Better code organization and maintainability
Improved error handling and recovery
Enhanced monitoring and reporting
More robust and reliable system
2024-11-16 05:01:29 +00:00
pacnpal
8204df3599 Added process_video method to VideoProcessor class
Method delegates to queue_handler.process_video
Maintains proper separation of concerns between components
Preserves the existing video processing logic
2024-11-15 22:42:36 +00:00
pacnpal
512dd1ff88 Eliminating duplicate queue processing that was causing race conditions
Adding proper processing state tracking and timing
Implementing more aggressive monitoring (1-minute intervals)
Adding activity tracking to detect and recover from hung states
Improving error handling and logging throughout the system
Reducing timeouts and deadlock thresholds for faster recovery
2024-11-15 22:38:36 +00:00
pacnpal
73364e7438 ok 2024-11-15 22:27:29 +00:00
pacnpal
5fedd97b61 yeah 2024-11-15 22:02:19 +00:00
pacnpal
dae8bbb6b4 Adding the 'db' parameter to the VideoProcessor class initialization
Properly storing and handling the db instance
Ensuring the db is passed to the queue_handler when available
The QueueHandler class was already properly set up to handle the db parameter, so no changes were needed there. The database integration should now work correctly for:

Checking if videos are already archived
Adding newly archived videos to the database
Providing archived video information to users
2024-11-15 19:22:52 +00:00
pacnpal
971d52bd00 Separation of Concerns:
Core processing logic in VideoProcessor class
Dedicated message handling in MessageHandler
Queue operations in QueueHandler
Progress tracking in ProgressTracker
Reaction management in reactions.py
Improved Maintainability:
Each component has a single responsibility
Easier to test individual components
Better code organization and readability
Reduced file sizes for better version control
Better Resource Management:
Centralized progress tracking
Isolated queue operations
Cleaner cleanup processes
Optimized Imports:
Components can be imported individually as needed
Main processor.py provides backward compatibility
Clear module interface through init.py
2024-11-15 18:58:05 +00:00