summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorjvoisin2011-07-26 21:12:58 +0200
committerjvoisin2011-07-26 21:12:58 +0200
commitc3ce1dd99ec1671d50a7cf89dc1b287fbbdf96aa (patch)
tree0d3a39a19938d6ddcc84c2a6b77937340b020afa /lib
parent446cb258ce93a73e62c1a19779c9d67e0457412f (diff)
Simplification of the __init__() method
Diffstat (limited to 'lib')
-rw-r--r--lib/archive.py21
-rw-r--r--lib/audio.py3
-rw-r--r--lib/mat.py9
-rw-r--r--lib/office.py8
-rw-r--r--lib/parser.py22
5 files changed, 33 insertions, 30 deletions
diff --git a/lib/archive.py b/lib/archive.py
index 1aaf74b..f9e4dba 100644
--- a/lib/archive.py
+++ b/lib/archive.py
@@ -14,10 +14,9 @@ class GenericArchiveStripper(parser.GenericParser):
14 ''' 14 '''
15 Represent a generic archive 15 Represent a generic archive
16 ''' 16 '''
17 def __init__(self, realname, filename, parser, editor, backup, 17 def __init__(self, filename, parser, mime, backup, add2archive):
18 add2archive): 18 super(GenericArchiveStripper, self).__init__(filename, parser, mime,
19 super(GenericArchiveStripper, self).__init__(realname, 19 backup, add2archive)
20 filename, parser, editor, backup, add2archive)
21 self.compression = '' 20 self.compression = ''
22 self.add2archive = add2archive 21 self.add2archive = add2archive
23 self.tempdir = tempfile.mkdtemp() 22 self.tempdir = tempfile.mkdtemp()
@@ -254,10 +253,9 @@ class GzipStripper(TarStripper):
254 ''' 253 '''
255 Represent a tar.gz archive 254 Represent a tar.gz archive
256 ''' 255 '''
257 def __init__(self, realname, filename, parser, editor, backup, 256 def __init__(self, filename, parser, mime, backup, add2archive):
258 add2archive): 257 super(GzipStripper, self).__init__(filename, parser, mime, backup,
259 super(GzipStripper, self).__init__(realname, 258 add2archive)
260 filename, parser, editor, backup, add2archive)
261 self.compression = ':gz' 259 self.compression = ':gz'
262 260
263 261
@@ -265,8 +263,7 @@ class Bzip2Stripper(TarStripper):
265 ''' 263 '''
266 Represents a tar.bz2 archive 264 Represents a tar.bz2 archive
267 ''' 265 '''
268 def __init__(self, realname, filename, parser, editor, backup, 266 def __init__(self, filename, parser, mime, backup, add2archive):
269 add2archive): 267 super(Bzip2Stripper, self).__init__(filename, parser, mime, backup,
270 super(Bzip2Stripper, self).__init__(realname, 268 add2archive)
271 filename, parser, editor, backup, add2archive)
272 self.compression = ':bz2' 269 self.compression = ':bz2'
diff --git a/lib/audio.py b/lib/audio.py
index d77efd9..d146fad 100644
--- a/lib/audio.py
+++ b/lib/audio.py
@@ -10,3 +10,6 @@ class MpegAudioStripper(parser.GenericParser):
10 return True 10 return True
11 else: 11 else:
12 return False 12 return False
13
14class FlacStripper(parser.GenericParser):
15 pass
diff --git a/lib/mat.py b/lib/mat.py
index ea4fefd..3d1687f 100644
--- a/lib/mat.py
+++ b/lib/mat.py
@@ -11,7 +11,6 @@ import mimetypes
11 11
12import hachoir_core.cmd_line 12import hachoir_core.cmd_line
13import hachoir_parser 13import hachoir_parser
14import hachoir_editor
15 14
16import images 15import images
17import audio 16import audio
@@ -39,7 +38,7 @@ STRIPPERS = {
39 38
40try: 39try:
41 import mutagen 40 import mutagen
42 STRIPPERS[hachoir_parser.audio.FlacParser] = audio.FlacStripper 41 STRIPPERS['audio/x-flac'] = audio.FlacStripper
43except ImportError: 42except ImportError:
44 print('unable to import python-mutagen : limited audio format support') 43 print('unable to import python-mutagen : limited audio format support')
45 44
@@ -85,7 +84,6 @@ def create_class_file(name, backup, add2archive):
85 logging.info('Unable to parse %s' % filename) 84 logging.info('Unable to parse %s' % filename)
86 return 85 return
87 86
88 editor = hachoir_editor.createEditor(parser)
89 mime = parser.mime_type 87 mime = parser.mime_type
90 88
91 if mime.startswith('application/vnd.oasis.opendocument'): 89 if mime.startswith('application/vnd.oasis.opendocument'):
@@ -94,8 +92,7 @@ def create_class_file(name, backup, add2archive):
94 try: 92 try:
95 stripper_class = STRIPPERS[mime] 93 stripper_class = STRIPPERS[mime]
96 except KeyError: 94 except KeyError:
97 logging.info('Don\'t have stripper for format %s' % editor.description) 95 logging.info('Don\'t have stripper for %s\' format' % filename)
98 return 96 return
99 97
100 return stripper_class(realname, filename, parser, editor, backup, 98 return stripper_class(filename, parser, mime, backup, add2archive)
101 add2archive)
diff --git a/lib/office.py b/lib/office.py
index 5fa475d..00fce3c 100644
--- a/lib/office.py
+++ b/lib/office.py
@@ -89,8 +89,8 @@ class OpenDocumentStripper(archive.GenericArchiveStripper):
89 return False 89 return False
90 except KeyError: # no meta.xml in the file 90 except KeyError: # no meta.xml in the file
91 zipin.close() 91 zipin.close()
92 czf = archive.ZipStripper(self.realname, self.filename, 92 czf = archive.ZipStripper(self.filename, self.parser,
93 self.parser, self.editor, self.backup, self.add2archive) 93 'application/zip', self.backup, self.add2archive)
94 if czf.is_clean(): 94 if czf.is_clean():
95 return True 95 return True
96 else: 96 else:
@@ -102,14 +102,14 @@ class PdfStripper(parser.GenericParser):
102 ''' 102 '''
103 Represent a pdf file, with the help of pdfrw 103 Represent a pdf file, with the help of pdfrw
104 ''' 104 '''
105 def __init__(self, filename, realname, backup): 105 def __init__(self, filename, parser, mime, backup, add2archive):
106 name, ext = os.path.splitext(filename) 106 name, ext = os.path.splitext(filename)
107 self.output = name + '.cleaned' + ext 107 self.output = name + '.cleaned' + ext
108 self.filename = filename 108 self.filename = filename
109 self.backup = backup 109 self.backup = backup
110 self.realname = realname 110 self.realname = realname
111 self.shortname = os.path.basename(filename) 111 self.shortname = os.path.basename(filename)
112 self.mime = mimetypes.guess_type(filename)[0] 112 self.mime = mime
113 self.tempdir = tempfile.mkdtemp() 113 self.tempdir = tempfile.mkdtemp()
114 self.trailer = pdfrw.PdfReader(self.filename) 114 self.trailer = pdfrw.PdfReader(self.filename)
115 self.writer = pdfrw.PdfWriter() 115 self.writer = pdfrw.PdfWriter()
diff --git a/lib/parser.py b/lib/parser.py
index ae647fe..385dd78 100644
--- a/lib/parser.py
+++ b/lib/parser.py
@@ -3,6 +3,7 @@
3''' 3'''
4 4
5import hachoir_core 5import hachoir_core
6import hachoir_editor
6 7
7import os 8import os
8import mimetypes 9import mimetypes
@@ -13,17 +14,22 @@ NOMETA = ('.bmp', 'html', '.py', '.rdf', '.txt', '.xml')
13 14
14 15
15class GenericParser(object): 16class GenericParser(object):
16 def __init__(self, realname, filename, parser, editor, backup, 17 def __init__(self, filename, parser, mime, backup, add2archive):
17 add2archive): 18 self.filename = ''
19 self.parser = parser
20 self.mime = mime
21 self.backup = backup
22 self.editor = hachoir_editor.createEditor(parser)
23 self.realname = filename
24 try:
25 self.filename = hachoir_core.cmd_line.unicodeFilename(filename)
26 except TypeError: # get rid of "decoding Unicode is not supported"
27 self.filename = filename
18 basename, ext = os.path.splitext(filename) 28 basename, ext = os.path.splitext(filename)
19 self.output = basename + '.cleaned' + ext 29 self.output = basename + '.cleaned' + ext
20 self.filename = filename # path + filename
21 self.realname = realname # path + filename
22 self.basename = os.path.basename(filename) # only filename 30 self.basename = os.path.basename(filename) # only filename
23 self.mime = mimetypes.guess_type(filename)[0] # mimetype 31
24 self.parser = parser 32
25 self.editor = editor
26 self.backup = backup
27 33
28 def is_clean(self): 34 def is_clean(self):
29 ''' 35 '''