]> git.phdru.name Git - phdru.name/cgi-bin/blog-ru/search-tags.git/commitdiff
Move http/html-related code to html subdirectory
authorOleg Broytman <phd@phdru.name>
Tue, 20 May 2014 02:43:11 +0000 (06:43 +0400)
committerOleg Broytman <phd@phdru.name>
Tue, 20 May 2014 04:31:56 +0000 (08:31 +0400)
12 files changed:
.gitignore
html/.gitignore [new file with mode: 0644]
html/HTTPResponse.py [new file with mode: 0644]
html/Makefile [moved from Makefile with 82% similarity]
html/Redirect.py [new file with mode: 0644]
html/__init__.py [new file with mode: 0644]
html/html.py [new file with mode: 0644]
html/html.tmpl [moved from search_tags.tmpl with 95% similarity]
html/redirect.py [new file with mode: 0644]
html/redirect.tmpl [new file with mode: 0644]
html/response.py [new file with mode: 0644]
update

index 5a2bcec80db0e2b13938187b59521837d64a6bd2..6014b7aadccbc172a20d90da6fb52b562396ea36 100644 (file)
@@ -1,4 +1,3 @@
-/*.py[co]
+*.py[co]
 /parser.out
 /parsetab.py
-/search_tags.py
diff --git a/html/.gitignore b/html/.gitignore
new file mode 100644 (file)
index 0000000..c424d5e
--- /dev/null
@@ -0,0 +1 @@
+/search_tags.py
diff --git a/html/HTTPResponse.py b/html/HTTPResponse.py
new file mode 100644 (file)
index 0000000..4356a8c
--- /dev/null
@@ -0,0 +1,10 @@
+
+from Cheetah.Tools.CGITemplate import CGITemplate
+
+class HTTPResponse(CGITemplate):
+   def cgiHeadersHook(self):
+      return """\
+Content-Type: text/html; charset=koi8-r
+Content-Length: %d
+
+""" % len(str(self))
similarity index 82%
rename from Makefile
rename to html/Makefile
index d802c5af8ab2434dd0271babb8d87691628adb8f..63b6ccaadae9adb22ce262e4fb33df969d7bbe7e 100644 (file)
--- a/Makefile
@@ -6,4 +6,5 @@
 %.py: %.tmpl
        cheetah compile --nobackup $< && compyle $@
 
-search_tags.py: search_tags.tmpl
+.PHONY: all
+all: html.py redirect.py
diff --git a/html/Redirect.py b/html/Redirect.py
new file mode 100644 (file)
index 0000000..13205b4
--- /dev/null
@@ -0,0 +1,10 @@
+
+from Cheetah.Tools.CGITemplate import CGITemplate
+
+class Redirect(CGITemplate):
+   def cgiHeadersHook(self):
+      return """\
+Content-Type: text/html
+Location: %s
+
+""" % self.url
diff --git a/html/__init__.py b/html/__init__.py
new file mode 100644 (file)
index 0000000..3dfb594
--- /dev/null
@@ -0,0 +1 @@
+# This is a submodule
diff --git a/html/html.py b/html/html.py
new file mode 100644 (file)
index 0000000..72610c5
--- /dev/null
@@ -0,0 +1,159 @@
+#!/usr/bin/env python
+# -*- coding: koi8-r -*-
+
+
+
+
+##################################################
+## DEPENDENCIES
+import sys
+import os
+import os.path
+try:
+    import builtins as builtin
+except ImportError:
+    import __builtin__ as builtin
+from os.path import getmtime, exists
+import time
+import types
+from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
+from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
+from Cheetah.Template import Template
+from Cheetah.DummyTransaction import *
+from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
+from Cheetah.CacheRegion import CacheRegion
+import Cheetah.Filters as Filters
+import Cheetah.ErrorCatchers as ErrorCatchers
+from HTTPResponse import HTTPResponse
+
+##################################################
+## MODULE CONSTANTS
+VFFSL=valueFromFrameOrSearchList
+VFSL=valueFromSearchList
+VFN=valueForName
+currentTime=time.time
+__CHEETAH_version__ = '2.4.4'
+__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 1)
+__CHEETAH_genTime__ = 1400553119.801587
+__CHEETAH_genTimestamp__ = 'Tue May 20 06:31:59 2014'
+__CHEETAH_src__ = 'html.tmpl'
+__CHEETAH_srcLastModified__ = 'Tue May 20 06:31:57 2014'
+__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
+
+if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
+    raise AssertionError(
+      'This template was compiled with Cheetah version'
+      ' %s. Templates compiled before version %s must be recompiled.'%(
+         __CHEETAH_version__, RequiredCheetahVersion))
+
+##################################################
+## CLASSES
+
+class html(HTTPResponse):
+
+    ##################################################
+    ## CHEETAH GENERATED METHODS
+
+
+    def __init__(self, *args, **KWs):
+
+        super(html, self).__init__(*args, **KWs)
+        if not self._CHEETAH__instanceInitialized:
+            cheetahKWArgs = {}
+            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
+            for k,v in KWs.items():
+                if k in allowedKWs: cheetahKWArgs[k] = v
+            self._initCheetahInstance(**cheetahKWArgs)
+        
+
+    def respond(self, trans=None):
+
+
+
+        ## CHEETAH: main method generated for this template
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        write(u'''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+   "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED USING CheetahTemplate. -->
+<head>
+<meta HTTP-Equiv="Content-Type" content="text/html">
+<title>''')
+        _v = VFFSL(SL,"title",True) # u'$title' on line 10, col 8
+        if _v is not None: write(_filter(_v, rawExpr=u'$title')) # from line 10, col 8.
+        write(u'''</title>
+<meta name="author" content="Oleg Broytman">
+<link rel="author" href="../../Russian/blog/" title="&copy; 2014 PhiloSoft Design">
+<meta name="copyright" content="&copy; 2014 PhiloSoft Design">
+<link rel="copyright" href="../../Russian/blog/" title="&copy; 2014 PhiloSoft Design">
+<link rev="made" href="mailto:phd@phdru.name">
+<meta name="generator" content="CheetahTemplate">
+<meta name="robots" content="index, follow">
+<link rel="stylesheet" type="text/css" media="screen" href="../../phd.css">
+<link rel="shortcut icon" href="../../favicon.ico">
+<meta name="MSSmartTagsPreventParsing" content="TRUE"> <!-- MUST DIE -->
+</head>
+<body bgcolor="#CCCCCC" text="#000000"
+      link="#0000bb"  vlink="#551a8b" alink="#ff0000">
+''')
+        _v = VFFSL(SL,"body",True) # u'$body' on line 24, col 1
+        if _v is not None: write(_filter(_v, rawExpr=u'$body')) # from line 24, col 1.
+        write(u'''
+</body>
+</html>''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+    ##################################################
+    ## CHEETAH GENERATED ATTRIBUTES
+
+
+    _CHEETAH__instanceInitialized = False
+
+    _CHEETAH_version = __CHEETAH_version__
+
+    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
+
+    _CHEETAH_genTime = __CHEETAH_genTime__
+
+    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
+
+    _CHEETAH_src = __CHEETAH_src__
+
+    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
+
+    _mainCheetahMethod_for_html= u'respond'
+
+## END CLASS DEFINITION
+
+if not hasattr(html, '_initCheetahAttributes'):
+    templateAPIClass = getattr(html, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(html)
+
+
+# CHEETAH was developed by Tavis Rudd and Mike Orr
+# with code, advice and input from many other volunteers.
+# For more information visit http://www.CheetahTemplate.org/
+
+##################################################
+## if run from command line:
+if __name__ == '__main__':
+    from Cheetah.TemplateCmdLineIface import CmdLineIface
+    CmdLineIface(templateObj=html()).run()
+
+
similarity index 95%
rename from search_tags.tmpl
rename to html/html.tmpl
index 3fbefaf28cb0214cd5ec75249bf95a707df1882c..175743c3a944aa8ef3a42a08b39f96e16f1c6ce9 100644 (file)
@@ -1,4 +1,5 @@
 #encoding koi8-r
+#extends HTTPResponse
 #implements respond
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
@@ -6,7 +7,7 @@
 <!-- THIS PAGE IS AUTOMATICALLY GENERATED USING CheetahTemplate. -->
 <head>
 <meta HTTP-Equiv="Content-Type" content="text/html">
-<title>$Title</title>
+<title>$title</title>
 <meta name="author" content="Oleg Broytman">
 <link rel="author" href="../../Russian/blog/" title="&copy; 2014 PhiloSoft Design">
 <meta name="copyright" content="&copy; 2014 PhiloSoft Design">
diff --git a/html/redirect.py b/html/redirect.py
new file mode 100644 (file)
index 0000000..c569654
--- /dev/null
@@ -0,0 +1,136 @@
+#!/usr/bin/env python
+
+
+
+
+##################################################
+## DEPENDENCIES
+import sys
+import os
+import os.path
+try:
+    import builtins as builtin
+except ImportError:
+    import __builtin__ as builtin
+from os.path import getmtime, exists
+import time
+import types
+from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
+from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
+from Cheetah.Template import Template
+from Cheetah.DummyTransaction import *
+from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
+from Cheetah.CacheRegion import CacheRegion
+import Cheetah.Filters as Filters
+import Cheetah.ErrorCatchers as ErrorCatchers
+from Redirect import Redirect
+
+##################################################
+## MODULE CONSTANTS
+VFFSL=valueFromFrameOrSearchList
+VFSL=valueFromSearchList
+VFN=valueForName
+currentTime=time.time
+__CHEETAH_version__ = '2.4.4'
+__CHEETAH_versionTuple__ = (2, 4, 4, 'development', 1)
+__CHEETAH_genTime__ = 1400552323.307355
+__CHEETAH_genTimestamp__ = 'Tue May 20 06:18:43 2014'
+__CHEETAH_src__ = 'redirect.tmpl'
+__CHEETAH_srcLastModified__ = 'Thu Feb  3 17:59:20 2005'
+__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
+
+if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
+    raise AssertionError(
+      'This template was compiled with Cheetah version'
+      ' %s. Templates compiled before version %s must be recompiled.'%(
+         __CHEETAH_version__, RequiredCheetahVersion))
+
+##################################################
+## CLASSES
+
+class redirect(Redirect):
+
+    ##################################################
+    ## CHEETAH GENERATED METHODS
+
+
+    def __init__(self, *args, **KWs):
+
+        super(redirect, self).__init__(*args, **KWs)
+        if not self._CHEETAH__instanceInitialized:
+            cheetahKWArgs = {}
+            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
+            for k,v in KWs.items():
+                if k in allowedKWs: cheetahKWArgs[k] = v
+            self._initCheetahInstance(**cheetahKWArgs)
+        
+
+    def respond(self, trans=None):
+
+
+
+        ## CHEETAH: main method generated for this template
+        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
+            trans = self.transaction # is None unless self.awake() was called
+        if not trans:
+            trans = DummyTransaction()
+            _dummyTrans = True
+        else: _dummyTrans = False
+        write = trans.response().write
+        SL = self._CHEETAH__searchList
+        _filter = self._CHEETAH__currentFilter
+        
+        ########################################
+        ## START - generated method body
+        
+        write(u'''<H1>Moved</H1>
+
+<p>The document has been moved <a href="''')
+        _v = VFFSL(SL,"url",True) # u'$url' on line 5, col 41
+        if _v is not None: write(_filter(_v, rawExpr=u'$url')) # from line 5, col 41.
+        write(u'''">here</a>.</p>
+''')
+        
+        ########################################
+        ## END - generated method body
+        
+        return _dummyTrans and trans.response().getvalue() or ""
+        
+    ##################################################
+    ## CHEETAH GENERATED ATTRIBUTES
+
+
+    _CHEETAH__instanceInitialized = False
+
+    _CHEETAH_version = __CHEETAH_version__
+
+    _CHEETAH_versionTuple = __CHEETAH_versionTuple__
+
+    _CHEETAH_genTime = __CHEETAH_genTime__
+
+    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
+
+    _CHEETAH_src = __CHEETAH_src__
+
+    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
+
+    _mainCheetahMethod_for_redirect= u'respond'
+
+## END CLASS DEFINITION
+
+if not hasattr(redirect, '_initCheetahAttributes'):
+    templateAPIClass = getattr(redirect, '_CHEETAH_templateClass', Template)
+    templateAPIClass._addCheetahPlumbingCodeToClass(redirect)
+
+
+# CHEETAH was developed by Tavis Rudd and Mike Orr
+# with code, advice and input from many other volunteers.
+# For more information visit http://www.CheetahTemplate.org/
+
+##################################################
+## if run from command line:
+if __name__ == '__main__':
+    from Cheetah.TemplateCmdLineIface import CmdLineIface
+    CmdLineIface(templateObj=redirect()).run()
+
+
diff --git a/html/redirect.tmpl b/html/redirect.tmpl
new file mode 100644 (file)
index 0000000..02f3f37
--- /dev/null
@@ -0,0 +1,5 @@
+#extends Redirect
+#implements respond
+<H1>Moved</H1>
+
+<p>The document has been moved <a href="$url">here</a>.</p>
diff --git a/html/response.py b/html/response.py
new file mode 100644 (file)
index 0000000..cee9891
--- /dev/null
@@ -0,0 +1,27 @@
+
+import sys
+
+def response(title, body, status=None):
+   from .html import html
+   result = html()
+
+   result.title = title
+   result.body = body
+
+   if status:
+       print "Status:", status
+   sys.stdout.write(str(result.cgiHeaders()))
+   sys.stdout.write(str(result))
+
+def redirect(url, parameters=None, status=None):
+   import urllib
+   from .redirect import redirect
+   result = redirect()
+   if parameters:
+      result.url = url + '?' + urllib.urlencode(parameters)
+   else:
+      result.url = url
+   if status:
+       print "Status:", status
+   sys.stdout.write(str(result.cgiHeaders()))
+   sys.stdout.write(str(result))
diff --git a/update b/update
index dacee5a55eac1f846ed68a1d414935684749da59..760c3e391f14df5d7afbd62ec5e3fd3affcf201d 100755 (executable)
--- a/update
+++ b/update
@@ -21,6 +21,7 @@ web="`git config --get --path remote.web.url`" &&
 [ -n "$web" ] && git push web
 
 # Copy search_tags.* with timestamp to avoid rebuilding
-rsync -ahP "$current"/search_tags.py "$current"/search_tags.tmpl . &&
+rsync -ahP "$current"/html/html.py "$current"/html/html.tmpl \
+           "$current"/html/redirect.py "$current"/html/redirect.tmpl html &&
 
 cd "$current" && exec git pull origin