X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=geekigeeki.py;h=5b26b553da7b344af20ce8d416693d95449f80de;hb=ebf4ddefb5f1eaf744c3919ad337b2ff43ff5e2c;hp=01027ee23b69b7da0a60f32c2925ab4f04dcfb1c;hpb=4d8eca8c234926b3770f3fc4d150128ad18cea87;p=geekigeeki.git
diff --git a/geekigeeki.py b/geekigeeki.py
index 01027ee..5b26b55 100755
--- a/geekigeeki.py
+++ b/geekigeeki.py
@@ -8,19 +8,13 @@
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
+# (at your option) any later version. You should have received a copy
+# of the GNU General Public License along with this program.
+# If not, see .
__version__ = '4.0-' + '$Id$'[4:11]
-from time import clock
+from time import clock, localtime, gmtime, strftime
start_time = clock()
title_done = False
@@ -42,6 +36,9 @@ def config_get(key, default=None):
def script_name():
return os.environ.get('SCRIPT_NAME', '')
+def script_path():
+ return os.path.split(os.environ.get('SCRIPT_FILENAME', ''))[0]
+
def query_string():
path_info = os.environ.get('PATH_INFO', '')
if len(path_info) and path_info[0] == '/':
@@ -108,7 +105,9 @@ def url_args(kvargs):
return ''
# Formatting stuff --------------------------------------------------
-def emit_header(mime_type="text/html"):
+def emit_header(mtime=None, mime_type="text/html"):
+ if mtime:
+ print("Last-Modified: " + strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime(mtime)))
print("Content-type: " + mime_type + "; charset=utf-8\n")
def send_guru(msg_text, msg_type):
@@ -122,12 +121,12 @@ def send_guru(msg_text, msg_type):
print('' \
% relative_url('sys/GuruMeditation.js'))
-def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=False):
+def send_title(name, text="Limbo", msg_text=None, msg_type='error', writable=False, mtime=None):
global title_done
if title_done: return
# Head
- emit_header()
+ emit_header(mtime)
print('')
print('')
@@ -231,7 +230,8 @@ def link_inline(name, descr=None, kvargs={}):
elif image_re.match(name):
return '' % (url, url + url_args(kvargs), descr)
elif file_re.match(name) and not ext_re.search(name): # FIXME: this guesses a wiki page
- return Page(name).send_naked(kvargs)
+ Page(name).send_naked(kvargs) # FIXME: we should return the page as a string rather than print it
+ return ''
else:
return '' \
% (url, url, name)
@@ -342,12 +342,14 @@ def page_list(dirname=None, search_re=None):
search_re = re.compile(r"^\b((([A-Z][a-z0-9]+){2,}/)*([A-Z][a-z0-9]+){2,})\b$")
return sorted(filter(search_re.match, os.listdir(dirname or '.')))
-def send_footer(mod_string=None):
+def send_footer(mtime=None):
if config_get('debug_cgi', False):
cgi.print_arguments()
cgi.print_form(form)
cgi.print_environ()
- link_inline("sys/footer", kvargs = { 'LAST_MODIFIED': mod_string })
+ link_inline("sys/footer", kvargs = {
+ 'LAST_MODIFIED': strftime(config_get('datetime_fmt', '%a %d %b %Y %I:%M %p'), localtime(mtime))
+ })
print("