Log Wikimedia API request metrics

This commit is contained in:
Edward Betts 2026-05-18 23:20:37 +01:00
parent eecbd3cfb8
commit 9486d9cb8a
5 changed files with 268 additions and 16 deletions

View file

@ -9,7 +9,8 @@ import requests
from flask import current_app, session
from requests_oauthlib import OAuth1Session
from .api import ua
from .api import ua, wikimedia_log_config
from .wikimedia_api_logging import logged_request
wiki_hostname = "en.wikipedia.org"
api_url = f"https://{wiki_hostname}/w/api.php"
@ -44,7 +45,15 @@ def api_post_request(params: dict[str, str | int], timeout: int = 4) -> requests
)
oauth.headers.update({"User-Agent": ua})
proxies = get_edit_proxy()
return oauth.post(api_url, data=params, timeout=timeout, proxies=proxies)
return logged_request(
oauth,
wikimedia_log_config,
"POST",
api_url,
data=params,
timeout=timeout,
proxies=proxies,
)
def raw_request(params: typing.Mapping[str, str | int]) -> requests.Response:
@ -63,8 +72,13 @@ def raw_request(params: typing.Mapping[str, str | int]) -> requests.Response:
)
oauth.headers.update({"User-Agent": ua})
proxies = get_edit_proxy()
return oauth.get(
api_url + "?" + urllib.parse.urlencode(params), timeout=4, proxies=proxies
return logged_request(
oauth,
wikimedia_log_config,
"GET",
api_url + "?" + urllib.parse.urlencode(params),
timeout=4,
proxies=proxies,
)