Unrar cleanup
This commit is contained in:
@@ -24,12 +24,14 @@
|
||||
|
||||
import subprocess
|
||||
import gc
|
||||
|
||||
import os, os.path
|
||||
import time, re
|
||||
import os
|
||||
import os.path
|
||||
import time
|
||||
import re
|
||||
|
||||
from rar_exceptions import *
|
||||
|
||||
|
||||
class UnpackerNotInstalled(Exception): pass
|
||||
|
||||
rar_executable_cached = None
|
||||
|
||||
@@ -174,7 +174,7 @@ class PassiveReader:
|
||||
def __init__(self, usercallback = None):
|
||||
self.buf = []
|
||||
self.ucb = usercallback
|
||||
|
||||
|
||||
def _callback(self, msg, UserData, P1, P2):
|
||||
if msg == UCM_PROCESSDATA:
|
||||
data = (ctypes.c_char*P2).from_address(P1).raw
|
||||
@@ -183,7 +183,7 @@ class PassiveReader:
|
||||
else:
|
||||
self.buf.append(data)
|
||||
return 1
|
||||
|
||||
|
||||
def get_result(self):
|
||||
return ''.join(self.buf)
|
||||
|
||||
@@ -197,10 +197,10 @@ class RarInfoIterator(object):
|
||||
raise IncorrectRARPassword
|
||||
self.arc.lockStatus = "locked"
|
||||
self.arc.needskip = False
|
||||
|
||||
|
||||
def __iter__(self):
|
||||
return self
|
||||
|
||||
|
||||
def next(self):
|
||||
if self.index>0:
|
||||
if self.arc.needskip:
|
||||
@@ -208,9 +208,9 @@ class RarInfoIterator(object):
|
||||
self.res = RARReadHeaderEx(self.arc._handle, ctypes.byref(self.headerData))
|
||||
|
||||
if self.res:
|
||||
raise StopIteration
|
||||
raise StopIteration
|
||||
self.arc.needskip = True
|
||||
|
||||
|
||||
data = {}
|
||||
data['index'] = self.index
|
||||
data['filename'] = self.headerData.FileName
|
||||
@@ -224,7 +224,7 @@ class RarInfoIterator(object):
|
||||
self.index += 1
|
||||
return data
|
||||
|
||||
|
||||
|
||||
def __del__(self):
|
||||
self.arc.lockStatus = "finished"
|
||||
|
||||
@@ -254,9 +254,9 @@ class RarFileImplementation(object):
|
||||
|
||||
if password:
|
||||
RARSetPassword(self._handle, password)
|
||||
|
||||
|
||||
self.lockStatus = "ready"
|
||||
|
||||
|
||||
|
||||
|
||||
def destruct(self):
|
||||
@@ -287,7 +287,7 @@ class RarFileImplementation(object):
|
||||
self.needskip = False
|
||||
res.append((info, reader.get_result()))
|
||||
return res
|
||||
|
||||
|
||||
|
||||
def extract(self, checker, path, withSubpath, overwrite):
|
||||
res = []
|
||||
@@ -300,7 +300,7 @@ class RarFileImplementation(object):
|
||||
fn = os.path.split(fn)[-1]
|
||||
target = os.path.join(path, fn)
|
||||
else:
|
||||
raise DeprecationWarning, "Condition callbacks returning strings are deprecated and only supported in Windows"
|
||||
raise DeprecationWarning, "Condition callbacks returning strings are deprecated and only supported in Windows"
|
||||
target = checkres
|
||||
if overwrite or (not os.path.exists(target)):
|
||||
tmpres = RARProcessFile(self._handle, RAR_EXTRACT, None, target)
|
||||
|
||||
Reference in New Issue
Block a user