#3018: tkinter demo fixes for py3k.
diff --git a/Demo/tkinter/guido/MimeViewer.py b/Demo/tkinter/guido/MimeViewer.py
index b957c85..babed8f 100755
--- a/Demo/tkinter/guido/MimeViewer.py
+++ b/Demo/tkinter/guido/MimeViewer.py
@@ -3,11 +3,27 @@
# View a single MIME multipart message.
# Display each part as a box.
-import string
-from types import *
+import os
+import sys
+import getopt
+import mailbox
from tkinter import *
from tkinter.scrolledtext import ScrolledText
+MBOXPATH = os.environ['HOME'] + '/Mail'
+
+class Error(Exception):
+ pass
+
+def getcurrent(self):
+ """Return the current message. Raise Error when there is none."""
+ seqs = self.get_sequences()
+ try:
+ return max(seqs['cur'])
+ except (ValueError, KeyError):
+ raise Error("no cur message")
+
+
class MimeViewer:
def __init__(self, parent, title, msg):
self.title = title
@@ -18,8 +34,10 @@
{'text': title,
'command': self.toggle})
self.button.pack({'anchor': 'w'})
- headertext = msg.getheadertext(
- lambda x: x != 'received' and x[:5] != 'x400-')
+ headertext = []
+ for item in msg.items():
+ headertext.append("%s: %s" % item)
+ headertext = '\n'.join(headertext)
height = countlines(headertext, 4)
if height:
self.htext = ScrolledText(self.frame,
@@ -38,8 +56,8 @@
'ipady': 2,
'fill': 'x',
'after': self.button}
- body = msg.getbody()
- if type(body) == StringType:
+ body = msg.get_payload()
+ if type(body) == str:
self.pad = None
height = countlines(body, 10)
if height:
@@ -102,16 +120,13 @@
i = 0
n = 0
while n < limit:
- i = string.find(str, '\n', i)
+ i = str.find('\n', i)
if i < 0: break
n = n+1
i = i+1
return n
def main():
- import sys
- import getopt
- import mhlib
opts, args = getopt.getopt(sys.argv[1:], '')
for o, a in opts:
pass
@@ -121,13 +136,13 @@
if arg[:1] == '+':
folder = arg[1:]
else:
- message = string.atoi(arg)
+ message = int(arg)
- mh = mhlib.MH()
- f = mh.openfolder(folder)
- if not message:
- message = f.getcurrent()
- m = f.openmessage(message)
+ mh = mailbox.MH(MBOXPATH)
+ f = mh.get_folder(folder)
+ if message is None:
+ message = getcurrent(f)
+ m = mailbox.MHMessage(f.get(message))
root = Tk()
tk = root.tk
@@ -140,4 +155,5 @@
tk.mainloop()
-if __name__ == '__main__': main()
+if __name__ == '__main__':
+ main()