--- Hellanzb/Core.py.orig Tue Mar 27 04:20:43 2007 +++ Hellanzb/Core.py Tue May 1 03:54:18 2007 @@ -125,6 +125,8 @@ Hellanzb.NZB_ZIPS = '.nzb.zip' if not hasattr(Hellanzb, 'NZB_GZIPS'): Hellanzb.NZB_GZIPS = '.nzb.gz' + if not hasattr(Hellanzb, 'NZB_RARS'): + Hellanzb.NZB_RARS = '.rar' if not hasattr(Hellanzb, 'DISABLE_COLORS'): Hellanzb.DISABLE_COLORS = False --- Hellanzb/NZBQueue.py.orig Tue Mar 27 04:20:43 2007 +++ Hellanzb/NZBQueue.py Sun May 6 08:07:25 2007 @@ -155,7 +155,7 @@ queuedMap.pop(os.path.normpath(os.path.join(Hellanzb.QUEUE_DIR, file))) elif isOldEnough(os.path.join(Hellanzb.QUEUE_DIR, file)): - if not nzbZipSearch(file) and not nzbGzipSearch(file): + if not nzbZipSearch(file) and not nzbGzipSearch(file) and not nzbRarSearch(file): Hellanzb.queueDirIgnore.append(file) # Remove anything no longer in the queue directory @@ -309,6 +309,42 @@ z.close() os.remove(filepath) + return True + +def nzbRarSearch(file): + """ Should extract NZBs from the specified file in Hellanzb.QUEUE_DIR when + it appears to be a .gz file (according to the Hellanzb.NZB_RARS suffix) + """ + if not Hellanzb.NZB_RARS or not file.lower().endswith(Hellanzb.NZB_RARS): + return False + + fileName = os.path.join(Hellanzb.QUEUE_DIR, file) + + pathToExtract = Hellanzb.QUEUE_DIR + + cmd = Hellanzb.UNRAR_CMD + ' e ' + fileName + ' '+ pathToExtract + try: + returnCode = os.system(cmd) + except SystemExit: + # Rename the renamed files + for orig, renamed in renamedFiles.iteritems(): + move(renamed, orig) + raise + + if returnCode > 0: + errMsg = 'There was a problem during ' + cmd + raise FatalError(errMsg) + + cmd = 'rm ' + fileName + try: + returnCode = os.system(cmd) + except SystemExit: + raise + + if returnCode > 0: + errMsg = 'There was a problem during ' + cmd + raise FatalError(errMsg) + return True def sortQueueFromRecoveredState(queuedRecoveredState): --- setup.py.orig Mon Feb 19 18:12:55 2007 +++ setup.py Wed Feb 21 16:34:28 2007 @@ -38,8 +38,7 @@ packages = [ 'Hellanzb', 'Hellanzb.NZBLeecher', 'Hellanzb.HellaXMLRPC', 'Hellanzb.external', 'Hellanzb.external.elementtree' ], scripts = [ 'hellanzb.py' ], - data_files = [ ( 'etc', [ 'etc/hellanzb.conf.sample' ] ), - ( 'share/doc/hellanzb', [ 'CHANGELOG', 'CREDITS', 'README', 'LICENSE' ] ) ], + data_files = [ ( 'etc', [ 'etc/hellanzb.conf.sample' ] ), ], ) py2app_options = dict( app = [ 'hellanzb.py' ],