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