summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorjvoisin2011-07-26 04:55:59 +0200
committerjvoisin2011-07-26 04:55:59 +0200
commitf6e3d57173604dab7228c830e84415ead02e169b (patch)
treec38b5e2f09b6aebff79a6786ce8d26d05c7c5845 /lib
parent342cbf4bd69e638f62319ea0e6660af5dc717131 (diff)
Tests are green for opendocument format
Diffstat (limited to 'lib')
-rw-r--r--lib/archive.py9
-rw-r--r--lib/mat.py15
-rw-r--r--lib/office.py3
-rw-r--r--lib/parser.py4
4 files changed, 16 insertions, 15 deletions
diff --git a/lib/archive.py b/lib/archive.py
index 8a8f7f4..f22af39 100644
--- a/lib/archive.py
+++ b/lib/archive.py
@@ -69,10 +69,13 @@ class ZipStripper(GenericArchiveStripper):
69 return False 69 return False
70 except: 70 except:
71 #best solution I have found 71 #best solution I have found
72 logging.error('%s is not supported' % item.filename) 72 logging.info('%s\'s fileformat is not supported, or is a \
73 _, ext = os.path.splitext(name) 73harmless format' % item.filename)
74 base, ext = os.path.splitext(name)
75 bname = os.path.basename(item.filename)
74 if ext not in parser.NOMETA: 76 if ext not in parser.NOMETA:
75 return False 77 if bname != 'mimetype':
78 return False
76 mat.secure_remove(name) 79 mat.secure_remove(name)
77 zipin.close() 80 zipin.close()
78 return True 81 return True
diff --git a/lib/mat.py b/lib/mat.py
index 5dcdbc2..ccf653f 100644
--- a/lib/mat.py
+++ b/lib/mat.py
@@ -18,8 +18,8 @@ import audio
18import office 18import office
19import archive 19import archive
20 20
21__version__ = "0.1" 21__version__ = '0.1'
22__author__ = "jvoisin" 22__author__ = 'jvoisin'
23 23
24LOGGING_LEVEL = logging.DEBUG 24LOGGING_LEVEL = logging.DEBUG
25 25
@@ -53,7 +53,7 @@ def is_secure(filename):
53 ''' 53 '''
54 54
55 if not(os.path.isfile(filename)): #check if the file exist 55 if not(os.path.isfile(filename)): #check if the file exist
56 logging.error("Error: %s is not a valid file" % filename) 56 logging.error('Error: %s is not a valid file' % filename)
57 return False 57 return False
58 58
59def create_class_file(name, backup, add2archive): 59def create_class_file(name, backup, add2archive):
@@ -64,7 +64,7 @@ def create_class_file(name, backup, add2archive):
64 if is_secure(name): 64 if is_secure(name):
65 return 65 return
66 66
67 filename = "" 67 filename = ''
68 realname = name 68 realname = name
69 try: 69 try:
70 filename = hachoir_core.cmd_line.unicodeFilename(name) 70 filename = hachoir_core.cmd_line.unicodeFilename(name)
@@ -72,7 +72,7 @@ def create_class_file(name, backup, add2archive):
72 filename = name 72 filename = name
73 parser = hachoir_parser.createParser(filename) 73 parser = hachoir_parser.createParser(filename)
74 if not parser: 74 if not parser:
75 logging.error("Unable to parse %s" % filename) 75 logging.info('Unable to parse %s' % filename)
76 return 76 return
77 77
78 editor = hachoir_editor.createEditor(parser) 78 editor = hachoir_editor.createEditor(parser)
@@ -85,7 +85,7 @@ def create_class_file(name, backup, add2archive):
85 stripper_class = strippers[editor.input.__class__] 85 stripper_class = strippers[editor.input.__class__]
86 except KeyError: 86 except KeyError:
87 #Place for another lib than hachoir 87 #Place for another lib than hachoir
88 logging.error("Don't have stripper for format %s" % editor.description) 88 logging.info('Don\'t have stripper for format %s' % editor.description)
89 return 89 return
90 90
91 if editor.input.__class__ == hachoir_parser.misc.PDFDocument:#pdf 91 if editor.input.__class__ == hachoir_parser.misc.PDFDocument:#pdf
@@ -95,8 +95,7 @@ def create_class_file(name, backup, add2archive):
95 #zip based format 95 #zip based format
96 mime = mimetypes.guess_type(filename)[0] 96 mime = mimetypes.guess_type(filename)[0]
97 try:#Ugly workaround, cleaning open document delete mime (wtf?) 97 try:#Ugly workaround, cleaning open document delete mime (wtf?)
98 if mime.startswith(#Open document format 98 if mime.startswith('application/vnd.oasis.opendocument'):
99 'application/vnd.oasis.opendocument'):
100 return office.OpenDocumentStripper(realname, filename, parser, 99 return office.OpenDocumentStripper(realname, filename, parser,
101 editor, backup, add2archive) 100 editor, backup, add2archive)
102 else:#normal zip 101 else:#normal zip
diff --git a/lib/office.py b/lib/office.py
index b7fa555..27677d2 100644
--- a/lib/office.py
+++ b/lib/office.py
@@ -34,7 +34,6 @@ class OpenDocumentStripper(archive.GenericArchiveStripper):
34 metadata[key] = node.text 34 metadata[key] = node.text
35 except KeyError:#no meta.xml file found 35 except KeyError:#no meta.xml file found
36 logging.debug('%s has no opendocument metadata' % self.filename) 36 logging.debug('%s has no opendocument metadata' % self.filename)
37 metadata[self.filename] = ''
38 return metadata 37 return metadata
39 38
40 39
@@ -76,7 +75,7 @@ class OpenDocumentStripper(archive.GenericArchiveStripper):
76 except: 75 except:
77 logging.info('%s\' fileformat is not supported' % item) 76 logging.info('%s\' fileformat is not supported' % item)
78 if self.add2archive: 77 if self.add2archive:
79 zipout.write(item, name) 78 zipout.write(name, item)
80 mat.secure_remove(name) 79 mat.secure_remove(name)
81 zipout.comment = '' 80 zipout.comment = ''
82 logging.info('%s treated' % self.filename) 81 logging.info('%s treated' % self.filename)
diff --git a/lib/parser.py b/lib/parser.py
index 04d7625..aa7e7f1 100644
--- a/lib/parser.py
+++ b/lib/parser.py
@@ -13,7 +13,7 @@ import mimetypes
13 13
14import mat 14import mat
15 15
16NOMETA = ('.txt', '.bmp', '.py', '.xml') 16NOMETA = ('.txt', '.bmp', '.py', '.xml', '.rdf')
17 17
18class Generic_parser(object): 18class Generic_parser(object):
19 def __init__(self, realname, filename, parser, editor, backup, add2archive): 19 def __init__(self, realname, filename, parser, editor, backup, add2archive):
@@ -21,7 +21,7 @@ class Generic_parser(object):
21 self.output = basename + '.cleaned' + ext 21 self.output = basename + '.cleaned' + ext
22 self.filename = filename #path + filename 22 self.filename = filename #path + filename
23 self.realname = realname #path + filename 23 self.realname = realname #path + filename
24 self.shortname = os.path.basename(filename) #only filename 24 self.basename = os.path.basename(filename) #only filename
25 self.mime = mimetypes.guess_type(filename)[0] #mimetype 25 self.mime = mimetypes.guess_type(filename)[0] #mimetype
26 self.parser = parser 26 self.parser = parser
27 self.editor = editor 27 self.editor = editor