Ticket #247: 2longfilename.2.patch

File 2longfilename.2.patch, 3.8 KB (added by slevin@…, 13 years ago)

patch in universal format

  • email2trac.

    old new  
    7575import logging.handlers
    7676import UserDict
    7777import tempfile
     78import trans
    7879
    7980from datetime import tzinfo, timedelta, datetime
    8081from stat import *
     
    229230
    230231        self.system = None
    231232
     233########## Rus2Eng converter filename #######################################################
     234    def FixFileName(self,filename):
     235        filename = filename.replace(' ', '_')
     236        return filename.encode('trans')
     237
    232238########## Email Header Functions ###########################################################
    233239
    234240    def spam(self, message):
     
    451457               
    452458            (original, filename, part) = item
    453459
     460# Convert rus UTF-8 to eng filename
     461            filename = self.FixFileName(filename)
     462
    454463            n = n + 1
    455464            print 'part%d: Content-Type: %s' % (n, part.get_content_type())
    456        
     465
    457466            s = 'part%d: filename: %s' %(n, filename)
    458467            self.print_unicode(s)
    459468   
     
    863872                #
    864873                if tkt['status'] in ['closed']:
    865874                    workflow = self.parameters.workflow
     875                    # Fix situation with reopen ticket via e-mail
     876                    tkt['status'] = 'reopened'
     877                    tkt['resolution'] = ''
    866878                else:   
    867879                    workflow = None
    868880
     
    11711183
    11721184    def attach_attachments(self, message_parts, update=False):
    11731185        '''
    1174         save any attachments as files in the ticket's directory
     1186        save any attachments as files in the ticket`s directory
    11751187        '''
    11761188        self.logger.debug('function attach_attachments()')
    11771189
     
    11941206               
    11951207            (original, filename, part) = item
    11961208
     1209# Convert rus UTF-8 to eng filename
     1210            filename = self.FixFileName(filename)
     1211
    11971212            ## We have to determine the size so we use this temporary solution. we must escape it
    11981213            #  else we get UnicodeErrors.
    11991214            #
     
    18301845            ## Check content type
    18311846            #
    18321847            if content_type in self.STRIP_CONTENT_TYPES:
    1833                 self.logger.debug("\t A %s attachment named '%s' was skipped" %(content_type, part.get_filename()))
     1848                self.logger.debug("\t A %s attachment named '%s' was skipped" %(content_type, self.FixFileName(part.get_filename()) ))
    18341849                continue
    18351850
    18361851            ## Catch some mulitpart execptions
     
    18631878            if not content_type in ['text/plain']:
    18641879
    18651880                if self.parameters.debug:
    1866                     s = '\t Filename: %s' % part.get_filename()
     1881                    s = '\t Filename: %s' % self.FixFileName(part.get_filename())
    18671882                    self.print_unicode(s)
    18681883
    18691884                ## First try to use email header function to convert filename.
    18701885                #  If this fails the use the plain filename
    18711886                #
    18721887                try:
    1873                     filename = self.email_to_unicode(part.get_filename())
     1888                    filename = self.email_to_unicode(self.FixFileName(part.get_filename()))
    18741889                except UnicodeEncodeError, detail:
    1875                     filename = part.get_filename()
     1890                    filename = self.FixFileName(part.get_filename())
    18761891
    18771892                message_parts.append((filename, part))
    18781893
     
    19601975               
    19611976            (filename, part) = item
    19621977
     1978# Convert rus UTF-8 to eng filename
     1979            filename = self.FixFileName(filename)
     1980
    19631981            ## If filename = None, use a default one
    19641982            #
    19651983            if filename in [ 'None']:
     
    20602078
    20612079            (original, filename, part) = part
    20622080            inline = self.inline_part(part)
     2081# Convert rus UTF-8 to eng filename
     2082            filename = self.FixFileName(filename)
    20632083
    20642084            ## Skip generation of attachment link if html is converted to text
    20652085            #