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()