| Index: multiplexer.py | 
| =================================================================== | 
| --- a/multiplexer.py | 
| +++ b/multiplexer.py | 
| @@ -11,26 +11,33 @@ | 
| # Adblock Plus 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 Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 
| +import re | 
| import flask | 
| from sitescripts.web import handlers | 
| from urlparse import urlparse | 
| app = flask.Flask(__name__) | 
| @app.route("/<path:path>", methods = ["GET", "POST"]) | 
| def multiplex(path): | 
| request_url = urlparse(flask.request.url) | 
| + if 'SERVER_ADDR' not in flask.request.environ: | 
| + flask.request.environ['SERVER_ADDR'] = flask.request.environ['SERVER_NAME'] | 
| + if 'REQUEST_URI' not in flask.request.environ: | 
| + flask.request.environ['REQUEST_URI'] = flask.request.url | 
| + | 
| request_path = request_url.path | 
| if request_path in handlers: | 
| - if 'SERVER_ADDR' not in flask.request.environ: | 
| - flask.request.environ['SERVER_ADDR'] = flask.request.environ['SERVER_NAME'] | 
| return handlers[request_path] | 
| + request_dir = re.sub(r'[^/]+$', '', request_path) | 
| + if request_dir in handlers: | 
| + return handlers[request_dir] | 
| return flask.abort(404) | 
| if __name__ == "__main__": | 
| app.run(debug=True) |