print ' Software Failure. Press left mouse button to continue.\n'
print msg_text
if msg_type == 'error':
- print ' Guru Meditation #DEADBEEF.ABADC0DE'
+ print '\n Guru Meditation #DEADBEEF.ABADC0DE'
print '</pre>'
# FIXME: This little JS snippet is harder to pass than ACID 3.0
print """
if not name:
print ' <meta name="robots" content="noindex,nofollow" />'
+ for meta in meta_urls:
+ http_equiv, content = meta
+ print ' <meta http-equiv="%s" content="%s" />' % (http_equiv, relative_url(content))
+
for link in link_urls:
rel, href = link
print ' <link rel="%s" href="%s" />' % (rel, relative_url(href))
print '<hr /></div>'
+def send_httperror(status="403 Not Found", query=""):
+ print "Status: %s" % status
+ send_title(None, msg_text=("%s: on query '%s'" % (status, query)))
+ send_footer(None)
+
def link_tag(params, text=None, ss_class=None, privileged=False):
if text is None:
text = params # default
print "<p>%d hits out of %d pages searched.</p>" % (hits, searched)
def handle_raw(pagename):
+ if not file_re.match(pagename):
+ send_httperror("403 Forbidden", pagename)
+ return
+
Page(pagename).send_raw()
def handle_edit(pagename):
+ if not file_re.match(pagename):
+ send_httperror("403 Forbidden", pagename)
+ return
+
pg = Page(pagename)
if 'save' in form:
if form['file'].value:
macro = globals().get('_macro_' + name)
if not macro:
- execfile("macros/" + name + ".py", globals())
+ try:
+ execfile("macros/" + name + ".py", globals())
+ except IOError, er:
+ if er.errno == errno.ENOENT:
+ pass
macro = globals().get('_macro_' + name)
if macro:
return macro(argv)
+ r"|(?P<hurl>\[\[([^\s\|]+)(?:\s*\|\s*([^\]]+)|)\]\])"
# Inline HTML
- + r"|(?P<html><(/|)(br|hr|div|form|iframe|input|span))"
+ + r"|(?P<html><(/|)(br|hr|div|span|form|iframe|input|textarea|a|img|h[1-5])[^>]*>)"
+ r"|(?P<ent>[<>&])"
# Auto links (LEGACY)
print '</p><p>'
else:
indent = indent_re.match(self.line)
- print self._indent_to(len(indent.group(0)))
+ print self._indent_to(len(indent.group(0))) ,
print re.sub(scan_re, self.replace, self.line)
if self.in_pre: print '</pre>'
print '<div class="editor"><form name="editform" method="post" enctype="multipart/form-data" action="%s">' % relative_url(self.page_name)
print '<input type="hidden" name="edit" value="%s">' % (self.page_name)
print '<input type="input" id="editor" name="changelog" value="Edit page %s" accesskey="c" /><br />' % (self.page_name)
- print '<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e">%s</textarea>' % (preview or self.get_raw_body())
+ print '<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e">%s</textarea>' % cgi.escape(preview or self.get_raw_body())
print '<label for="file" accesskey="u">Or Upload a file:</label> <input type="file" name="file" value="%s" />' % file
print """
<br />
else:
Page(query).format()
else:
- print "Status: 404 Not Found"
- send_title(None, msg_text='Can\'t work out query: ' + query)
- send_footer(None)
+ send_httperror("403 Forbidden", query)
except Exception:
import traceback
msg_text = traceback.format_exc()