Exemple #1
0
def main(name):
    engine = tenjin.Engine(path=[name],
                           postfix='.html',
                           cache=tenjin.MemoryCacheStorage(),
                           pp=None)
    helpers = {
        'to_str': str_type,
        'escape': escape,
        'capture_as': capture_as,
        'captured_as': captured_as,
        'cache_as': cache_as
    }
    return lambda ctx: engine.render('welcome.html', ctx, helpers)
Exemple #2
0
def build_categories_coffee():
    products = ProductPackaging().all_details_dict_pallet()

    data = {'products': products}

    ## change to store template cache into memory instead of file system
    tenjin.Engine.cache = tenjin.MemoryCacheStorage()
    engine = tenjin.Engine(cache=tenjin.MemoryCacheStorage(),
                           path=[settings.TENJIN_TEMPLATES_DIR])

    txt = engine.render('js.pyhtml', data)
    local_data_dir = os.path.join(settings.BASE_DIR, 'renesola',
                                  'coffee_script', 'freight_calculator',
                                  'locally_built_data')
    coffee_script_file = os.path.join(local_data_dir, 'categories.coffee')
    if not os.path.exists(local_data_dir):
        os.makedirs(local_data_dir)
    fo = open(coffee_script_file, 'w')
    fo.write(txt)
    fo.close()
    msg = 'wrote categories.coffee from import_xl'

    logger.info(msg)
Exemple #3
0
 def _create_jetty_web_xml(self, projectname, project_path, kwargs):
     try:
         if "pn" in kwargs:
             if kwargs["pn"].lower() == "true":
                 engine = tenjin.Engine(cache=tenjin.MemoryCacheStorage())
                 web_xml = engine.render(
                     os.path.join(env.mytemplateDir, 'jetty-web.xml'),
                     {"project_name": projectname})
                 f = open(
                     os.path.join(project_path, 'WEB-INF', 'jetty-web.xml'),
                     'w')
                 f.write(web_xml)
                 f.close()
     except Exception, e:
         dlog.write(e, console=True)
Exemple #4
0
    def render(self, templatefile, context, save=True):
        u'''
        Examples:

        | Render |  template.xml  | {"timestamp":"12323213"}  |

        Template Engine: tenjin
        '''
        dlog.write(context)
        templatefile = CONTEXT.get_path(templatefile)
        if type(context) is unicode:
            #             context = json.loads(context, encoding="utf-8")
            context = eval(context)
        path = '\\'.join((templatefile.split('\\'))[:-1])
        tfile = templatefile.split('\\')[-1]
        engine = tenjin.Engine(path=[path], cache=tenjin.MemoryCacheStorage())
        newstring = engine.render(tfile, context)
        return newstring
Exemple #5
0
	@type bbcode_content: str or unicode
	@param bbcode_content: 用于转换的BBCode内容

	@type escape: bool
	@param escape: 是否进行HTML实体转义

	@type exclude_tags: str or unicode
	@param exclude_tags: 不进行解析的BBCode标签
	'''
	return render_bbcode(bbcode_content, auto_urls=False, clean=False, exclude_tags=exclude_tags, escape=escape)

def parse_plain_text(content):
	return escape(content).replace('\n', '<br/>').replace('  ', '&#160;&#160;').replace('\t', '&#160;&#160;&#160;&#160;')


engine = tenjin.Engine(path=[os.path.join('template', theme) for theme in THEMES] + ['template'], cache=tenjin.MemoryCacheStorage(), preprocess=True)

class BaseHandler(yui.HtmlRequestHandler):

	if ONLINE_VISITORS_EXPIRY_TIME > 0:
		def before(self, *args, **kw):
			super(BaseHandler, self).before(*args, **kw)
			now = int(time())
			online_visitors = memcache.get('online_visitors') or {}
			for visitor, expiry_time in online_visitors.copy().iteritems():
				if expiry_time < now:
					del online_visitors[visitor]
			request = self.request
			current_user = request.user
			online_visitors[current_user.email() if current_user else request.client_ip] = now + ONLINE_VISITORS_EXPIRY_TIME
			memcache.set('online_visitors', online_visitors)
Exemple #6
0
#encoding:utf-8

import os
import urllib
import urlparse
import tenjin
import tornado.web

from tenjin.helpers import *

crm_engine = tenjin.Engine(
    path=[os.path.join(os.path.dirname(__file__), 'templates')],
    cache=tenjin.MemoryCacheStorage(),
    preprocess=True)

mobile_engine = tenjin.Engine(
    path=[os.path.join(os.path.dirname(__file__), 'weixin_mobile')],
    cache=tenjin.MemoryCacheStorage(),
    preprocess=True)

web_engine = crm_engine  #tenjin.Engine(path=[os.path.join(os.path.dirname(__file__),'gongzhuhao_web')], cache=tenjin.MemoryCacheStorage(),preprocess=True)

from raven.contrib.tornado import SentryMixin


class TenjinBase(tornado.web.RequestHandler, SentryMixin):
    def __init__(self, *argc, **argkw):
        self.title = ''
        self.description = ''
        self.keywords = ''
        super(TenjinBase, self).__init__(*argc, **argkw)
Exemple #7
0
                key_with_suffix = req.request.path
                
            mc = pylibmc.Client()
            html = mc.get(key_with_suffix)
            request_time = int(req.request.request_time()*1000)
            if html:
                req.write(html)
                #req.write(RQT_RE.sub('<span id="requesttime">%d</span>'%request_time, html))
            else:
                result = method(*args, **kwargs)
                mc.set(key_with_suffix, result, time)
        return _wrapper
    return _decorate

###
engine = tenjin.Engine(path=[os.path.join('templates', theme) for theme in [THEME,'admin']] + ['templates'], cache=tenjin.MemoryCacheStorage(), preprocess=True)
class BaseHandler(tornado.web.RequestHandler):
    
    def render(self, template, context=None, globals=None, layout=False):
        if context is None:
            context = {}
        context.update({
            'request':self.request,
        })
        return engine.render(template, context, globals, layout)

    def echo(self, template, context=None, globals=None, layout=False):
        self.write(self.render(template, context, globals, layout))
    
    def set_cache(self, seconds, is_privacy=None):
        if seconds <= 0:
Exemple #8
0
from doodle.config import CONFIG
from doodle.core.models.fragment_cache import FragmentCache
from doodle.core.models.auth import Auth
from doodle.core.models.user import User


if CONFIG.DEBUG_MODE:
    Engine = tenjin.Engine
else:
    class Engine(tenjin.Engine):
        def _get_template_from_cache(self, cachepath, filepath):
            # skip file time checking
            return self.cache.get(cachepath, self.templateclass)

fragment_cache.store = FragmentCache
engine = Engine(path=[CONFIG.TEMPLATE_PATH], cache=tenjin.MemoryCacheStorage(), preprocess=True)

TEMPLATE_GLOBALS = {
    'to_str': to_str,
    'escape': escape,
    '_decode_params': _decode_params,
    'CONFIG': CONFIG
}

MIME_TYPE_ABBREVIATIONS = {
    'atom': 'application/atom+xml',
    'html': 'text/html',
    'json': 'application/json',
    'plain': 'text/plain',
    'rss': 'application/rss+xml'
}
Exemple #9
0
            if key_suffix_calc_func:
                key_suffix = key_suffix_calc_func(*args, **kw)
                if key_suffix:
                    key_with_suffix = '%s:%s' % (key, key_suffix)

            value = memcache.get(key_with_suffix, namespace)
            if not value:
                value = func(*args, **kw)
                memcache.set(key_with_suffix, value, cache_time, namespace)
            return value
        return cached_func
    return wrap
    
###
engine = tenjin.Engine(path=[os.path.join('templates', THEME), 'templates'], cache=tenjin.MemoryCacheStorage(), preprocess=True)

class BaseHandler(yui.HtmlRequestHandler):
    
    __IOS_PATTERN = re.compile('(iPod|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP)', re.I)
    
    def render(self, template, context=None, globals=None, layout=False):
        return engine.render(template, context, globals, layout)
    
    def echo(self, template, context=None, globals=None, layout=False):
        if context is None:
            context = {'request': self.request}
        else:
            context['request'] = self.request
        context['cur_user'] = self.cur_user#()
        if self.request.user and not context['cur_user'] and self.request.path != '/setname':
Exemple #10
0
#!/usr/bin/env python3
import sys,os
import tenjin
from tenjin.helpers import *

eng = tenjin.Engine(postfix='.pyyar', cache=tenjin.MemoryCacheStorage())

def die(s):
  sys.stderr.write(s)
  quit(1)

def main(cr):
  global eng
  path = 'countries/{}-ipv6.zone'.format(cr)
  
  if not os.path.exists(path):
    die('Error: {} doesn\'t exists\n'.format(path))

  addrs = []
  with open(path, 'r') as fd:
    lines = fd.readlines()
  for line in lines:
    if line[0] == '#' or len(line) == 0:
      continue
    addrs.append(line[0:line.find('::')] + ':')
  
  output = eng.render(':rule', context={
    'cr':cr, 'addrs': addrs
  })
  print(output)