33 lines
1011 B
Python
33 lines
1011 B
Python
#!/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)
|