Example #1
0
	def htmlrepl(self, file):
		try:
			path, f = os.path.split(file)
			name, ext = os.path.splitext(f)
			cachefile = os.path.join(self.path['cache'], file)
			cachepath = os.path.join(self.path['cache'], path)

			tmpfile = os.path.join(self.tmp, f)

			if (not os.path.exists(cachepath)):
				os.makedirs(cachepath)

			out = open(tmpfile, 'wt', encoding="utf-8")
			parser = TransParser(False, self.reps, out)
			parser.feedf(file)
			out.close()

			if (os.path.exists(cachefile) and filecmp.cmp(tmpfile, cachefile, False)):
				return 'nochange'

			shutil.copy2(tmpfile, cachefile)

			return 'success'
		except Exception as e:
			if self.configDebug:
				raise

			return type(e).__name__
    def get(self, key, attrs=None):
        if (key not in self.repls.keys()):
            self.info('Unrecognised tag: \'<{}>\' at {}. Ignoring.'.format(
                key,
                self.parser.getpos() if self.parser != None else '???'))
            return None

        file, ret = self.repls[key]

        if (file[-3:] == '.py'):
            try:
                return ret.handler(attrs)
            except Exception as e:
                self.info(
                    'Tag handler for \'<{}>\' threw exception \'{}\'.'.format(
                        key,
                        type(e).__name__))

                return '<!-- {} //-->'.format('{} -> ERROR: {}'.format(
                    key,
                    type(e).__name__))
        elif (ret == None):
            s = io.StringIO('')

            self.disallow.append(file)  # Disallow nesting!

            p = TransParser(False, self, s)
            p.feedf(file)

            self.disallow.pop()

            ret = s.getvalue()
            self.repls[key] = (file, ret)

        return ret
    def get(self, key, attrs=None):
        if key not in self.repls.keys():
            self.info(
                "Unrecognised tag: '<{}>' at {}. Ignoring.".format(
                    key, self.parser.getpos() if self.parser != None else "???"
                )
            )
            return None

        file, ret = self.repls[key]

        if file[-3:] == ".py":
            try:
                return ret.handler(attrs)
            except Exception as e:
                self.info("Tag handler for '<{}>' threw exception '{}'.".format(key, type(e).__name__))

                return "<!-- {} //-->".format("{} -> ERROR: {}".format(key, type(e).__name__))
        elif ret == None:
            s = io.StringIO("")

            self.disallow.append(file)  # Disallow nesting!

            p = TransParser(False, self, s)
            p.feedf(file)

            self.disallow.pop()

            ret = s.getvalue()
            self.repls[key] = (file, ret)

        return ret