X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=geekigeeki.py;h=2e2ef72160395e00d6ea40566c882ecf1d2762fd;hb=85ba845f0699aa34899e871527ae461f591f77d9;hp=794350389c8def020777bfe47efa8733a001a0f4;hpb=09b5f67a8739349f30bbeff13aeb475131850244;p=geekigeeki.git diff --git a/geekigeeki.py b/geekigeeki.py index 7943503..2e2ef72 100755 --- a/geekigeeki.py +++ b/geekigeeki.py @@ -85,7 +85,7 @@ def send_guru(msg_text, msg_type): 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 '' # FIXME: This little JS snippet is harder to pass than ACID 3.0 print """ @@ -179,6 +179,11 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal print '
' +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 @@ -240,9 +245,17 @@ def print_search_stats(hits, searched): print "

%d hits out of %d pages searched.

" % (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: @@ -353,7 +366,11 @@ class WikiFormatter: 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) @@ -694,19 +711,25 @@ class Page: + ' for ' + cgi.escape(remote_user()) + ' from ' + cgi.escape(get_hostname(remote_host())) + '

') - print '
' % relative_url(self.page_name) + print '
' % relative_url(self.page_name) print '' % (self.page_name) - print '' % (preview or self.get_raw_body()) - print 'Or upload a file: ' % file + print '
' % (self.page_name) + print '' % cgi.escape(preview or self.get_raw_body()) + print ' ' % file print """
- - + + -
""" - print "Changelog: " % self.page_name - print"
" +
+
+ + """ print "

" + Page('EditingTips').link_to() + "

" if preview: print "
" @@ -805,9 +828,7 @@ try: 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()