Ying Jiang
dockerize for local db testing but unfortunately no gui
fa36d82
"""
Run get/list operations and print results (no writes).
Run from backend: python -m db.test_functions.query_data ***
Requires DATABASE_URL in backend/.env.
"""
import db
def run():
print("=== list_mangas (default: newest first) ===\n")
mangas = db.list_mangas()
for m in mangas:
print(f" {m.provider_id} | {m.manga_title}")
print(f"\n Total: {len(mangas)} manga(s)\n")
if not mangas:
print("No data. Run: python -m db.test_functions.create_data")
return
first_manga = mangas[0]
provider_id = first_manga.provider_id
manga_title = first_manga.manga_title
chapters = db.list_chapters(manga_title, provider_id=provider_id)
if not chapters:
print(f"No chapters for {manga_title}. Run create_data to add pages.")
return
chapter_number = chapters[0].chapter_number
print(f"=== list_chapters({manga_title!r}, provider_id={provider_id!r}) ===\n")
for c in chapters[:5]:
print(f" ch.{c.chapter_number} (id={c.id})")
if len(chapters) > 5:
print(f" ... and {len(chapters) - 5} more chapter(s)")
print(f"\n Total: {len(chapters)} chapter(s)\n")
print(f"=== get_chapter_segments({provider_id!r}, {manga_title!r}, {chapter_number}) ===\n")
segments = db.get_chapter_segments(provider_id, manga_title, chapter_number)
for i, s in enumerate(segments[:5]): # show first 5
print(f" [{i+1}] page {s.page_number} seg {s.segment_index}: {s.original_text[:30]!r}{s.translated_text[:30]!r}")
if len(segments) > 5:
print(f" ... and {len(segments) - 5} more segment(s)")
print(f"\n Total: {len(segments)} segment(s) in chapter\n")
print(f"=== get_segments (provider_id={provider_id!r}, manga_title={manga_title!r}, chapter_number={chapter_number}, page_number=1) ===\n")
page_segments = db.get_segments(
provider_id=provider_id,
manga_title=manga_title,
chapter_number=chapter_number,
page_number=1,
)
for s in page_segments:
print(f" seg {s.segment_index}: {s.translated_text!r}")
print(f"\n Total: {len(page_segments)} segment(s) on page 1\n")
print("=== get_segments (no filters: all segments) ===\n")
all_segments = db.get_segments()
for s in all_segments:
print(f" {s.provider_id} | {s.manga_title} ch.{s.chapter_number} | {s.page_number} | {s.segment_index}: {s.translated_text!r}")
print(f"\n Total: {len(all_segments)} segment(s)\n")
if __name__ == "__main__":
run()