Only enable webinterface if CherryPy is available. Fix buttons on the web

master
unknown 2012-06-04 13:44:49 -05:00
parent 6f04dc681c
commit 4158bc63ca
4 changed files with 351 additions and 36 deletions

Binary file not shown.

View File

@ -0,0 +1,231 @@
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\cherryd
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\favicon.ico
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\LICENSE.txt
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpchecker.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpchecker.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpcompat.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpcompat.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpconfig.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpconfig.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpdispatch.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpdispatch.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cperror.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cperror.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cplogging.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cplogging.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpmodpy.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpmodpy.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpnative_server.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpnative_server.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpreqbody.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpreqbody.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cprequest.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cprequest.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpserver.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpserver.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpthreadinglocal.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpthreadinglocal.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cptools.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cptools.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cptree.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cptree.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpwsgi.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpwsgi.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpwsgi_server.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\_cpwsgi_server.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\auth.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\auth.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\auth_basic.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\auth_basic.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\auth_digest.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\auth_digest.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\caching.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\caching.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\covercp.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\covercp.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\cpstats.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\cpstats.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\cptools.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\cptools.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\encoding.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\encoding.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\gctools.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\gctools.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\http.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\http.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\httpauth.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\httpauth.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\httputil.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\httputil.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\jsontools.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\jsontools.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\profiler.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\profiler.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\reprconf.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\reprconf.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\sessions.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\sessions.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\static.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\static.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\xmlrpcutil.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\xmlrpcutil.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\lib\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\plugins.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\plugins.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\servers.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\servers.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\win32.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\win32.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\wspbus.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\wspbus.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\process\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\scaffold\example.conf
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\scaffold\site.conf
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\scaffold\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\scaffold\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\scaffold\static\made_with_cherrypy_small.png
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\benchmark.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\benchmark.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\checkerdemo.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\checkerdemo.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\helper.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\helper.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\logtest.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\logtest.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modfastcgi.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modfastcgi.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modfcgid.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modfcgid.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modpy.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modpy.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modwsgi.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\modwsgi.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\sessiondemo.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\sessiondemo.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\style.css
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test.pem
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_auth_basic.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_auth_basic.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_auth_digest.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_auth_digest.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_bus.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_bus.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_caching.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_caching.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_config.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_config.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_config_server.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_config_server.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_conn.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_conn.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_core.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_core.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_dynamicobjectmapping.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_dynamicobjectmapping.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_encoding.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_encoding.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_etags.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_etags.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_http.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_http.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_httpauth.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_httpauth.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_httplib.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_httplib.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_json.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_json.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_logging.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_logging.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_mime.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_mime.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_misc_tools.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_misc_tools.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_objectmapping.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_objectmapping.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_proxy.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_proxy.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_refleaks.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_refleaks.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_request_obj.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_request_obj.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_routes.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_routes.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_session.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_session.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_sessionauthenticate.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_sessionauthenticate.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_states.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_states.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_static.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_static.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_tools.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_tools.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_tutorials.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_tutorials.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_virtualhost.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_virtualhost.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_wsgiapps.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_wsgiapps.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_wsgi_ns.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_wsgi_ns.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_wsgi_vhost.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_wsgi_vhost.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_xmlrpc.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\test_xmlrpc.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\webtest.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\webtest.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\_test_decorators.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\_test_decorators.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\_test_states_demo.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\_test_states_demo.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\static\dirback.jpg
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\test\static\index.html
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\bonus-sqlobject.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\bonus-sqlobject.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\custom_error.html
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\pdf_file.pdf
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\README.txt
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut01_helloworld.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut01_helloworld.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut02_expose_methods.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut02_expose_methods.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut03_get_and_post.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut03_get_and_post.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut04_complex_site.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut04_complex_site.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut05_derived_objects.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut05_derived_objects.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut06_default_method.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut06_default_method.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut07_sessions.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut07_sessions.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut08_generators_and_yield.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut08_generators_and_yield.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut09_files.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut09_files.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut10_http_errors.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tut10_http_errors.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\tutorial.conf
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\tutorial\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\ssl_builtin.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\ssl_builtin.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\ssl_pyopenssl.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\ssl_pyopenssl.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\wsgiserver2.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\wsgiserver2.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\__init__.py
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\cherrypy\wsgiserver\__init__.pyc
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\EGG-INFO\dependency_links.txt
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\EGG-INFO\not-zip-safe
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\EGG-INFO\PKG-INFO
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\EGG-INFO\SOURCES.txt
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\EGG-INFO\top_level.txt
c:\python27\lib\site-packages\CherryPy-3.2.2-py2.7.egg\EGG-INFO\scripts\cherryd
c:\Python27\Scripts\cherryd

View File

@ -46,14 +46,20 @@ if os.name=="nt":
pass pass
from xybuttons import XYButtons from xybuttons import XYButtons
from zbuttons import ZButtons from zbuttons import ZButtons
from graph import Graph from graph import Graph
import pronsole import pronsole
import cherrypy, webinterface webavail = True
from threading import Thread try :
import cherrypy, webinterface
from threading import Thread
except:
print _("CherryPy is not installed. Web Interface Disabled.")
webavail = False
def dosify(name): def dosify(name):
return os.path.split(name)[1].split(".")[0][:8]+".g" return os.path.split(name)[1].split(".")[0][:8]+".g"
@ -156,9 +162,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.cur_button=None self.cur_button=None
self.hsetpoint=0.0 self.hsetpoint=0.0
self.bsetpoint=0.0 self.bsetpoint=0.0
self.webInterface=webinterface.WebInterface(self) if webavail:
self.webThread = Thread(target=webinterface.StartWebInterfaceThread, args=(self.webInterface, )) self.webInterface=webinterface.WebInterface(self)
self.webThread.start() self.webThread = Thread(target=webinterface.StartWebInterfaceThread, args=(self.webInterface, ))
self.webThread.start()
def startcb(self): def startcb(self):
self.starttime=time.time() self.starttime=time.time()
@ -281,7 +288,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
else: else:
print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.") print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.")
except Exception,x: except Exception,x:
print _("You must enter a temperature. (%s)" % (repr(x),)); self.webInterface.AddLog("You must enter a temperature. (%s)" % (repr(x),)) print _("You must enter a temperature. (%s)" % (repr(x),));
if webavail:
self.webInterface.AddLog("You must enter a temperature. (%s)" % (repr(x),))
def do_bedtemp(self,l=""): def do_bedtemp(self,l=""):
try: try:
@ -314,11 +323,17 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
wx.CallAfter(self.btemp.SetBackgroundColour,"white") wx.CallAfter(self.btemp.SetBackgroundColour,"white")
wx.CallAfter(self.btemp.Refresh) wx.CallAfter(self.btemp.Refresh)
else: else:
print _("Printer is not online."); self.webInterface.AddLog("Printer is not online.") print _("Printer is not online.");
if webavail:
self.webInterface.AddLog("Printer is not online.")
else: else:
print _("You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0."); self.webInterface.AddLog("You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0.") print _("You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0.");
if webavail:
self.webInterface.AddLog("You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0.")
except: except:
print _("You must enter a temperature."); self.webInterface.AddLog("You must enter a temperature.") print _("You must enter a temperature.");
if webavail:
self.webInterface.AddLog("You must enter a temperature.")
def end_macro(self): def end_macro(self):
pronsole.pronsole.end_macro(self) pronsole.pronsole.end_macro(self)
@ -337,7 +352,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if dialog.ShowModal()==wx.ID_YES: if dialog.ShowModal()==wx.ID_YES:
self.delete_macro(macro_name) self.delete_macro(macro_name)
return return
print _("Cancelled."); self.webInterface.AddLog("Cancelled.") print _("Cancelled.");
if webavail:
self.webInterface.AddLog("Cancelled.")
return return
self.cur_macro_name = macro_name self.cur_macro_name = macro_name
self.cur_macro_def = definition self.cur_macro_def = definition
@ -356,7 +373,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.capture_skip_newline = True self.capture_skip_newline = True
return return
wx.CallAfter(self.logbox.AppendText,l) wx.CallAfter(self.logbox.AppendText,l)
self.webInterface.AppendLog(l) if webavail:
self.webInterface.AppendLog(l)
def scanserial(self): def scanserial(self):
"""scan for available ports. return a list of device names.""" """scan for available ports. return a list of device names."""
@ -377,7 +395,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if(self.p.online): if(self.p.online):
projectlayer.setframe(self,self.p).Show() projectlayer.setframe(self,self.p).Show()
else: else:
print _("Printer is not online."); self.webInterface.AddLog("Printer is not online.") print _("Printer is not online.");
if webavail:
self.webInterface.AddLog("Printer is not online.")
def popmenu(self): def popmenu(self):
self.menustrip = wx.MenuBar() self.menustrip = wx.MenuBar()
@ -451,7 +471,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
print _("Name '%s' is being used by built-in command") % macro print _("Name '%s' is being used by built-in command") % macro
return return
elif len([c for c in macro if not c.isalnum() and c != "_"]): elif len([c for c in macro if not c.isalnum() and c != "_"]):
print _("Macro name may contain only alphanumeric symbols and underscores"); self.webInterface.AddLog("Macro name may contain only alphanumeric symbols and underscores") print _("Macro name may contain only alphanumeric symbols and underscores");
if webavail:
self.webInterface.AddLog("Macro name may contain only alphanumeric symbols and underscores")
return return
else: else:
old_def = "" old_def = ""
@ -867,7 +889,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.topsizer.Layout() self.topsizer.Layout()
def help_button(self): def help_button(self):
print _('Defines custom button. Usage: button <num> "title" [/c "colour"] command'); self.webInterface.AddLog('Defines custom button. Usage: button <num> "title" [/c "colour"] command') print _('Defines custom button. Usage: button <num> "title" [/c "colour"] command');
if webavail:
self.webInterface.AddLog('Defines custom button. Usage: button <num> "title" [/c "colour"] command')
def do_button(self,argstr): def do_button(self,argstr):
def nextarg(rest): def nextarg(rest):
@ -889,7 +913,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
pass pass
command=argstr.strip() command=argstr.strip()
if num<0 or num>=64: if num<0 or num>=64:
print _("Custom button number should be between 0 and 63"); self.webInterface.AddLog("Custom button number should be between 0 and 63") print _("Custom button number should be between 0 and 63");
if webavail:
self.webInterface.AddLog("Custom button number should be between 0 and 63")
return return
while num >= len(self.custombuttons): while num >= len(self.custombuttons):
self.custombuttons+=[None] self.custombuttons+=[None]
@ -1143,7 +1169,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.onecmd(e.GetEventObject().properties[1]) self.onecmd(e.GetEventObject().properties[1])
self.cur_button=None self.cur_button=None
except: except:
print _("event object missing"); self.webInterface.AddLog("event object missing") print _("event object missing");
if webavail:
self.webInterface.AddLog("event object missing")
self.cur_button=None self.cur_button=None
raise raise
@ -1160,7 +1188,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
except: except:
pass pass
self.Destroy() self.Destroy()
webinterface.KillWebInterfaceThread() if webavail:
webinterface.KillWebInterfaceThread()
def do_monitor(self,l=""): def do_monitor(self,l=""):
if l.strip()=="": if l.strip()=="":
@ -1172,12 +1201,18 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.monitor_interval=float(l) self.monitor_interval=float(l)
wx.CallAfter(self.monitorbox.SetValue,self.monitor_interval>0) wx.CallAfter(self.monitorbox.SetValue,self.monitor_interval>0)
except: except:
print _("Invalid period given."); self.webInterface.AddLog("Invalid period given.") print _("Invalid period given.");
if webavail:
self.webInterface.AddLog("Invalid period given.")
self.setmonitor(None) self.setmonitor(None)
if self.monitor: if self.monitor:
print _("Monitoring printer."); self.webInterface.AddLog("Monitoring printer.") print _("Monitoring printer.");
if webavail:
self.webInterface.AddLog("Monitoring printer.")
else: else:
print _("Done monitoring."); self.webInterface.AddLog("Done monitoring.") print _("Done monitoring.");
if webavail:
self.webInterface.AddLog("Done monitoring.")
def setmonitor(self,e): def setmonitor(self,e):
@ -1194,7 +1229,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if not len(command): if not len(command):
return return
wx.CallAfter(self.logbox.AppendText,">>>"+command+"\n") wx.CallAfter(self.logbox.AppendText,">>>"+command+"\n")
self.webInterface.AppendLog(">>>"+command+"\n") if webavail:
self.webInterface.AppendLog(">>>"+command+"\n")
self.onecmd(str(command)) self.onecmd(str(command))
self.commandbox.SetSelection(0,len(command)) self.commandbox.SetSelection(0,len(command))
@ -1356,7 +1392,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
try: try:
import shlex import shlex
param = self.expandcommand(self.settings.slicecommand).encode() param = self.expandcommand(self.settings.slicecommand).encode()
print "Slicing: ",param; self.webInterface.AddLog("Slicing: "+param) print "Slicing: ",param;
if webavail:
self.webInterface.AddLog("Slicing: "+param)
pararray=[i.replace("$s",self.filename).replace("$o",self.filename.replace(".stl","_export.gcode").replace(".STL","_export.gcode")).encode() for i in shlex.split(param.replace("\\","\\\\").encode())] pararray=[i.replace("$s",self.filename).replace("$o",self.filename.replace(".stl","_export.gcode").replace(".STL","_export.gcode")).encode() for i in shlex.split(param.replace("\\","\\\\").encode())]
#print pararray #print pararray
self.skeinp=subprocess.Popen(pararray,stderr=subprocess.STDOUT,stdout=subprocess.PIPE) self.skeinp=subprocess.Popen(pararray,stderr=subprocess.STDOUT,stdout=subprocess.PIPE)
@ -1367,7 +1405,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.skeinp.wait() self.skeinp.wait()
self.stopsf=1 self.stopsf=1
except: except:
print _("Failed to execute slicing software: "); self.webInterface.AddLog("Failed to execute slicing software: ") print _("Failed to execute slicing software: ");
if webavail:
self.webInterface.AddLog("Failed to execute slicing software: ")
self.stopsf=1 self.stopsf=1
traceback.print_exc(file=sys.stdout) traceback.print_exc(file=sys.stdout)
@ -1454,7 +1494,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
def loadviz(self): def loadviz(self):
Xtot,Ytot,Ztot,Xmin,Xmax,Ymin,Ymax,Zmin,Zmax = pronsole.measurements(self.f) Xtot,Ytot,Ztot,Xmin,Xmax,Ymin,Ymax,Zmin,Zmax = pronsole.measurements(self.f)
print pronsole.totalelength(self.f), _("mm of filament used in this print\n") print pronsole.totalelength(self.f), _("mm of filament used in this print\n")
print _("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot); self.webInterface.AddLog("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot) print _("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot);
if webavail:
self.webInterface.AddLog("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot)
print _("the print goes from %f mm to %f mm in Y\nand is %f mm wide\n") % (Ymin, Ymax, Ytot) print _("the print goes from %f mm to %f mm in Y\nand is %f mm wide\n") % (Ymin, Ymax, Ytot)
print _("the print goes from %f mm to %f mm in Z\nand is %f mm high\n") % (Zmin, Zmax, Ztot) print _("the print goes from %f mm to %f mm in Z\nand is %f mm high\n") % (Zmin, Zmax, Ztot)
print _("Estimated duration (pessimistic): "), pronsole.estimate_duration(self.f) print _("Estimated duration (pessimistic): "), pronsole.estimate_duration(self.f)
@ -1686,7 +1728,8 @@ class macroed(wx.Dialog):
self.callback(self.e.GetValue().split("\n")) self.callback(self.e.GetValue().split("\n"))
def close(self,ev): def close(self,ev):
self.Destroy() self.Destroy()
webinterface.KillWebInterfaceThread() if webavail:
webinterface.KillWebInterfaceThread()
def unindent(self,text): def unindent(self,text):
self.indent_chars = text[:len(text)-len(text.lstrip())] self.indent_chars = text[:len(text)-len(text.lstrip())]
if len(self.indent_chars)==0: if len(self.indent_chars)==0:

View File

@ -131,22 +131,37 @@ class MoveButton(object):
if(margs and axis == "x"): if(margs and axis == "x"):
distance = margs.pop(0) distance = margs.pop(0)
gPronterPtr.onecmd('move X %s' % distance) gPronterPtr.onecmd('move X %s' % distance)
return "Moving X Axis " + str(distance) return ReloadPage("Moving X Axis " + str(distance))
if(margs and axis == "y"): if(margs and axis == "y"):
distance = margs.pop(0) distance = margs.pop(0)
gPronterPtr.onecmd('move Y %s' % distance) gPronterPtr.onecmd('move Y %s' % distance)
return "Moving Y Axis " + str(distance) return ReloadPage("Moving Y Axis " + str(distance))
if(margs and axis == "z"): if(margs and axis == "z"):
distance = margs.pop(0) distance = margs.pop(0)
gPronterPtr.onecmd('move Z %s' % distance) gPronterPtr.onecmd('move Z %s' % distance)
return "Moving Z Axis " + str(distance) return ReloadPage("Moving Z Axis " + str(distance))
raise cherrypy.HTTPError(400, "Unmached Move Command!") raise cherrypy.HTTPError(400, "Unmached Move Command!")
axis.exposed = True axis.exposed = True
axis._cp_config = {'tools.basic_auth.on': True, axis._cp_config = {'tools.basic_auth.on': True,
'tools.basic_auth.realm': 'My Print Server', 'tools.basic_auth.realm': 'My Print Server',
'tools.basic_auth.users': users, 'tools.basic_auth.users': users,
'tools.basic_auth.encrypt': clear_text} 'tools.basic_auth.encrypt': clear_text}
class CustomButton(object):
def button(self, *args):
if not args:
raise cherrypy.HTTPError(400, "No Custom Command Provided!")
margs=list(args)
command = margs.pop(0)
if(command):
gPronterPtr.onecmd(command)
return ReloadPage(str(command))
button.exposed = True
button._cp_config = {'tools.basic_auth.on': True,
'tools.basic_auth.realm': 'My Print Server',
'tools.basic_auth.users': users,
'tools.basic_auth.encrypt': clear_text}
class HomeButton(object): class HomeButton(object):
def axis(self, *args): def axis(self, *args):
if not args: if not args:
@ -241,6 +256,7 @@ class WebInterface(object):
status = XMLstatus() status = XMLstatus()
home = HomeButton() home = HomeButton()
move = MoveButton() move = MoveButton()
custom =CustomButton()
def index(self): def index(self):
pageText=PrintHeader()+self.name+PrintMenu() pageText=PrintHeader()+self.name+PrintMenu()
@ -264,15 +280,40 @@ class WebInterface(object):
pageText+="<div id='control_xy'>" pageText+="<div id='control_xy'>"
pageText+="<img src='/images/control_xy.png' usemap='#xymap'/>" pageText+="<img src='/images/control_xy.png' usemap='#xymap'/>"
pageText+='<map name="xymap">' pageText+='<map name="xymap">'
pageText+='<area shape="rect" coords="0,0,44,44" href="/home/axis/x" alt="X Home" />'
pageText+='<area shape="rect" coords="200,44,244,0" href="/home/axis/y" alt="Y Home" />' pageText+='<area shape="rect" coords="8,5,51,48" href="/home/axis/x" alt="X Home" title="X Home" />'
pageText+='<area shape="rect" coords="195,195,244,244" href="/home/axis/z" alt="Z Home" />' pageText+='<area shape="rect" coords="195,6,236,46" href="/home/axis/y" alt="Y Home" title="Y Home" />'
pageText+='<area shape="rect" coords="0,244,44,196" href="/home/axis/all" alt="All Home" />' pageText+='<area shape="rect" coords="7,192,48,232" href="/home/axis/all" alt="All Home" title="All Home" />'
#TODO Map X, Y Moves pageText+='<area shape="rect" coords="194,192,235,232" href="/home/axis/z" alt="Z Home" title="Z Home" />'
pageText+='<area shape="rect" coords="62,7,185,34" href="/move/axis/y/100" alt="Y 100" title="Y 100" />'
pageText+='<area shape="rect" coords="68,34,175,61" href="/move/axis/y/10" alt="Y 10" title="Y 10" />'
pageText+='<area shape="rect" coords="80,60,163,84" href="/move/axis/y/1" alt="Y 1" title="Y 1" />'
pageText+='<area shape="rect" coords="106,83,138,107" href="/move/axis/y/.1" alt="Y .1" title="Y .1" />'
pageText+='<area shape="rect" coords="110,135,142,159" href="/move/axis/y/-.1" alt="Y -.1" title="Y -.1" />'
pageText+='<area shape="rect" coords="81,157,169,181" href="/move/axis/y/-1" alt="Y -1" title="Y -1" />'
pageText+='<area shape="rect" coords="69,180,178,206" href="/move/axis/y/-10" alt="Y -10" title="Y -10" />'
pageText+='<area shape="rect" coords="60,205,186,231" href="/move/axis/y/-100" alt="Y -100" title="Y -100" />'
pageText+='<area shape="rect" coords="11,53,37,179" href="/move/axis/x/-100" alt="X -100" title="X -100" />'
pageText+='<area shape="rect" coords="210,59,236,185" href="/move/axis/x/100" alt="X 100" title="X 100" />'
pageText+='<area shape="rect" coords="38,60,64,172" href="/move/axis/x/-10" alt="X -10" title="X -10" />'
pageText+='<area shape="rect" coords="185,66,211,178" href="/move/axis/x/10" alt="X 10" title="X 10" />'
pageText+='<area shape="rect" coords="62,84,83,157" href="/move/axis/x/-1" alt="X -1" title="X -1" />'
pageText+='<area shape="rect" coords="163,87,187,160" href="/move/axis/x/1" alt="X 1" title="X 1" />'
pageText+='<area shape="rect" coords="82,104,110,139" href="/move/axis/x/-.1" alt="X -.1" title="X -.1" />'
pageText+='<area shape="rect" coords="137,105,165,140" href="/move/axis/x/.1" alt="X .1" title="X .1" />'
pageText+="</map>" pageText+="</map>"
pageText+="</div>\n" #endxy pageText+="</div>\n" #endxy
pageText+="<div id='control_z'>" pageText+="<div id='control_z'>"
pageText+="<img src='/images/control_z.png' />" pageText+="<img src='/images/control_z.png' usemap='#zmap'/>"
pageText+='<map name="zmap">'
pageText+='<area shape="rect" coords="4,35,54,64" href="/move/axis/z/10" alt="Z 10" title="Z 10" />'
pageText+='<area shape="rect" coords="4,60,54,89" href="/move/axis/z/1" alt="Z 1" title="Z 1" />'
pageText+='<area shape="rect" coords="4,87,54,116" href="/move/axis/z/.1" alt="Z .1" title="Z .1" />'
pageText+='<area shape="rect" coords="4,121,54,150" href="/move/axis/z/-.1" alt="Z -.1" title="Z -.1" />'
pageText+='<area shape="rect" coords="4,147,54,176" href="/move/axis/z/-1" alt="Z -1" title="Z -1" />'
pageText+='<area shape="rect" coords="4,173,54,202" href="/move/axis/z/-10" alt="Z -10" title="Z -10" />'
pageText+="</map>"
#TODO Map Z Moves #TODO Map Z Moves
pageText+="</div>\n" #endz pageText+="</div>\n" #endz
pageText+="</div>\n" #endgui pageText+="</div>\n" #endgui