summaryrefslogtreecommitdiff
path: root/lib/parser.py
diff options
context:
space:
mode:
authorjvoisin2011-07-25 03:03:12 +0200
committerjvoisin2011-07-25 03:03:12 +0200
commit7bec354973580216c64889b925e1f7d6a224d7dd (patch)
tree7ddf33ae6a1ffd5c9d03522ae508f67632f638cb /lib/parser.py
parentac248b5b4979aafa0c05f8253e2f9e1bdba305e6 (diff)
more abstraction, and changed the name of the outputed file
Diffstat (limited to 'lib/parser.py')
-rw-r--r--lib/parser.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/parser.py b/lib/parser.py
index ba4981d..11e776e 100644
--- a/lib/parser.py
+++ b/lib/parser.py
@@ -13,10 +13,12 @@ import mimetypes
13 13
14import mat 14import mat
15 15
16POSTFIX = ".cleaned" 16NOMETA = ('*.txt', '*.bmp', '*.py')
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):
20 basename, ext = os.path.splitext(filename)
21 self.output = basename + '.cleaned.' + ext
20 self.filename = filename #path + filename 22 self.filename = filename #path + filename
21 self.realname = realname #path + filename 23 self.realname = realname #path + filename
22 self.shortname = os.path.basename(filename) #only filename 24 self.shortname = os.path.basename(filename) #only filename
@@ -41,10 +43,8 @@ class Generic_parser(object):
41 for field in self.editor: 43 for field in self.editor:
42 if self._should_remove(field): 44 if self._should_remove(field):
43 self._remove(field.name) 45 self._remove(field.name)
44 hachoir_core.field.writeIntoFile(self.editor, self.filename + POSTFIX) 46 hachoir_core.field.writeIntoFile(self.editor, self.output)
45 if self.backup is False: 47 self.do_backup()
46 mat.secure_remove(self.filename) #remove the old file
47 os.rename(self.filename+ POSTFIX, self.filename) #rename the new
48 48
49 def remove_all_ugly(self): 49 def remove_all_ugly(self):
50 ''' 50 '''
@@ -73,7 +73,7 @@ class Generic_parser(object):
73 try: 73 try:
74 metadata[field.name] = field.value 74 metadata[field.name] = field.value
75 except: 75 except:
76 metadata[field.name] = "harmful content" 76 metadata[field.name] = 'harmful content'
77 return metadata 77 return metadata
78 78
79 def _should_remove(self, key): 79 def _should_remove(self, key):
@@ -82,3 +82,11 @@ class Generic_parser(object):
82 abstract method 82 abstract method
83 ''' 83 '''
84 raise NotImplementedError() 84 raise NotImplementedError()
85
86 def do_backup(self):
87 '''
88 Do a backup of the file if asked
89 '''
90 if self.backup is False:
91 mat.secure_remove(self.filename)
92 os.rename(self.output, self.filename)