示例#1
0
    def __init__(self, properties={}, process_config=True, wiki_name=None):
        self.writestack = []
        self.filestack = []
        self.getText = None
        self.args = None
        self.form = {}
        self.logger = None
        self.pragma = {}
        self.mode_getpagelinks = 0
        self.no_closing_html_code = 0

        self.sent_headers = False
        self.user_headers = []
        self.status = ''
        self.output_buffer = []

        self.html_head = []
        self.generating_cache = False
        self.did_redirect = False
        self.wiki_exists = True
        self.set_cache = False
        # list of things to do after committing data to the database
        self.postCommitActions = []  
        if config.memcache:
            # the 'real' memcache, which will send things as soon as it's
            # called
            self._mc = MemcachePool.getMC() 
            # wrap real memcache so set() and delete() only occur after
            # commits happen
            self.mc = postCommitMC(self) 
        # pre-request cache 
        self.req_cache = {'pagenames':{}, 'users':{}, 'users_id':{},
                          'userFavs': {}, 'page_info': {}, 'random': {},
                          'acls': {}, 'interwiki': {}, 'file_dict': {},
                          'group_dict':{}, 'group_ips':{},
                          'pageDateVersion':{}, 'pageVersionDate':{},
                          'watchedWikis': {}, 'wiki_config':{},
                          'wiki_domains':{}}
        self.db_connect()

        self.previewing_page = False
        self.i18n = i18n
        self.pagename = None
        self.pagename_propercased = None

        self.addresses = {} # for [[address]] macro.
        # the time our current request's save is marked for (if applicable)
        self.save_time = None 
        self.sent_page_content = None

        wiki_name = wiki_name or setup_wiki_farm(self)
        if not wiki_name:
            wiki_name = config.wiki_name

        self.config = config.Config(wiki_name, self,
            process_config=process_config)
        if canonical_url(self):
            # We do an http_redirect, so let's just return
            return
        self.setup_basics()

        self.reset()
示例#2
0
 def add(self, name, value, **kws):
     if not kws.has_key('prefix'): kws['prefix'] = self._getPrefix()
     value = copy(value) 
     value = MemcachePool.fixEncoding(value)
     self.postCommitActions.append((self.mc.add, (name, value), kws))