/
operapass-tk
executable file
·96 lines (78 loc) · 2.75 KB
/
operapass-tk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/env python
# encoding=utf-8
#
# Copyright © 2011-2014, Martin Tournoij <martin@arp242.net>
# See below for full copyright
#
# http://code.arp242.net/operapass
#
# Very basic TKinter GUI
#
# TODO: Make this un-very-basic :)
#
from __future__ import print_function
import sys
try:
if sys.version_info[0] <= 2:
import Tkinter as tk
else:
import tkinter as tk
except ImportError:
print("TKinter is required, but wasn't found.")
print('You can always use operapass-dump from the terminal.')
sys.exit(1)
from operapass import operapass
def Lambda(f, *args, **kwds):
return lambda event, f=f, args=args, kwds=kwds: f(*args, **kwds)
def TkPager(root, output):
root.wm_title('operapass 1.2 -- Press ESC to exit.')
root.geometry('800x460')
root.bind('<Escape>', Lambda(root.quit))
pagerFrame = tk.Frame(root)
pagerFrame.pack(side=tk.BOTTOM, expand=tk.YES, fill=tk.BOTH)
scrollbar = tk.Scrollbar(pagerFrame)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
pager = tk.Text(pagerFrame, borderwidth=5, yscrollcommand=scrollbar.set)
pager.pack(side=tk.BOTTOM, expand=tk.YES, fill=tk.BOTH)
pager.insert(tk.INSERT, output)
#pager.see(tk.END)
pager.config(state=tk.DISABLED)
pager.focus_force()
scrollbar.config(command=pager.yview)
return (root)
if __name__ == '__main__':
pwfile = operapass.GetPasswordfile()
passwords = operapass.GetPasswordsDict(pwfile)
info = 'Total of %s passwords\n\n' % len(passwords)
for p in passwords:
info += '-' * 70
info += '\n'
info += p['url'] + '\n'
for k, v in p['fields'].items():
info += '\t%s: %s\n' % (k, v)
info += '-' * 70
info += '\n\n'
root = tk.Tk()
root = TkPager(root, info)
root.mainloop()
# The MIT License (MIT)
#
# Copyright © 2011-2014 Martin Tournoij
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# The software is provided "as is", without warranty of any kind, express or
# implied, including but not limited to the warranties of merchantability,
# fitness for a particular purpose and noninfringement. In no event shall the
# authors or copyright holders be liable for any claim, damages or other
# liability, whether in an action of contract, tort or otherwise, arising
# from, out of or in connection with the software or the use or other dealings
# in the software.