|
a/src/filters/rclrar |
|
b/src/filters/rclrar |
|
... |
|
... |
71 |
ipath = ipath.encode("utf-8")
|
71 |
ipath = ipath.encode("utf-8")
|
72 |
return (ok, docdata, ipath, iseof)
|
72 |
return (ok, docdata, ipath, iseof)
|
73 |
|
73 |
|
74 |
###### File type handler api, used by rclexecm ---------->
|
74 |
###### File type handler api, used by rclexecm ---------->
|
75 |
def openfile(self, params):
|
75 |
def openfile(self, params):
|
76 |
self.currentindex = 0
|
76 |
self.currentindex = -1
|
77 |
try:
|
77 |
try:
|
78 |
self.rar = RarFile(params["filename:"])
|
78 |
self.rar = RarFile(params["filename:"])
|
79 |
return True
|
79 |
return True
|
80 |
except:
|
80 |
except:
|
81 |
return False
|
81 |
return False
|
|
... |
|
... |
91 |
return self.extractone(ipath)
|
91 |
return self.extractone(ipath)
|
92 |
except Exception, err:
|
92 |
except Exception, err:
|
93 |
return (ok, data, ipath, eof)
|
93 |
return (ok, data, ipath, eof)
|
94 |
|
94 |
|
95 |
def getnext(self, params):
|
95 |
def getnext(self, params):
|
|
|
96 |
|
|
|
97 |
if self.currentindex == -1:
|
|
|
98 |
# Return "self" doc
|
|
|
99 |
self.currentindex = 0
|
|
|
100 |
self.em.setmimetype('text/plain')
|
|
|
101 |
if len(self.rar.namelist()) == 0:
|
|
|
102 |
eof = rclexecm.RclExecM.eofnext
|
|
|
103 |
else:
|
|
|
104 |
eof = rclexecm.RclExecM.noteof
|
|
|
105 |
return (True, "", "", eof)
|
|
|
106 |
|
96 |
if self.currentindex >= len(self.rar.namelist()):
|
107 |
if self.currentindex >= len(self.rar.namelist()):
|
97 |
#self.em.rclog("getnext: EOF hit")
|
108 |
#self.em.rclog("getnext: EOF hit")
|
98 |
return (False, "", "", rclexecm.RclExecM.eofnow)
|
109 |
return (False, "", "", rclexecm.RclExecM.eofnow)
|
99 |
else:
|
110 |
else:
|
100 |
ret= self.extractone(self.rar.namelist()[self.currentindex])
|
111 |
ret= self.extractone(self.rar.namelist()[self.currentindex])
|