Mercurial > hg
diff mercurial/hgweb/webutil.py @ 36865:3d60a22e27f5
hgweb: perform all parameter lookup via qsparams
I think I managed to update all call sites using wsgirequest.form
to use parsedrequest.qsparams.
Since behavior of qsparams is to retrieve last value, behavior will
change if a parameter was specified multiple times. But I think this
is acceptable.
I'm not a fan of the `req.req.qsparams` pattern. And some of the
modified code could be written better. But I was aiming for a
straight port with this change. Cleanup can come later.
Differential Revision: https://phab.mercurial-scm.org/D2781
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 10 Mar 2018 12:36:36 -0800 |
parents | 1a1972b1a1ff |
children | c68e79dcf21c |
line wrap: on
line diff
--- a/mercurial/hgweb/webutil.py Sat Mar 10 12:11:26 2018 -0800 +++ b/mercurial/hgweb/webutil.py Sat Mar 10 12:36:36 2018 -0800 @@ -177,7 +177,7 @@ section=section, whitespace=True) for k in ('ignorews', 'ignorewsamount', 'ignorewseol', 'ignoreblanklines'): - v = req.form.get(k, [None])[0] + v = req.req.qsparams.get(k) if v is not None: v = util.parsebool(v) setattr(diffopts, k, v if v is not None else True) @@ -295,19 +295,19 @@ def changectx(repo, req): changeid = "tip" - if 'node' in req.form: - changeid = req.form['node'][0] + if 'node' in req.req.qsparams: + changeid = req.req.qsparams['node'] ipos = changeid.find(':') if ipos != -1: changeid = changeid[(ipos + 1):] - elif 'manifest' in req.form: - changeid = req.form['manifest'][0] + elif 'manifest' in req.req.qsparams: + changeid = req.req.qsparams['manifest'] return changeidctx(repo, changeid) def basechangectx(repo, req): - if 'node' in req.form: - changeid = req.form['node'][0] + if 'node' in req.req.qsparams: + changeid = req.req.qsparams['node'] ipos = changeid.find(':') if ipos != -1: changeid = changeid[:ipos] @@ -316,13 +316,13 @@ return None def filectx(repo, req): - if 'file' not in req.form: + if 'file' not in req.req.qsparams: raise ErrorResponse(HTTP_NOT_FOUND, 'file not given') - path = cleanpath(repo, req.form['file'][0]) - if 'node' in req.form: - changeid = req.form['node'][0] - elif 'filenode' in req.form: - changeid = req.form['filenode'][0] + path = cleanpath(repo, req.req.qsparams['file']) + if 'node' in req.req.qsparams: + changeid = req.req.qsparams['node'] + elif 'filenode' in req.req.qsparams: + changeid = req.req.qsparams['filenode'] else: raise ErrorResponse(HTTP_NOT_FOUND, 'node or filenode not given') try: @@ -333,8 +333,8 @@ return fctx def linerange(req): - linerange = req.form.get('linerange') - if linerange is None: + linerange = req.req.qsparams.getall('linerange') + if not linerange: return None if len(linerange) > 1: raise ErrorResponse(HTTP_BAD_REQUEST, @@ -412,8 +412,8 @@ return entry def symrevorshortnode(req, ctx): - if 'node' in req.form: - return templatefilters.revescape(req.form['node'][0]) + if 'node' in req.req.qsparams: + return templatefilters.revescape(req.req.qsparams['node']) else: return short(ctx.node())