if self.currentindex == -1: self.currentindex = 0 return self._selfdoc() else: self.em.setmimetype('') if not self.attextractdone: if not self.extractAttach(): return (False, "", "", rclexecm.RclExecM.eofnow) if self.currentindex >= len(self.attachlist): return (False, "", "", rclexecm.RclExecM.eofnow) try: ok, data, ipath, eof = \ self.extractone(self.attachlist[self.currentindex]) self.currentindex += 1 #self.em.rclog("getnext: returning ok for [%s]" % ipath) return (ok, data, ipath, eof) except Exception as ex: self.em.rclog("getnext: extractone failed for index %d: %s" % (self.currentindex, ex)) return (False, "", "", rclexecm.RclExecM.eofnow) # Main program: create protocol handler and extractor and run them _execdir = os.path.dirname(sys.argv[0]) proto = rclexecm.RclExecM() extract = PDFExtractor(proto) rclexecm.main(proto, extract)
WordPassData(self.em)) elif mt == "text/rtf": cmd = [sys.executable, os.path.join(self.execdir, "rclrtf.py"), "-s"] self.em.rclog("rcldoc.py: returning cmd %s" % cmd) return (cmd, WordPassData(self.em)) elif mt == "application/msword": cmd = rclexecm.which("wvWare") if cmd: return ([cmd, "--nographics", "--charset=utf-8"], WordPassData(self.em)) else: return ([],None) else: return ([],None) else: return ([],None) if __name__ == '__main__': # Remember where we execute filters from, in case we need to exec another execdir = os.path.dirname(sys.argv[0]) # Check that we have antiword. We could fallback to wvWare, but # this is not what the old filter did. if not rclexecm.which("antiword"): print("RECFILTERROR HELPERNOTFOUND antiword") sys.exit(1) proto = rclexecm.RclExecM() filter = WordFilter(proto, execdir) extract = rclexec1.Executor(proto, filter) rclexecm.main(proto, extract)