--- /dev/null
+#!/usr/bin/env python
+# vim: set ts=4 sts=4 sw=4 textwidth=92:
+
+import logging
+import PAR2Set.Base
+import rsutil.common
+
+#
+# This is a class that will only repair and delete, not extract
+#
+# It will detect sets like the following:
+# X.par2
+# X.vol0+1.par2
+# X.vol1+2.par2
+# 01.mp3
+# 02.mp3
+# 03.mp3
+#
+# Where the PAR2 files protect the mp3 files.
+#
+
+def detector (name_files, prot_files):
+ EXTRACT_REGEX = rsutil.common.config_get_value ('regular expressions', 'extractable_regex')
+ return not rsutil.common.has_a_match (EXTRACT_REGEX, prot_files)
+
+
+class NoExtract (PAR2Set.Base.Base):
+
+ def __repr__ (self):
+ return 'NoExtract'
+
+ def runAll (self):
+
+ # Repair Stage
+ ret = self.runVerifyAndRepair ()
+
+ if ret != rsutil.common.SUCCESS:
+ logging.critical ('Repair stage failed for: %s' % self.p2file)
+ return -rsutil.common.ECHECK
+
+ self.update_matches ()
+
+ # Deletion Stage
+ ret = self.runDelete ()
+
+ if ret != rsutil.common.SUCCESS:
+ logging.critical ('Deletion stage failed for: %s' % self.p2file)
+ return -rsutil.common.EDELETE
+
+ logging.info ('Successfully completed: %s' % self.p2file)
+ return rsutil.common.SUCCESS
+
import NewRAR
import OldRAR
import ZIP
+import NoExtract
__all__ = ['Base', 'ExtractFirstBase', 'ExtractFirstNewRAR', 'ExtractFirstOldRAR', 'Join',
- 'NewRAR', 'OldRAR', 'ZIP']
+ 'NewRAR', 'OldRAR', 'ZIP', 'NoExtract']
def main ():
pass
import PAR2Set.NewRAR
import PAR2Set.ExtractFirstOldRAR
import PAR2Set.ExtractFirstNewRAR
+import PAR2Set.NoExtract
import logging
(PAR2Set.NewRAR.detector, PAR2Set.NewRAR.NewRAR),
(PAR2Set.ExtractFirstOldRAR.detector, PAR2Set.ExtractFirstOldRAR.ExtractFirstOldRAR),
(PAR2Set.ExtractFirstNewRAR.detector, PAR2Set.ExtractFirstNewRAR.ExtractFirstNewRAR),
+ (PAR2Set.NoExtract.detector, PAR2Set.NoExtract.NoExtract),
)
def __init__ (self, dir, p2file):
'^.*\.(par2|\d|\d\d\d|rar|r\d\d|zip)$',
('regular expressions', 'basename_regex') :
'^(.+)\.(par2|vol\d+\+\d+|\d\d\d|part\d+|rar|zip|avi|mp4|mkv|ogm)$',
+ ('regular expressions', 'extractable_regex') :
+ '^.+\.(rar|r\d\d|\d\d\d|zip)$',
('commands', 'unrar') : 'unrar x -o+ -- ',
('commands', 'unzip') : 'unzip \"%s\" -d \"%s\" ',
('commands', 'noextract') : 'mv \"%s\" \"%s\" ',