diff --git a/app/__pycache__/main.cpython-313.pyc b/app/__pycache__/main.cpython-313.pyc index e86ac03..a5ecf3d 100644 Binary files a/app/__pycache__/main.cpython-313.pyc and b/app/__pycache__/main.cpython-313.pyc differ diff --git a/app/main.py b/app/main.py index 349fd29..98640a9 100644 --- a/app/main.py +++ b/app/main.py @@ -59,7 +59,9 @@ async def get_file(file_id: str): @app.get("/search/lva") -async def search_lva(searchterm: str, searchlim: int = 10) -> List[Dict[str, str]]: +async def search_lva( + searchterm: str, searchlim: int = 10 +) -> List[Dict[str, int | str]]: res = [] cur = db.cursor(dictionary=True) if await is_LVID(searchterm): @@ -69,10 +71,15 @@ async def search_lva(searchterm: str, searchlim: int = 10) -> List[Dict[str, str res = cur.fetchall() else: cur.execute( - "SELECT lvid,lvname FROM LVAs WHERE lvname LIKE ?", - ("%" + searchterm + "%",), + "SELECT id,lvid,lvname FROM LVAs WHERE lvname LIKE ?", + (searchterm + "%",), ) res = cur.fetchall() + cur.execute( + "SELECT id,lvid,lvname FROM LVAs WHERE lvname LIKE ?", + ("%" + searchterm + "%",), + ) + res = remove_duplicates(res + cur.fetchall()) if searchlim == 0: return res else: @@ -81,13 +88,14 @@ async def search_lva(searchterm: str, searchlim: int = 10) -> List[Dict[str, str @app.get("/search/prof") async def search_profs( - searchterm: str = "", lvid: str = "", searchlim: int = 10 + searchterm: str = "", lid: int | None = None, searchlim: int = 10 ) -> List[Dict[str, str | int]]: res = [] + zw = [] cur = db.cursor(dictionary=True) - if lvid != "": - cur.execute("SELECT id FROM LVAs WHERE LVId=?", (lvid,)) - lid = cur.fetchall()[0]["id"] + if lid is not None: + # cur.execute("SELECT id FROM LVAs WHERE LVId=?", (lvid,)) + # lid = cur.fetchall()[0]["id"] cur.execute( "SELECT Profs.id,Profs.name FROM Profs LEFT JOIN LPLink ON Profs.id=LPLink.pid WHERE name like ? AND lid=?", ("%" + searchterm + "%", lid), @@ -115,7 +123,7 @@ async def search_profs( ) # NOT FULLY TESTED DUE TO INCOMPLETE DATABASE DUE TO INACCEPTABLE FOLDERSTRUCTURE async def search_subcats( searchterm: str = "", - lvid: str = "", + lid: int | None = None, pid: int | None = None, cat: int | None = None, searchlim: int = 10, @@ -123,16 +131,16 @@ async def search_subcats( res = [] rest = [] cur = db.cursor(dictionary=True) - if not (lvid == "" or pid is None or cat is None): # Rest is available - cur.execute("SELECT id FROM LVAs WHERE LVId=?", (lvid,)) - lid = cur.fetchall()[0]["id"] + if not (lid is None or pid is None or cat is None): # Rest is available + # cur.execute("SELECT id FROM LVAs WHERE LVId=?", (lvid,)) + # lid = cur.fetchall()[0]["id"] cur.execute( "SELECT id,name FROM SubCats WHERE lid=? AND pid=? AND cat=?", (lid, pid, cat), ) rest = cur.fetchall() if searchterm != "": # searchterm is available - if not (lvid == "" or pid is None or cat is None): + if not (lid is None or pid is None or cat is None): cur.execute( "SELECT id,name FROM SubCats WHERE lid=? AND pid=? AND cat=? AND name LIKE ?", (lid, pid, cat, "%" + searchterm + "%"), diff --git a/index.html b/index.html index 3c9fb7e..8b93d81 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ + @@ -27,10 +28,16 @@