1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # -*- coding: utf-8 -*-
-
-
- class GmonPluginError(Exception):
- pass
-
- class XGPRenderer(object):
-
- def __init__(self, txt=None):
- self.txt = txt
- self.img = None
- self.tool = txt
- self.bar = None
- self.click = None
- self._fields = ['txt', 'img', 'tool', 'bar', 'click']
-
- def __str__(self):
- out = ""
- for field in self._fields:
- value = getattr(self, field, None)
- if value is not None:
- out += "<%(f)s>%(v)s</%(f)s>" % {'f': field, 'v': value}
- return out
-
-
- class BasePlugin(object):
-
- def __init__(self, data):
- self.data = data
-
- def render(self):
- method_n = "render_" + self.data.fmt
-
- def ex(__):
- raise GmonPluginError("method not defined: " + method_n)
-
- render_fn = getattr(self, method_n, ex)
- return render_fn()
-
- def render_xgp(self):
- return XGPRenderer(self.render_plain())
|