X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=geekigeeki.py;h=1221e701f7f1437d09cc64913287da0ebf90b9cb;hb=cea14c59bb3e7f4fc6cdb434026a9fcf909ccf3c;hp=64333eaf0605d79abdc674eb9a5042fed05e5050;hpb=8b1c9ab129dd6bb01fb0675e146394e7ca547f43;p=geekigeeki.git diff --git a/geekigeeki.py b/geekigeeki.py index 64333ea..1221e70 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 """ @@ -126,6 +126,10 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal if not name: print ' ' + for meta in meta_urls: + http_equiv, content = meta + print ' ' % (http_equiv, relative_url(content)) + for link in link_urls: rel, href = link print ' ' % (rel, relative_url(href)) @@ -179,6 +183,11 @@ def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=Fal 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: - pg.save(form['file'].file.read()) + pg.save(form['file'].file.read(), form['changelog'].value) else: - pg.save(form['savetext'].value.replace('\r\n', '\n')) + pg.save(form['savetext'].value.replace('\r\n', '\n'), form['changelog'].value) pg.format() elif 'cancel' in form: pg.msg_text = 'Editing canceled' @@ -353,7 +370,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) @@ -498,7 +519,7 @@ class WikiFormatter: + r"|(?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 '' @@ -694,18 +715,25 @@ class Page: + ' for ' + cgi.escape(remote_user()) + ' from ' + cgi.escape(get_hostname(remote_host())) + '
') - print ' + + """ print "" + Page('EditingTips').link_to() + "
" if preview: print "