#!/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.