Browse Source

Unrar cleanup

pull/3176/merge
Ruud 11 years ago
parent
commit
265f90fe69
  1. 8
      libs/unrar2/unix.py
  2. 22
      libs/unrar2/windows.py

8
libs/unrar2/unix.py

@ -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

22
libs/unrar2/windows.py

@ -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)

Loading…
Cancel
Save