1#!/usr/bin/env python
2
3"""
4FCKeditor - The text editor for Internet - http://www.fckeditor.net
5Copyright (C) 2003-2007 Frederico Caldeira Knabben
6
7== BEGIN LICENSE ==
8
9Licensed under the terms of any of the following licenses at your
10choice:
11
12 - GNU General Public License Version 2 or later (the "GPL")
13   http://www.gnu.org/licenses/gpl.html
14
15 - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
16   http://www.gnu.org/licenses/lgpl.html
17
18 - Mozilla Public License Version 1.1 or later (the "MPL")
19   http://www.mozilla.org/MPL/MPL-1.1.html
20
21== END LICENSE ==
22
23Connector/QuickUpload for Python (WSGI wrapper).
24
25See config.py for configuration settings
26
27"""
28
29from connector import FCKeditorConnector
30from upload import FCKeditorQuickUpload
31
32import cgitb
33from cStringIO import StringIO
34
35# Running from WSGI capable server (recomended)
36def App(environ, start_response):
37	"WSGI entry point. Run the connector"
38	if environ['SCRIPT_NAME'].endswith("connector.py"):
39		conn = FCKeditorConnector(environ)
40	elif environ['SCRIPT_NAME'].endswith("upload.py"):
41		conn = FCKeditorQuickUpload(environ)
42	else:
43		start_response ("200 Ok", [('Content-Type','text/html')])
44		yield "Unknown page requested: "
45		yield environ['SCRIPT_NAME']
46		return
47	try:
48		# run the connector
49		data = conn.doResponse()
50		# Start WSGI response:
51		start_response ("200 Ok", conn.headers)
52		# Send response text
53		yield data
54	except:
55		start_response("500 Internal Server Error",[("Content-type","text/html")])
56		file = StringIO()
57		cgitb.Hook(file = file).handle()
58		yield file.getvalue()
59