from twisted.web.resource import Resource from jinja2 import Template, Environment from jinja2.loaders import DictLoader import subprocess import datetime import re class main(Resource): isLeaf = True disable = False def getChild(self, name, request): if name == '': return self return Resource.getChild(self, name, request) def render_GET(self, request): source = Environment().from_string(u'''\ [yiff.iotairc.net] (Web panel) {{ duration }} ''') p = subprocess.Popen(["ps", "-C", "ircd", "-O", "etime"], stdout=subprocess.PIPE) out, err = p.communicate() out = out.split() uptime = out[7] duration = datetime.timedelta(**dict((k, int(v)) for k, v in re.match(r'(?:(?P\d+)-)?(?:(?P\d\d):?)(?P\d+):(?P\d+)', uptime).groupdict().iteritems())) page = source.render(duration=duration, autorefresh="o") return str(page) resource = main()