import ctypes
import platform
import sys
import tkinter as tk
from cefpython3 import cefpython as cef
from tkinter import *
from tkinter import ttk
import tkinter as tk
import requests
from bs4 import BeautifulSoup
import webbrowser
import tkinterweb
# platforms
WINDOWS = platform.system() == 'Windows'
LINUX = platform.system() == 'Linux'
MAC = platform.system() == 'Darwin'
class BrowserFrame(tk.Frame):
def __init__(self, master=None, **kw):
super().__init__(master, **kw)
self.browser = None
self.bind('<Configure>', self.on_configure)
def get_window_handle(self):
if MAC:
from AppKit import NSApp
import objc
return objc.pyobjc_id(NSApp.windows()[-1].contentView())
elif self.winfo_id() > 0:
return self.winfo_id()
else:
raise Exception('Could not obtain window handle!')
def on_configure(self, event):
if self.browser is None:
# create the browser and embed it in current frame
rect = [0, 0, self.winfo_width(), self.winfo_height()]
cef_winfo = cef.WindowInfo()
win_id = self.get_window_handle()
cef_winfo.SetAsChild(win_id, rect)
self.browser = cef.CreateBrowserSync(cef_winfo, url="https://www.google.com/")
# start the browser handling loop
self.cef_loop()
# resize the browser
if WINDOWS:
ctypes.windll.user32.SetWindowPos(
self.browser.GetWindowHandle(), 0,
0, 0, event.width, event.height, 0x0002)
elif LINUX:
self.browser.SetBounds(0, 0, event.width, event.height)
def cef_loop(self):
cef.MessageLoopWork()
self.after(10, self.cef_loop)
def main():
sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error
root = tk.Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))
root.title('Test')
settings = {}
if MAC:
settings["external_message_pump"] = True
cef.Initialize(settings=settings)
container = ttk.Frame(root)
canvas = tk.Canvas(container)
scrollbar_x = ttk.Scrollbar(container, orient="horizontal", command=canvas.xview)
scrollbar_y = ttk.Scrollbar(container, orient="vertical", command=canvas.yview)
scrollable_frame = ttk.Frame(canvas)
scrollable_frame.bind("<Configure>", lambda e: canvas.configure(scrollregion=canvas.bbox("all")))
canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
canvas.configure(xscrollcommand=scrollbar_x.set)
canvas.configure(yscrollcommand=scrollbar_y.set)
stathomelib = LabelFrame(scrollable_frame, text="Library", padx=5, pady=5, highlightbackground="black",
highlightthickness=2)
stathomelib.grid(row=3, column=0, columnspan=2, sticky=NW, pady=2)
stathomedoc = LabelFrame(scrollable_frame, text="Documentation", padx=5, pady=5, highlightbackground="black",
highlightthickness=2)
stathomedoc.grid(row=3, column=2, columnspan=2, sticky=NW, pady=2)
stathomeTools = LabelFrame(scrollable_frame, text="External Tools", padx=5, pady=5, highlightbackground="black",
highlightthickness=2)
stathomeTools.grid(row=3, column=4, columnspan=2, sticky=NW, pady=2)
home_browser = LabelFrame(scrollable_frame, text="", padx=5, pady=5, highlightbackground="black",highlightthickness=2)
home_browser.grid(row=0, column=99, rowspan=99, sticky='ne', pady=2)
valido_browser = tk.IntVar()
valido_browser.set(False)
checkbrowser = tk.Checkbutton(home_browser, fg="blue", selectcolor="red", text="Open in Browser",variable=valido_browser)
checkbrowser.grid(row=0, column=0, columnspan=9, sticky="wn")
BrowserFrame(home_browser).grid(row=2, column=0, columnspan=9, sticky="wn")
def choose_browser(urlbook):
if valido_browser.get() == 1:
webbrowser.open(urlbook)
else:
# frm_browser_home.insert(tk.INSERT, urlbook)
frame = tkinterweb.HtmlFrame(home_browser, messages_enabled=False)
urlbook = urlbook
frame.load_website(urlbook)
frame.grid(row=1, column=0, sticky="wnse", ipadx=330, ipady=120)
choose_browser("http://www.google.com")
global varLnkOrder
varLnkOrder = ""
varLbook = open("bookmarks.txt", "r").readlines()
try:
for line in varLbook:
undef = ""
if ":stathomelib" in line:
varLnkOrder = stathomelib
taman = 43
c = 0
i = 0
elif ":stathomedoc" in line:
varLnkOrder = stathomedoc
taman = 43
c = 0
i = 0
elif ":stathomeTools" in line:
varLnkOrder = stathomeTools
taman = 20
c = 0
i = 0
if len(line) > 1:
titul, urlbook = line.split('<=>')
if len(titul) > 1:
link1 = Label(varLnkOrder, width=taman, text=titul + str(undef), justify="left", anchor="center",
fg="blue", cursor="draft_large")
link1.grid(row=i, column=c, sticky="n", pady=2)
link1.bind("<Button-1>", lambda e, urlbook=urlbook: choose_browser(urlbook.rstrip()))
i += 1
line == ""
except Exception as e:
from main import log_error
log_error(e, "Bookmark_Builder")
container.pack(expand=1, fill="both")
scrollbar_x.pack(side="bottom", fill="x")
scrollbar_y.pack(side="right", fill="y")
canvas.pack(side="bottom", fill="both", expand=True)
root.mainloop()
cef.Shutdown()
if __name__ == '__main__':
main()
bookmarks.txt
Quote:<=>:stathomelib
aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug/ aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrth
<=>:stathomedoc
Wiki Teltonika Commands<=>https://wiki.teltonika-gps.com/view/FMB_SMS/GPRS_Commands Lucene Query Syntax(LogTrail Search)<=>http://www.lucenetutorial.com/lucene-query-syntax.html aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug/ aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug/ aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug/
<=>:stathomeTools
aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug/ aaaaswefdee<=>ryweryfgertgjhslkrghkjreshjglkjhlksghklrhsklrhklegrthuyug