90 lines
2.1 KiB
Python
Executable File
90 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Test script to render the library view and save it as PNG.
|
|
This helps verify the rendering is working correctly.
|
|
"""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Add parent directory to path
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
from dreader.library import LibraryManager
|
|
|
|
|
|
def main():
|
|
"""Test library rendering and save as PNG."""
|
|
|
|
library_path = "tests/data/library-epub"
|
|
output_path = "library_render_test.png"
|
|
|
|
print("=" * 60)
|
|
print("Library Rendering Test")
|
|
print("=" * 60)
|
|
print(f"Library path: {library_path}")
|
|
print(f"Output file: {output_path}")
|
|
print()
|
|
|
|
# Create library manager
|
|
print("Creating library manager...")
|
|
library = LibraryManager(
|
|
library_path=library_path,
|
|
page_size=(1872, 1404)
|
|
)
|
|
|
|
# Scan library
|
|
print("Scanning library...")
|
|
library.scan_library()
|
|
|
|
print()
|
|
print(f"Found {len(library.books)} books:")
|
|
for book in library.books:
|
|
print(f" - {book['title']} by {book['author']}")
|
|
print()
|
|
|
|
# Create library table (renders the first page)
|
|
print("Creating library table (page 1)...")
|
|
library.create_library_table(page=0)
|
|
|
|
# Render the table
|
|
print("Rendering library view...")
|
|
image = library.render_library()
|
|
|
|
if image:
|
|
print(f"Image size: {image.size}")
|
|
print(f"Image mode: {image.mode}")
|
|
|
|
# Save as PNG
|
|
print(f"Saving to {output_path}...")
|
|
image.save(output_path)
|
|
|
|
print()
|
|
print("=" * 60)
|
|
print("SUCCESS!")
|
|
print("=" * 60)
|
|
print(f"Library view saved to: {output_path}")
|
|
print()
|
|
print("You can view the image with:")
|
|
print(f" xdg-open {output_path} # Linux")
|
|
print(f" open {output_path} # macOS")
|
|
print()
|
|
|
|
return 0
|
|
else:
|
|
print()
|
|
print("=" * 60)
|
|
print("ERROR: No image rendered")
|
|
print("=" * 60)
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
sys.exit(main())
|
|
except Exception as e:
|
|
print(f"\nERROR: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|