sync prototype

This commit is contained in:
jpt 2025-05-03 21:26:00 -05:00
parent 5ca4a54ffb
commit 0981bd4d19
3 changed files with 34 additions and 3 deletions

View File

@ -3,7 +3,8 @@ import httpx
import lxml.html import lxml.html
import sqlite3 import sqlite3
from typing_extensions import Annotated from typing_extensions import Annotated
from .db import initialize_db from .db import initialize_db, db
from .sync import full_sync
from .tui.things import run as things_tui from .tui.things import run as things_tui
# from .tui.overview import run as overview_tui # from .tui.overview import run as overview_tui
@ -68,8 +69,6 @@ def backup(backup_path: str):
""" """
Perform a SQLite backup using the .backup dot command Perform a SQLite backup using the .backup dot command
""" """
from tt.db import db
conn = db.connection() conn = db.connection()
backup_conn = None backup_conn = None
@ -81,5 +80,14 @@ def backup(backup_path: str):
backup_conn.close() backup_conn.close()
@app.command()
def sync():
"""
Sync with tt server.
"""
initialize_db()
full_sync()
if __name__ == "__main__": if __name__ == "__main__":
app() app()

View File

@ -80,6 +80,8 @@ def get_things(
# TODO: which fields are searchable should by dynamic # TODO: which fields are searchable should by dynamic
query = query.where(fn.Lower(Thing.data["text"]).contains(search_text.lower())) query = query.where(fn.Lower(Thing.data["text"]).contains(search_text.lower()))
if filters is None:
filters = {}
for param, val in filters.items(): for param, val in filters.items():
if val is not None: if val is not None:
# no _in query for JSON fields, so use OR # no _in query for JSON fields, so use OR

21
src/tt/sync.py Normal file
View File

@ -0,0 +1,21 @@
import httpx
from .controller.things import get_things
def sync_thing(thing):
resp = httpx.post(
"http://localhost:9999/api/thing/?api_key=j@jpt.sh",
json={
"id": thing.id,
"data": thing.data,
"type": thing.type,
}
)
print(resp.text)
resp.raise_for_status()
def full_sync():
# all things for now
for thing in get_things(None, None):
sync_thing(thing)