diff options
| author | jvoisin | 2011-07-25 03:03:12 +0200 |
|---|---|---|
| committer | jvoisin | 2011-07-25 03:03:12 +0200 |
| commit | 7bec354973580216c64889b925e1f7d6a224d7dd (patch) | |
| tree | 7ddf33ae6a1ffd5c9d03522ae508f67632f638cb /lib/parser.py | |
| parent | ac248b5b4979aafa0c05f8253e2f9e1bdba305e6 (diff) | |
more abstraction, and changed the name of the outputed file
Diffstat (limited to 'lib/parser.py')
| -rw-r--r-- | lib/parser.py | 20 |
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 | ||
| 14 | import mat | 14 | import mat |
| 15 | 15 | ||
| 16 | POSTFIX = ".cleaned" | 16 | NOMETA = ('*.txt', '*.bmp', '*.py') |
| 17 | 17 | ||
| 18 | class Generic_parser(object): | 18 | class 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) | ||
