VLC_HTTP_LAUNCHER/main.py

50 lines
1.5 KiB
Python
Raw Normal View History

2023-05-15 06:19:23 -04:00
from tinydb import TinyDB, Query
from bs4 import BeautifulSoup
import requests
from simple_term_menu import TerminalMenu
2023-05-15 07:41:32 -04:00
import subprocess
2023-05-15 06:19:23 -04:00
db = TinyDB("./database.json", indent=4)
query = Query()
sites = db.table("sites")
nb_sites = len(sites.all());
site_choose = 0;
if (nb_sites == 0):
print("add a site:")
site = {}
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})
2023-05-15 06:19:23 -04:00
sites.insert(site)
elif (nb_sites != 1):
lst = []
for site in sites.all():
append(sites.get("name"))
terminal_menu = TerminalMenu(lst)
site_choose = terminal_menu.show()
2023-05-15 06:19:23 -04:00
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')}/"
else:
url = f"http://{site.get('url')}/";
while True:
response = requests.get(url)
print("connection:", response.reason)
if (response.status_code != 200):
exit
soup = BeautifulSoup(response.text, 'html.parser')
lst = []
for element in soup.findAll("a"):
lst.append(element.text)
terminal_menu = TerminalMenu(lst)
file = soup.findAll("a")[terminal_menu.show()]["href"]
if (not file.endswith("/")):
2023-05-15 07:41:32 -04:00
subprocess.run(f"vlc '{url + file}'", shell=True)
else:
url = url + file