diff --git a/cgi-bin/lc.wsgi b/cgi-bin/lc.wsgi new file mode 100644 index 00000000..d9f4b84a --- /dev/null +++ b/cgi-bin/lc.wsgi @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: iso-8859-1 -*- +# Copyright (C) 2012 Bastian Kleineidam +# +# 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 2 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from cStringIO import StringIO +import cgi +import linkcheck +import linkcheck.lc_cgi + +def application(environ, start_response): + # the environment variable CONTENT_LENGTH may be empty or missing + try: + request_body_size = int(environ.get('CONTENT_LENGTH', 0)) + except (ValueError): + request_body_size = 0 + + # When the method is POST the query string will be sent + # in the HTTP request body which is passed by the WSGI server + # in the file like wsgi.input environment variable. + request_body = environ['wsgi.input'].read(request_body_size) + form = cgi.parse_qs(request_body) + + status = '200 OK' + start_response(status, linkcheck.lc_cgi.get_response_headers()) + output = StringIO() + # XXX this is slow since it checks the whole site before showing + # any out. + # Instead check in a separate thread and yield output as soon + # as it is available. + linkcheck.lc_cgi.checklink(form=form, out=output, env=environ) + return [output.getvalue()] diff --git a/cgi-bin/lconline/lc_cgi.html.de b/cgi-bin/lconline/lc_cgi.html.de index 4edb77c2..ae2551d6 100644 --- a/cgi-bin/lconline/lc_cgi.html.de +++ b/cgi-bin/lconline/lc_cgi.html.de @@ -28,7 +28,7 @@ target="_top">LinkChecker)
-