home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1060836262

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/datasette/issues/1650#issuecomment-1060836262 https://api.github.com/repos/simonw/datasette/issues/1650 1060836262 IC_kwDOBm6k_c4_OxOm 9599 2022-03-07T15:52:09Z 2022-03-07T15:52:09Z OWNER

This is a bit tricky.

I tried this, sending a redirect only if a 404 happens:

```diff diff --git a/datasette/app.py b/datasette/app.py index 8c5480c..420664c 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -1211,6 +1211,10 @@ class DatasetteRouter: return await self.handle_404(request, send)

 async def handle_404(self, request, send, exception=None):
  • If path contains % encoding, redirect to dash encoding

  • if '%' in request.scope["path"]:
  • await asgi_send_redirect(send, request.scope["path"].replace("%", "-"))
  • return # If URL has a trailing slash, redirect to URL without it path = request.scope.get( "raw_path", request.scope["path"].encode("utf8") ``` But this URL didn't work:

  • http://127.0.0.1:8001/fivethirtyeight/twitter-ratio%2Fsenators

I was expecting that to redirect to this page:

  • http://127.0.0.1:8001/fivethirtyeight/twitter-2Dratio-2Fsenators

But instead it took me to another 404:

  • http://127.0.0.1:8001/fivethirtyeight/twitter-ratio%2Fsenators

This is because that URL contains both a %-escaped / AND a plain - - which was not escaped in the old system but is escaped in the new system.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1160750713  
Powered by Datasette · Queries took 0.947ms · About: github-to-sqlite