From a1daa8de551c1a0043ff26390e067f23f8f96048 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Sat, 20 Jul 2019 19:17:29 +0200 Subject: [PATCH] Epub: close file (windows temp file cleanup) --- src/filters/rclepub | 11 ++++++++++- src/filters/rclepub1 | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/filters/rclepub b/src/filters/rclepub index db1758e4..c99ca452 100755 --- a/src/filters/rclepub +++ b/src/filters/rclepub @@ -52,6 +52,7 @@ class rclEPUB: data = data.encode('UTF-8') self.em.setmimetype('text/html') if len(self.contents) == 0: + self.closefile() eof = rclexecm.RclExecM.eofnext else: eof = rclexecm.RclExecM.noteof @@ -97,6 +98,9 @@ class rclEPUB: alltxt += txt return alltxt + def closefile(self): + self.book.close() + def openfile(self, params): """Open the EPUB file, create a contents array""" self.currentindex = -1 @@ -118,6 +122,7 @@ class rclEPUB: def getnext(self, params): if self.catenate: alltxt = self.dumpall() + self.closefile() if alltxt: return (True, alltxt, "", rclexecm.RclExecM.eofnext) else: @@ -128,9 +133,13 @@ class rclEPUB: return self._selfdoc() if self.currentindex >= len(self.contents): + self.closefile() return (False, "", "", rclexecm.RclExecM.eofnow) else: - ret= self.extractone(self.contents[self.currentindex]) + ret = self.extractone(self.contents[self.currentindex]) + if ret[3] == rclexecm.RclExecM.eofnext or \ + ret[3] == rclexecm.RclExecM.eofnow: + self.closefile() self.currentindex += 1 return ret diff --git a/src/filters/rclepub1 b/src/filters/rclepub1 index 44931bff..86b6058f 100755 --- a/src/filters/rclepub1 +++ b/src/filters/rclepub1 @@ -73,6 +73,7 @@ class EPUBConcatExtractor(RclBaseHandler): data += doc data += b'' + self.book.close() return data proto = rclexecm.RclExecM()