X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=geekigeeki.py;h=1e2b065d05705ba8851177338d651429809590a4;hb=adf0fd62361a085ac014efa4985647864a46f603;hp=8de46ab91cbf4d2b14e4ce25753a0848545c311c;hpb=fbc4d6639e75dd726fdcadc1129ae0900468e9d2;p=geekigeeki.git diff --git a/geekigeeki.py b/geekigeeki.py index 8de46ab..1e2b065 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 '
' +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,15 +249,23 @@ 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: - 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' @@ -265,17 +282,20 @@ def make_index_key(): return '

'+ ' | '.join(links) + '

' def page_list(dir = None, re = word_re): - return filter(re.match, os.listdir(dir or data_dir)) + return sorted(filter(re.match, os.listdir(dir or data_dir))) def send_footer(name, mod_string=None): if globals().get('debug_cgi', False): cgi.print_arguments() cgi.print_form(form) cgi.print_environ() - print '