From: Oleg Broytman Date: Tue, 20 May 2014 02:43:11 +0000 (+0400) Subject: Move http/html-related code to html subdirectory X-Git-Tag: v0.1~25 X-Git-Url: https://git.phdru.name/?p=phdru.name%2Fcgi-bin%2Fblog-ru%2Fsearch-tags.git;a=commitdiff_plain;h=77e57afc4d35c03e681ccc01b4fbfdabbf2e52f6 Move http/html-related code to html subdirectory --- diff --git a/.gitignore b/.gitignore index 5a2bcec..6014b7a 100644 --- a/.gitignore +++ b/.gitignore @@ -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 index 0000000..c424d5e --- /dev/null +++ b/html/.gitignore @@ -0,0 +1 @@ +/search_tags.py diff --git a/html/HTTPResponse.py b/html/HTTPResponse.py new file mode 100644 index 0000000..4356a8c --- /dev/null +++ b/html/HTTPResponse.py @@ -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)) diff --git a/Makefile b/html/Makefile similarity index 82% rename from Makefile rename to html/Makefile index d802c5a..63b6cca 100644 --- a/Makefile +++ b/html/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 index 0000000..13205b4 --- /dev/null +++ b/html/Redirect.py @@ -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 index 0000000..3dfb594 --- /dev/null +++ b/html/__init__.py @@ -0,0 +1 @@ +# This is a submodule diff --git a/html/html.py b/html/html.py new file mode 100644 index 0000000..72610c5 --- /dev/null +++ b/html/html.py @@ -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''' + + + + +''') + _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''' + + + + + + + + + + + + +''') + _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''' + +''') + + ######################################## + ## 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() + + diff --git a/search_tags.tmpl b/html/html.tmpl similarity index 95% rename from search_tags.tmpl rename to html/html.tmpl index 3fbefaf..175743c 100644 --- a/search_tags.tmpl +++ b/html/html.tmpl @@ -1,4 +1,5 @@ #encoding koi8-r +#extends HTTPResponse #implements respond @@ -6,7 +7,7 @@ -$Title +$title diff --git a/html/redirect.py b/html/redirect.py new file mode 100644 index 0000000..c569654 --- /dev/null +++ b/html/redirect.py @@ -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'''

Moved

+ +

The document has been moved here.

+''') + + ######################################## + ## 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 index 0000000..02f3f37 --- /dev/null +++ b/html/redirect.tmpl @@ -0,0 +1,5 @@ +#extends Redirect +#implements respond +

Moved

+ +

The document has been moved here.

diff --git a/html/response.py b/html/response.py new file mode 100644 index 0000000..cee9891 --- /dev/null +++ b/html/response.py @@ -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 dacee5a..760c3e3 100755 --- 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