本文整理汇总了Python中MoinMoin.Page.Page.exists方法的典型用法代码示例。如果您正苦于以下问题:Python Page.exists方法的具体用法?Python Page.exists怎么用?Python Page.exists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MoinMoin.Page.Page
的用法示例。
在下文中一共展示了Page.exists方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: findMatches
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def findMatches(pagename, request, s_re=None, e_re=None,):
""" Find like pages
@param pagename: name to match
@param request: current reqeust
@param s_re: start re for wiki matching
@param e_re: end re for wiki matching
@rtype: tuple
@return: start word, end word, matches dict
"""
# Get full list of pages, with no filtering - very fast. We will
# first search for like pages, then filter the results.
pages = request.rootpage.getPageList(user='', exists='')
# Remove current page
try:
pages.remove(pagename)
except ValueError:
pass
# Get matches using wiki way, start and end of word
start, end, matches = wikiMatches(pagename, pages, start_re=s_re,
end_re=e_re)
# Get the best 10 close matches using difflib
close_matches = {}
found = 0
for name in closeMatches(pagename, pages):
# Skip names already in matches
if name in matches:
continue
# Filter deleted pages or pages the user can't read
page = Page(request, name)
if page.exists() and request.user.may.read(name):
close_matches[name] = 8
found += 1
# Stop after 10 matches
if found == 10:
break
# Filter deleted pages or pages the user can't read from
# matches. Order is important!
for name in matches.keys():
page = Page(request, name)
if not (page.exists() and request.user.may.read(name)):
del matches[name]
# Finally, merge both dicts
matches.update(close_matches)
return start, end, matches
示例2: save
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def save(self, editor, newtext, rev, **kw):
request = self.request
username = request.user.name
pagename = editor.page_name
if grouppage_autocreate and username == pagename:
# create group pages when a user saves his own homepage
for page in grouppages:
grouppagename = "%s/%s" % (username, page)
grouppage = Page(request, grouppagename)
if not grouppage.exists():
text = """\
#acl %(username)s:read,write,delete,revert
* %(username)s
""" % locals()
editor = PageEditor(request, grouppagename)
editor._write_file(text)
parts = pagename.split('/')
if len(parts) == 2:
subpage = parts[1]
if subpage in grouppages and not self.admin(pagename):
return False
# No problem to save if my base class agrees
return Permissions.save(self, editor, newtext, rev, **kw)
示例3: packagePages
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def packagePages(self, pagelist, filename, function):
""" Puts pages from pagelist into filename and calls function on them on installation. """
request = self.request
try:
os.remove(filename)
except OSError:
pass
zf = zipfile.ZipFile(filename, "w", COMPRESSION_LEVEL)
cnt = 0
script = [packLine(['MoinMoinPackage', '1']), ]
for pagename in pagelist:
pagename = pagename.strip()
page = Page(request, pagename)
if page.exists():
cnt += 1
script.append(packLine([function, str(cnt), pagename]))
timestamp = wikiutil.version2timestamp(page.mtime_usecs())
zi = zipfile.ZipInfo(filename=str(cnt), date_time=datetime.fromtimestamp(timestamp).timetuple()[:6])
zi.compress_type = COMPRESSION_LEVEL
zf.writestr(zi, page.get_raw_body().encode("utf-8"))
else:
#import sys
#print >>sys.stderr, "Could not find the page %s." % pagename.encode("utf-8")
pass
script += [packLine(['Print', 'Installed MoinMaster page bundle %s.' % os.path.basename(filename)])]
zf.writestr(MOIN_PACKAGE_FILE, u"\n".join(script).encode("utf-8"))
zf.close()
示例4: execute
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def execute(pagename, request):
_ = request.getText
sub_page_name = request.cfg.supplementation_page_name
sub_page_template = request.cfg.supplementation_page_template
newpagename = "%s/%s" % (pagename, sub_page_name)
errormsg = _("You are not allowed to create the supplementation page.")
if pagename.endswith(sub_page_name): # sub_sub_page redirects to sub_page
query = {}
url = Page(request, pagename).url(request, query)
request.http_redirect(url)
elif request.user.may.read(newpagename):
query = {}
url = Page(request, newpagename).url(request, query)
test = Page(request, newpagename)
if test.exists(): # page is defined -> redirect
request.http_redirect(url)
elif request.user.may.write(newpagename): # page will be created from template
query = {'action': 'edit', 'backto': newpagename, 'template': quoteWikinameURL(sub_page_template)}
url = Page(request, newpagename).url(request, query)
request.http_redirect(url)
else:
request.theme.add_msg(errormsg, "error")
else:
request.theme.add_msg(errormsg, "error")
示例5: move_file
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def move_file(request, pagename, new_pagename, attachment, new_attachment):
_ = request.getText
newpage = Page(request, new_pagename)
if newpage.exists(includeDeleted=1) and request.user.may.write(new_pagename) and request.user.may.delete(pagename):
new_attachment_path = os.path.join(getAttachDir(request, new_pagename,
create=1), new_attachment).encode(config.charset)
attachment_path = os.path.join(getAttachDir(request, pagename),
attachment).encode(config.charset)
if os.path.exists(new_attachment_path):
upload_form(pagename, request,
msg=_("Attachment '%(new_pagename)s/%(new_filename)s' already exists.") % {
'new_pagename': new_pagename,
'new_filename': new_attachment})
return
if new_attachment_path != attachment_path:
# move file
filesys.rename(attachment_path, new_attachment_path)
_addLogEntry(request, 'ATTDEL', pagename, attachment)
_addLogEntry(request, 'ATTNEW', new_pagename, new_attachment)
upload_form(pagename, request,
msg=_("Attachment '%(pagename)s/%(filename)s' moved to '%(new_pagename)s/%(new_filename)s'.") % {
'pagename': pagename,
'filename': attachment,
'new_pagename': new_pagename,
'new_filename': new_attachment})
else:
upload_form(pagename, request, msg=_("Nothing changed"))
else:
upload_form(pagename, request, msg=_("Page '%(new_pagename)s' does not exist or you don't have enough rights.") % {
'new_pagename': new_pagename})
示例6: xmlrpc_listLinks
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def xmlrpc_listLinks(self, pagename):
"""
list links for a given page
@param pagename: the page name
@rtype: list
@return: links of the page, structs, with the following elements
* name (string) : The page name or URL the link is to, UTF-8 encoding.
* type (int) : The link type. Zero (0) for internal Wiki
link, one (1) for external link (URL - image link, whatever).
"""
pagename = self._instr(pagename)
# User may read page?
if not self.request.user.may.read(pagename):
return self.notAllowedFault()
page = Page(self.request, pagename)
# Non existing page?
if not page.exists():
return self.noSuchPageFault()
links_out = []
for link in page.getPageLinks(self.request):
links_out.append({ 'name': self._outstr(link), 'type': 0 })
return links_out
示例7: addTrail
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def addTrail(self, pagename):
"""
Add page to trail.
@param pagename: the page name to add to the trail
"""
if self.valid and (self.show_page_trail or self.remember_last_visit):
# load trail if not known
self.getTrail()
# don't append tail to trail ;)
if self._trail and self._trail[-1] == pagename: return
# Add only existing pages that the user may read
if self._request:
from MoinMoin.Page import Page
page = Page(self._request, pagename)
if not (page.exists() and
self._request.user.may.read(page.page_name)):
return
# append new page, limiting the length
self._trail = filter(lambda p, pn=pagename: p != pn, self._trail)
self._trail = self._trail[-(self._cfg.trail_size-1):]
self._trail.append(pagename)
# save new trail
trailfile = codecs.open(self.__filename() + ".trail", "w", config.charset)
for t in self._trail:
trailfile.write('%s\n' % t)
trailfile.close()
try:
os.chmod(self.__filename() + ".trail", 0666 & config.umask)
except OSError:
pass
示例8: _load_dict
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def _load_dict(self):
request = self.request
dict_name = self.name
page = Page(request, dict_name)
if page.exists():
arena = "pagedicts"
key = wikiutil.quoteWikinameFS(dict_name)
cache = caching.CacheEntry(request, arena, key, scope="wiki", use_pickle=True)
try:
cache_mtime = cache.mtime()
page_mtime = wikiutil.version2timestamp(page.mtime_usecs())
# TODO: fix up-to-date check mtime granularity problems.
#
# cache_mtime is float while page_mtime is integer
# The comparision needs to be done on the lowest type of both
if int(cache_mtime) > int(page_mtime):
# cache is uptodate
return cache.content()
else:
raise caching.CacheError
except caching.CacheError:
# either cache does not exist, is erroneous or not uptodate: recreate it
d = super(WikiDict, self)._load_dict()
cache.update(d)
return d
else:
raise DictDoesNotExistError(dict_name)
示例9: xmlrpc_getPageVersion
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def xmlrpc_getPageVersion(self, pagename, rev):
""" Get raw text from specific revision of pagename
@param pagename: pagename (utf-8)
@param rev: revision number (int)
@rtype: str
@return: utf-8 encoded page data
"""
pagename = self._instr(pagename)
# User may read page?
if not self.request.user.may.read(pagename):
return self.notAllowedFault()
if rev != None:
page = Page(self.request, pagename, rev=rev)
else:
page = Page(self.request, pagename)
# Non existing page?
if not page.exists():
return self.noSuchPageFault()
# Return page raw text
if self.version == 2:
return self._outstr(page.get_raw_body())
elif self.version == 1:
return self._outlob(page.get_raw_body())
示例10: addTrail
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def addTrail(self, pagename):
"""
Add page to trail.
@param pagename: the page name to add to the trail
"""
# TODO: acquire lock here, so multiple processes don't clober
# each one trail.
if self.valid and (self.show_page_trail or self.remember_last_visit):
# load trail if not known
self.getTrail()
# don't append tail to trail ;)
if self._trail and self._trail[-1] == pagename: return
# Add only existing pages that the user may read
if self._request:
from MoinMoin.Page import Page
page = Page(self._request, pagename)
if not (page.exists() and
self._request.user.may.read(page.page_name)):
return
# append new page, limiting the length
self._trail = filter(lambda p, pn=pagename: p != pn, self._trail)
self._trail = self._trail[-(self._cfg.trail_size-1):]
self._trail.append(pagename)
self.saveTrail()
示例11: include
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def include(self, name, arguments, options, content, lineno,
content_offset, block_text, state, state_machine):
# content contains the included file name
_ = self.request.getText
if len(content):
if content[0] in self.included_documents:
lines = [_("**Duplicate included files are not permitted**")]
state_machine.insert_input(lines, 'MoinDirectives')
return
self.included_documents.append(content[0])
page = Page(page_name = content[0], request = self.request)
if page.exists():
text = page.get_raw_body()
lines = text.split('\n')
# Remove the "#format rst" line
if lines[0].startswith("#format"):
del lines[0]
else:
lines = [_("**Could not find the referenced page: %s**") % (content[0],)]
# Insert the text from the included document and then continue
# parsing
state_machine.insert_input(lines, 'MoinDirectives')
return
示例12: xmlrpc_getPageHTMLVersion
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def xmlrpc_getPageHTMLVersion(self, pagename, rev):
"""
Get HTML of from specific revision of pagename
@param pagename: the page name (utf-8)
@param rev: revision number (int)
@rtype: str
@return: page in rendered HTML (utf-8)
"""
pagename = self._instr(pagename)
# User may read page?
if not self.request.user.may.read(pagename):
return self.notAllowedFault()
if rev is not None:
page = Page(self.request, pagename, rev=rev)
else:
page = Page(self.request, pagename)
# Non existing page?
if not page.exists():
return self.noSuchPageFault()
# Render page into a buffer
result = self.request.redirectedOutput(page.send_page, content_only=1)
# Return rendered page
if self.version == 2:
return self._outstr(result)
elif self.version == 1:
return xmlrpclib.Binary(result)
示例13: _load_group
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def _load_group(self):
request = self.request
group_name = self.name
page = Page(request, group_name)
if page.exists():
arena = 'pagegroups'
key = wikiutil.quoteWikinameFS(group_name)
cache = caching.CacheEntry(request, arena, key, scope='wiki', use_pickle=True)
try:
cache_mtime = cache.mtime()
page_mtime = wikiutil.version2timestamp(page.mtime_usecs())
# TODO: fix up-to-date check mtime granularity problems.
#
# cache_mtime is float while page_mtime is integer
# The comparision needs to be done on the lowest type of both
if int(cache_mtime) > int(page_mtime):
# cache is uptodate
return cache.content()
else:
raise caching.CacheError
except caching.CacheError:
# either cache does not exist, is erroneous or not uptodate: recreate it
members, member_groups = super(WikiGroup, self)._load_group()
cache.update((members, member_groups))
return members, member_groups
else:
raise GroupDoesNotExistError(group_name)
示例14: __init__
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
class PackagePages:
def __init__(self, pagename, request):
self.request = request
self.pagename = pagename
self.page = Page(request, pagename)
def allowed(self):
""" Check if user is allowed to do this. """
return not self.__class__.__name__ in self.request.cfg.actions_excluded
def render(self):
""" Render action
This action returns a wiki page with optional message, or
redirects to new page.
"""
_ = self.request.getText
if 'cancel' in self.request.values:
# User canceled
return self.page.send_page()
try:
if not self.allowed():
self.request.theme.add_msg(_('You are not allowed to edit this page.'), "error")
raise ActionError
elif not self.page.exists():
self.request.theme.add_msg(_('This page is already deleted or was never created!'))
raise ActionError
self.package()
except ActionError, e:
return self.page.send_page()
示例15: find_by_re
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import exists [as 别名]
def find_by_re (request, formatter, re_exp, rpl_text, search):
ret = []
if not hasattr(request, "_Include_backto"):
request._Include_backto = formatter.page.page_name
if search == None:
pages = getPageListFromLog(request)
ret.append('Results from recent-log(%d pages):' % len(pages))
else:
pages = getPageListFromSearch(request,search)
ret.append('Results from searching by __%s__(%d pages):' % (search, len(pages)))
task_re = re.compile(re_exp, re.UNICODE|re.DOTALL)
for pagename in pages:
if pagename == formatter.page.page_name: continue
page = Page(request, pagename)
if not page.exists(): continue
ret.append(findtext_by_re(request, task_re, re_exp, rpl_text, page))
return wikiutil.renderText(request, WikiParser, '\n'.join(ret))#wikiutil.escape('\n'.join(ret)))