Skip to content

Commit

Permalink
Handle errors in search results
Browse files Browse the repository at this point in the history
  • Loading branch information
jacebrowning committed Jan 16, 2022
1 parent c0c7565 commit a96a002
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 11 deletions.
15 changes: 11 additions & 4 deletions app/utils/meta.py
Expand Up @@ -30,7 +30,9 @@ async def authenticate(request) -> dict:
response = await session.get(api, headers={"X-API-KEY": api_key})
if response.status >= 500:
settings.REMOTE_TRACKING_ERRORS += 1
logger.info(f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}")
logger.warning(
f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}"
)
else:
info = await response.json()

Expand Down Expand Up @@ -59,7 +61,9 @@ async def tokenize(request, url: str) -> tuple[str, bool]:
)
if response.status >= 500:
settings.REMOTE_TRACKING_ERRORS += 1
logger.info(f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}")
logger.warning(
f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}"
)
return default_url, False

data = await response.json()
Expand Down Expand Up @@ -133,7 +137,7 @@ async def track(request, lines: list[str]):
logger.error(f"Tracker response {response.status}: {message}")
if response.status >= 404 and response.status not in {414, 421, 520}:
settings.REMOTE_TRACKING_ERRORS += 1
logger.info(f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}")
logger.warning(f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}")
if settings.REMOTE_TRACKING_ERRORS >= settings.REMOTE_TRACKING_ERRORS_LIMIT:
settings.TRACK_REQUESTS = False
logger.warning(f"Disabled tracking after {response.status} response")
Expand All @@ -154,7 +158,10 @@ async def search(request, text: str, safe: bool, *, mode="") -> list[dict]:
logger.info(f"Searching for results: {text!r} (safe={safe})")
headers = {"X-API-KEY": _get_api_key(request) or ""}
response = await session.get(api, params=params, headers=headers)
assert response.status < 500, f"Invalid response: {response}"
if response.status >= 500:
settings.REMOTE_TRACKING_ERRORS += 1
logger.warning(f"Tracker error count: {settings.REMOTE_TRACKING_ERRORS}")
return []

data = await response.json()
if response.status == 200:
Expand Down
10 changes: 5 additions & 5 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Expand Up @@ -13,7 +13,7 @@ packages = [{ include = "app" }]
python = "^3.10"

# Sanic
sanic = "~21.12"
sanic = "~21.12.1"
sanic-cors = "^2.0"
sanic-openapi = "~21.12"

Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Expand Up @@ -34,7 +34,7 @@ ruamel.yaml==0.17.17; python_version >= "3.7" and python_version < "4.0"
sanic-cors==2.0.0
sanic-openapi==21.12.0
sanic-routing==0.7.1; python_version >= "3.7"
sanic==21.12.0; python_version >= "3.7"
sanic==21.12.1; python_version >= "3.7"
six==1.16.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0"
sniffio==1.2.0; python_full_version >= "3.6.2" and python_version >= "3.10"
spongemock==0.3.4
Expand Down

0 comments on commit a96a002

Please sign in to comment.