#!/usr/bin/env python from nicegui import ui from sqlalchemy import desc, select, create_engine, Engine from sqlalchemy.orm import sessionmaker from models import TvShowDB, LinkDB engine: Engine = create_engine('sqlite:///tvshows.db', echo=True) dbsession = sessionmaker(bind=engine) def scrarlsui(): global dbsession session = dbsession() stmt = select(TvShowDB).order_by(desc(TvShowDB.date)).limit(10) shows = session.scalars(stmt) with ui.column().classes('w-full items-center gap-4'): for show in shows: with ui.card().tight().classes('w-full max-w-xs'): ui.image(show.image_url) with ui.card_section(): ui.label(show.title) with ui.list().props('dense separator'): for l in show.links: with ui.item(): ui.link(f'🔗 {l.link}', l.link) if __name__ in {"__main__", "__mp_main__"}: ui.run(scrarlsui)