Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 737c727

Browse files
committed
Minor update
1 parent 5013f76 commit 737c727

2 files changed

Lines changed: 32 additions & 26 deletions

File tree

lib/core/gui.py

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,33 @@
66
"""
77

88
import re
9-
import tkinter as tk
109
import webbrowser
1110

11+
from lib.core.common import getSafeExString
1212
from lib.core.defaults import defaults
13+
from lib.core.exception import SqlmapMissingDependence
1314
from lib.core.settings import DEV_EMAIL_ADDRESS
1415
from lib.core.settings import ISSUES_PAGE
1516
from lib.core.settings import GIT_PAGE
1617
from lib.core.settings import SITE
1718
from lib.core.settings import VERSION_STRING
1819
from lib.core.settings import WIKI_PAGE
1920
from thirdparty.six.moves import tkinter_messagebox as _tkinter_messagebox
20-
from tkinter import ttk
2121

2222
def runGui(parser):
23+
try:
24+
import tkinter
25+
import tkinter.ttk
26+
except ImportError as ex:
27+
raise SqlmapMissingDependence("missing dependence ('%s')" % getSafeExString(ex))
28+
2329
# Reference: https://www.reddit.com/r/learnpython/comments/985umy/limit_user_input_to_only_int_with_tkinter/e4dj9k9?utm_source=share&utm_medium=web2x
24-
class ConstrainedEntry(tk.Entry):
30+
class ConstrainedEntry(tkinter.Entry):
2531
def __init__(self, master=None, **kwargs):
26-
self.var = tk.StringVar()
32+
self.var = tkinter.StringVar()
2733
self.regex = kwargs["regex"]
2834
del kwargs["regex"]
29-
tk.Entry.__init__(self, master, textvariable=self.var, **kwargs)
35+
tkinter.Entry.__init__(self, master, textvariable=self.var, **kwargs)
3036
self.old_value = ''
3137
self.var.trace('w', self.check)
3238
self.get, self.set = self.var.get, self.var.set
@@ -38,9 +44,9 @@ def check(self, *args):
3844
self.set(self.old_value)
3945

4046
# Reference: https://code.activestate.com/recipes/580726-tkinter-notebook-that-fits-to-the-height-of-every-/
41-
class AutoresizableNotebook(ttk.Notebook):
47+
class AutoresizableNotebook(tkinter.ttk.Notebook):
4248
def __init__(self, master=None, **kw):
43-
ttk.Notebook.__init__(self, master, **kw)
49+
tkinter.ttk.Notebook.__init__(self, master, **kw)
4450
self.bind("<<NotebookTabChanged>>", self._on_tab_changed)
4551

4652
def _on_tab_changed(self,event):
@@ -49,30 +55,30 @@ def _on_tab_changed(self,event):
4955
tab = event.widget.nametowidget(event.widget.select())
5056
event.widget.configure(height=tab.winfo_reqheight())
5157

52-
window = tk.Tk()
58+
window = tkinter.Tk()
5359
window.title(VERSION_STRING)
5460

5561
# Reference: https://www.holadevs.com/pregunta/64750/change-selected-tab-color-in-ttknotebook
56-
style = ttk.Style()
62+
style = tkinter.ttk.Style()
5763
settings = {"TNotebook.Tab": {"configure": {"padding": [5, 1], "background": "#fdd57e" }, "map": {"background": [("selected", "#C70039"), ("active", "#fc9292")], "foreground": [("selected", "#ffffff"), ("active", "#000000")]}}}
5864
style.theme_create("custom", parent="alt", settings=settings)
5965
style.theme_use("custom")
6066

6167
def dummy():
6268
pass
6369

64-
menubar = tk.Menu(window)
70+
menubar = tkinter.Menu(window)
6571

66-
filemenu = tk.Menu(menubar, tearoff=0)
67-
filemenu.add_command(label="Open", command=dummy, state=tk.DISABLED)
68-
filemenu.add_command(label="Save", command=dummy, state=tk.DISABLED)
72+
filemenu = tkinter.Menu(menubar, tearoff=0)
73+
filemenu.add_command(label="Open", command=dummy, state=tkinter.DISABLED)
74+
filemenu.add_command(label="Save", command=dummy, state=tkinter.DISABLED)
6975
filemenu.add_separator()
7076
filemenu.add_command(label="Exit", command=window.quit)
7177
menubar.add_cascade(label="File", menu=filemenu)
7278

7379
menubar.add_command(label="Run", command=window.quit)
7480

75-
helpmenu = tk.Menu(menubar, tearoff=0)
81+
helpmenu = tkinter.Menu(menubar, tearoff=0)
7682
helpmenu.add_command(label="Official site", command=lambda: webbrowser.open(SITE))
7783
helpmenu.add_command(label="Github pages", command=lambda: webbrowser.open(GIT_PAGE))
7884
helpmenu.add_command(label="Wiki pages", command=lambda: webbrowser.open(WIKI_PAGE))
@@ -88,44 +94,44 @@ def dummy():
8894
first = None
8995
frames = {}
9096
for group in parser.option_groups:
91-
frame = frames[group.title] = tk.Frame(notebook, width=200, height=200)
97+
frame = frames[group.title] = tkinter.Frame(notebook, width=200, height=200)
9298
notebook.add(frames[group.title], text=group.title)
9399

94-
tk.Label(frame).grid(column=0, row=0, sticky=tk.W)
100+
tkinter.Label(frame).grid(column=0, row=0, sticky=tkinter.W)
95101

96102
row = 1
97103
if group.get_description():
98-
tk.Label(frame, text="%s:" % group.get_description()).grid(column=0, row=1, columnspan=3, sticky=tk.W)
99-
tk.Label(frame).grid(column=0, row=2, sticky=tk.W)
104+
tkinter.Label(frame, text="%s:" % group.get_description()).grid(column=0, row=1, columnspan=3, sticky=tkinter.W)
105+
tkinter.Label(frame).grid(column=0, row=2, sticky=tkinter.W)
100106
row += 2
101107

102108
for option in group.option_list:
103-
tk.Label(frame, text="%s " % parser.formatter._format_option_strings(option)).grid(column=0, row=row, sticky=tk.W)
109+
tkinter.Label(frame, text="%s " % parser.formatter._format_option_strings(option)).grid(column=0, row=row, sticky=tkinter.W)
104110

105111
if option.type == "string":
106-
widget = tk.Entry(frame)
112+
widget = tkinter.Entry(frame)
107113
elif option.type == "float":
108114
widget = ConstrainedEntry(frame, regex=r"\A\d*\.?\d*\Z")
109115
elif option.type == "int":
110116
widget = ConstrainedEntry(frame, regex=r"\A\d*\Z")
111117
else:
112-
var = tk.IntVar()
113-
widget = tk.Checkbutton(frame, variable=var)
118+
var = tkinter.IntVar()
119+
widget = tkinter.Checkbutton(frame, variable=var)
114120
widget.var = var
115121

116122
first = first or widget
117-
widget.grid(column=1, row=row, sticky=tk.W)
123+
widget.grid(column=1, row=row, sticky=tkinter.W)
118124

119125
default = defaults.get(option.dest)
120126
if default:
121127
if hasattr(widget, "insert"):
122128
widget.insert(0, default)
123129

124-
tk.Label(frame, text=" %s" % option.help).grid(column=2, row=row, sticky=tk.W)
130+
tkinter.Label(frame, text=" %s" % option.help).grid(column=2, row=row, sticky=tkinter.W)
125131

126132
row += 1
127133

128-
tk.Label(frame).grid(column=0, row=row, sticky=tk.W)
134+
tkinter.Label(frame).grid(column=0, row=row, sticky=tkinter.W)
129135

130136
notebook.pack(expand=1, fill="both")
131137
notebook.enable_traversal()

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from thirdparty.six import unichr as _unichr
1919

2020
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
21-
VERSION = "1.3.11.89"
21+
VERSION = "1.3.11.90"
2222
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2323
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2424
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

0 commit comments

Comments
 (0)