126 lines
No EOL
8.9 KiB
Python
126 lines
No EOL
8.9 KiB
Python
#!/usr/bin/python3
|
|
|
|
import webview
|
|
import os
|
|
|
|
def pybrow(): # Das macht den Code der laeuft waehrend das Fenster offen ist.
|
|
|
|
input_urls = ["https://i21k.de/emil"] # Das macht den ersten url in der Liste auf "i21k.de/emil".
|
|
loop01 = 1 # Das ist die Variable die bestimmt ob die wiederholung noch an ist.
|
|
|
|
while loop01 == 1: # Das ist die wiederholung des Scripts.
|
|
|
|
|
|
input01 = input("URL, search or command: ") #Das ist die Eingabe wo man Links und Commands eingeben kann.
|
|
|
|
if (input01.__contains__("https://")): #Das guckt ob "https://" davor steht.
|
|
|
|
url = input01 # Das Setzt dann den URL auf die unveraenderte Eingabe.
|
|
command = "False" # Das Bestaetigt, dass die Eingabe kein Command ist.
|
|
|
|
else: # Das wird nur ausgefuehrt wenn "input01" kein "https://" hat.
|
|
|
|
if (input01.__contains__(".")): # Das guckt ob die Eingabe ein URL sein koennte.
|
|
|
|
url = "https://" + input01 # Das setzt, falls nicht vorhanden, das notwendige "https://" davor.
|
|
command = "False" # Das Bestaetigt, dass die Eingabe kein Command ist.
|
|
|
|
else: # Das wird nur ausgefuehrt wenn "input01" kein Link sein kann.
|
|
|
|
if input01[:1] == "/": #Das guckt ob man einen befehl schreibt.
|
|
|
|
command_exists = "False" # Das Bestaetigt dass der Befehl nicht existiert indem er die Variable auf "False" Setzt und jeder exsistierende Befehl setzt die Variable auf "True".
|
|
command="True" # Das bestaetigt dass das ein Befehl ist.
|
|
|
|
if input01 == "/exit": # Das erkennt ob man "exit" schreibt und fuehrt dann das Script aus dass das Programm Stoppt.
|
|
|
|
loop01 = 0 # Das stoppt die Wiederholung.
|
|
window.destroy() # Das schliesst das Fenster.
|
|
command_exists = "True" # Das bestaetigt dass der Befehl Existiert.
|
|
|
|
if input01 == "/desktop": # Das fuehrt das Script aus das die Desktopdatei erstellt wenn man den "desktop" Befehl verwendet.
|
|
|
|
desktop_location = input("Please write the name of your desktop folder: ") # Durch diese Eingabe wird gespeichert wie dein Desktopordner heist.
|
|
os.system("chmod +x " + os.path.dirname(os.path.realpath(__file__)) + "/PyBrow1.2.py") # Das macht die Python-Datei ausfuehrbar.
|
|
desktop_file = open(os.path.expanduser('~') + "/" + desktop_location + "/PyBrow1.3.desktop", "w") # Das erstellt und oeffnet die Desktopdatei.
|
|
desktop_file.write('[Desktop Entry]\nName=PyBrow1.3\nComment=A Web Browser made with Python.\nExec="' + os.path.dirname(os.path.realpath(__file__)) + '/PyBrow1.2.py"\nTerminal=True\nType=Application\nIcon=' + os.path.dirname(os.path.realpath(__file__)) + "/PyBrow-Icon1.0-x.png") # Das schreibt in die Desktopdatei.
|
|
desktop_file.close() # Das schliesst die Desktopdatei.
|
|
command_exists = "True" # Das bestaetigt dass der Befehl Existiert.
|
|
|
|
if input01 == "/help": # Das fuehrt das Script aus dass Befehle und so anzeigt.
|
|
|
|
print("\nCommands:\n \n/help - Shows this here.\n/exit - Closes the program.\n/desktop - Creates a desktop shortcut.\n/startpage - Sets a new startpage.\n/back - Go to the last page.\n") # Das zeigt einem alle Befehle.
|
|
command_exists = "True" # Das bestaetigt dass der Befehl Existiert.
|
|
|
|
if input01 == "/startpage": # Das guckt ob man den befehl "/startpage" eingibt.
|
|
|
|
command_exists = "True" # Das bestätigt dass es den Befehl gibt.
|
|
new_startpage_valid = "False" # Das bestaetigt dass die Eingabe kein Link ist wenn die Variable nicht geaendert wird.
|
|
new_startpage_input = input("Please enter new startpage url: ") # Das fragt den neuen Link ab.
|
|
if (new_startpage_input.__contains__("https://")): # Das guckt ob "https://" davor steht.
|
|
|
|
new_startpage_url = new_startpage_input # Das setzt die Startseiten Variable auf die Eingabe.
|
|
new_startpage_valid = "True" # Das bestaetigt dass die Eingabe ein Link ist.
|
|
|
|
else:
|
|
|
|
if(new_startpage_input.__contains__(".")): # Das guckt ob die Eingabe ein link sein kann.
|
|
|
|
new_startpage_url = "https://" + new_startpage_input # Das macht ein "https://" davor fals nicht vorhanden.
|
|
new_startpage_valid = "True" # Das bestaetigt dass die Eingabe ein Link ist.
|
|
|
|
else:
|
|
print("This is not a valid url.") # Das macht eine Nachricht wenn die Eingabe kein Link sein kann.
|
|
|
|
if new_startpage_valid == "True": # Das guckt ob die Eingabe als Link erkannt wurde.
|
|
|
|
read_settings01 = open(os.path.dirname(os.path.realpath(__file__)) + "/settings.txt", "rt") # Das oeffnet die Einstellungen.
|
|
all_settings_str01 = read_settings01.read() # Das liest die Einstellungen.
|
|
read_settings01.close() # Das schliesst die Einstellungen.
|
|
all_settings_list01 = all_settings_str01.split(",") # Das macht die Einstellungen zu einer Liste.
|
|
print("\nCurrent url is: " + all_settings_list01[0]) # Das schreibt den bis jetzt noch gespeicherten Startseiten-Link.
|
|
print("New url is: " + new_startpage_url) # Das schreibt den neuen Startseiten-Link.
|
|
yesno_input01 = input("Do you really want to change the url? (y-yes/n-no): ") # Das fragt ob man den Link wirklich aendern will.
|
|
|
|
if yesno_input01 == "y" or yesno_input01 == "yes": # Das guckt ob man die Aenderungen bestaetigt hat.
|
|
|
|
all_settings_list01[0] = new_startpage_url # Das ersetzt den alten Link mit dem neuen.
|
|
all_settings_str_changed01 = ",".join(map(str, all_settings_list01)) # Das macht die neuen Einstallungen zu einem String.
|
|
save_settings01 = open(os.path.dirname(os.path.realpath(__file__)) + "/settings.txt", "wt") # Das oeffnet die Einstallungen.
|
|
save_settings01.write(all_settings_str_changed01) # Das speichert die Einstallungen.
|
|
save_settings01.close() # Das schliesst die Einstellungen.
|
|
|
|
if not yesno_input01 == "y" and not yesno_input01 == "yes": # Das guckt ob man nicht "y" oder "yes" geschrieben hat also abgebrochen hat.
|
|
|
|
print("Canceled.") # Das Macht eine Nachricht dass das Speichern abgebrochen wurde.
|
|
|
|
if input01 == "/back": # Das guckt ob man den Befehl "/back" eingibt.
|
|
|
|
command_exists = "True" # Das bestätigt dass es den Befehl gibt.
|
|
page = page - 1 # Das subtrahiert die Seitenanzeige mit 1.
|
|
window.load_url(input_urls[page]) # Das laedt den alden Link.
|
|
|
|
|
|
if command_exists == "False": # Das bestaetigt dass der Befehl nicht existiert.
|
|
print("Command does not exist.")
|
|
|
|
else: # Das fuehrt das Suchmaschinen-Script aus wenn die Eingabe kein Befehl ist.
|
|
|
|
url = "https://duckduckgo.com/" + input01 #Das macht "https://duckduckgo.com/" davor um die Suche zu starten.
|
|
command = "False" # Das bestaetigt dass das kein Befehl war.
|
|
|
|
if loop01 == 1 and command == "False": # Das startet das Script dass den Link laedt wenn es kein Befehl war.
|
|
|
|
window.load_url(url) # Das laedt den Link.
|
|
input_urls.append(url) # Das fuegt den Link der geladen wird zu der Liste mit Links hinzu.
|
|
page = len(input_urls) -1 # Das setzt die Zahl die sagt welche Nummer der Seiten grad angeschaut wird auf die Laenge der Liste.
|
|
|
|
read_startpage = open(os.path.dirname(os.path.realpath(__file__)) + "/settings.txt", "rt") # Das oeffnet die Einstallungen.
|
|
startpage_str = read_startpage.read() # Das liest die Einstallungen.
|
|
read_startpage.close() # Das schliesst die Einstellungen.
|
|
startpage_list = startpage_str.split(",") # Das macht die Einstellungen zu einer Liste.
|
|
startpage = startpage_list[0] # Das liest das Element 1 (0) der Liste.
|
|
|
|
window = webview.create_window("PyBrow",startpage,) #Das macht das Fenster.
|
|
|
|
webview.start(pybrow) #Das startet das Script. |