diff --git a/database.py b/database.py index d195d0a..d0f68af 100644 --- a/database.py +++ b/database.py @@ -45,11 +45,19 @@ class Database(): last_path = cookies.get("last_path") return (last_path) + def get_last_cursor_pos(self): + cookies = self.get_cookies() + last_path = cookies.get("last_cursor_pos") + return (last_path) + def set_last_site(self, value): self.cookies_table.update(set("last_site", value), self.query.id == "0") def set_last_path(self, value): self.cookies_table.update(set("last_path", value), self.query.id == "0") + def set_last_cursor_pos(self, value): + self.cookies_table.update(set("last_cursor_pos", value), self.query.id == "0") + def add_site(self, site): self.sites_table.insert(site) diff --git a/main.py b/main.py index 6f13fc7..368dcbf 100644 --- a/main.py +++ b/main.py @@ -11,10 +11,12 @@ def files_navigator(site: dict): path = database.get_last_path() else: path = '/' + database.set_last_site(site.get("id")) while True: + pos = database.get_last_cursor_pos() path = get_uri(get_url(site) + path) database.set_last_path(path) - file = menu.files(site, path) + file = menu.files(site, path, database, pos) if (file == None): return elif (file == "../" and path == "/"): @@ -104,5 +106,5 @@ def sites_navigator(database: Database): database = Database() if (database.get_cookies_table_len() == 0): - database.add_cookies({"last_path": "", "last_site": "", "id": "0"}) + database.add_cookies({"last_path": "", "last_site": "", "last_cursor_pos": 0, "id": "0"}) sites_navigator(database); diff --git a/menu.py b/menu.py index 8f957ff..7a5e607 100644 --- a/menu.py +++ b/menu.py @@ -9,8 +9,8 @@ uri = "" preview_site = {} preview_database = "" -def get_user_choice_by_menu(options: list, title = None, preview_command=None, preview_size: float = 0.3, show_search_hint: bool = False, skip_empty_entries = False): - menu = Menu(options, title, preview_body_function=preview_command, preview_ratio=preview_size, skip_empty_option=skip_empty_entries +def get_user_choice_by_menu(options: list, title = None, preview_command=None, preview_size: float = 0.3, show_search_hint: bool = False, skip_empty_entries = False, cursor_pos: int = 0): + menu = Menu(options, title, preview_body_function=preview_command, preview_ratio=preview_size, skip_empty_option=skip_empty_entries, cursor_pos=cursor_pos ) return (menu.show()); @@ -33,7 +33,7 @@ def files_preview(filename: str) -> str: files = get_files(preview_site, uri + filename) return ("\n".join(files)) -def files(site, path): +def files(site:dict, path:str, database:Database, pos:int): global uri global preview_site @@ -44,9 +44,12 @@ def files(site, path): preview_command=files_preview, preview_size=0.3, show_search_hint=True, - title=f"Index of {path}") + title=f"Index of {path}", + cursor_pos = pos) if (choose == None): + database.set_last_cursor_pos(0) return (None) + database.set_last_cursor_pos(choose) return (files[choose]) def config_preview(site_name:str):