From 30b3e737caabdcd840a60f99c56171c460b9d505 Mon Sep 17 00:00:00 2001 From: starnakin Date: Mon, 15 May 2023 13:27:39 +0200 Subject: [PATCH] core: use simple-term-menu to create menu and fix: file name too long --- main.py | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/main.py b/main.py index 279b5ee..b4f4958 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ from tinydb import TinyDB, Query from bs4 import BeautifulSoup import requests import os +from simple_term_menu import TerminalMenu db = TinyDB("./database.json", indent=4) query = Query() @@ -15,17 +16,17 @@ if (nb_sites == 0): site.update({"url": input("url:")}) site.update({"user": input("user(leave blank):")}) site.update({"password": input("password(leave blank):")}) + name = input("name[url] :") + if (name == ""): + name = site.get("url") + site.update({"name": name}) sites.insert(site) elif (nb_sites != 1): - for i, site in enumerate(sites.all()): - print(f"{i}: {site.get('url')}") - site_choose = -1 - while (site_choose == -1): - choice = input("what site do you want ?") - if ((not choice.isdigit()) or (int(choice) >= nb_sites)): - print(f"error: invalid choice, please retry") - else: - site_choose = int(choice) + lst = [] + for site in sites.all(): + append(sites.get("name")) + terminal_menu = TerminalMenu(lst) + site_choose = terminal_menu.show() site = sites.all()[site_choose] if (site.get("user") and site.get("password")): url = f"http://{site.get('user')}:{site.get('password')}@{site.get('url')}/" @@ -37,16 +38,12 @@ while True: if (response.status_code != 200): exit soup = BeautifulSoup(response.text, 'html.parser') - files = soup.findAll("a") - for i, element in enumerate(files): - print(f"{i}: {element.text}") - file_choose = -1 - while (file_choose == -1): - choice = input("what file or folder do you want ?") - if ((not choice.isdigit()) or (int(choice) >= len(files))): - print(f"error: invalid choice, please retry") - else: - file_choose = int(choice) - url = url + files[file_choose].text - if (not files[file_choose].text.endswith("/")): - os.system(f"vlc {url}") + lst = [] + for element in soup.findAll("a"): + lst.append(element.text) + terminal_menu = TerminalMenu(lst) + file = soup.findAll("a")[terminal_menu.show()]["href"] + url = url + file + if (not file.endswith("/")): + print(f"vlc '{url}'") + os.system(f"vlc '{url}'")