Skip to content

Commit

Permalink
fixes #13
Browse files Browse the repository at this point in the history
  • Loading branch information
WolfgangFahl committed Dec 18, 2021
1 parent 6355762 commit 3b84375
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

setup(
name='pyThunderbird',
version='0.0.13',
version='0.0.14',

packages=['thunderbird', ],
package_data={
Expand Down
13 changes: 9 additions & 4 deletions thunderbird/mail.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from collections import OrderedDict
import mailbox
from email.header import decode_header, make_header
from mimetypes import guess_extension
from ftfy import fix_text
import re
import os
Expand Down Expand Up @@ -158,7 +159,7 @@ def __init__(self, user,mailid,tb=None,debug=False,keySearch=True):
if charset is None:
charset='utf-8'
partname=part.get_param('name')
part.filename=self.fixedPartName(partname,f"part{len(self.msgParts)}")
part.filename=self.fixedPartName(partname,contentType,len(self.msgParts))
if contentType == 'text/plain' or contentType== 'text/html':
part_str = part.get_payload(decode=1)
rawPart=part_str.decode(charset)
Expand All @@ -179,7 +180,7 @@ def __init__(self, user,mailid,tb=None,debug=False,keySearch=True):
self.toUrl=f"<a href='{self.toMailTo}'>{toAdr}</a>"
pass

def fixedPartName(self,partname:str,defaultName:str):
def fixedPartName(self,partname:str,contentType:str,partIndex:int):
'''
get a fixed version of the partname
Expand All @@ -188,13 +189,17 @@ def fixedPartName(self,partname:str,defaultName:str):
partname(str): the name of the part
defaultName(str): the default name to use
'''

# avoid TypeError: expected string or bytes-like object
if partname:
if type(partname) is tuple:
encoding,_unknown,partname=partname
_encoding,_unknown,partname=partname
filename=str(make_header(decode_header(partname)))
else:
filename=f"part{len(self.msgParts)}"
ext=guess_extension(contentType.partition(';')[0].strip())
if ext is None:
ext=".txt"
filename=f"part{partIndex}{ext}"
filename=fix_text(filename)
return filename

Expand Down

0 comments on commit 3b84375

Please sign in to comment.