feat: stash CF-RegionCode and CF-IPCity headers in g for future use
All three Cloudflare geo headers now available: - g.user_country (CF-IPCountry) — used by geo-sorted article listing - g.user_region (CF-RegionCode) — available for within-country sorting - g.user_city (CF-IPCity) — available for city-level proximity Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -149,9 +149,16 @@ def create_app() -> Quart:
|
|||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
async def set_user_country():
|
async def set_user_geo():
|
||||||
"""Stash Cloudflare CF-IPCountry header (ISO alpha-2) in g for geo sorting."""
|
"""Stash Cloudflare geo headers in g for proximity sorting.
|
||||||
|
|
||||||
|
Requires nginx: proxy_set_header CF-IPCountry $http_cf_ipcountry;
|
||||||
|
proxy_set_header CF-RegionCode $http_cf_regioncode;
|
||||||
|
proxy_set_header CF-IPCity $http_cf_ipcity;
|
||||||
|
"""
|
||||||
g.user_country = request.headers.get("CF-IPCountry", "").upper() or ""
|
g.user_country = request.headers.get("CF-IPCountry", "").upper() or ""
|
||||||
|
g.user_region = request.headers.get("CF-RegionCode", "") or ""
|
||||||
|
g.user_city = request.headers.get("CF-IPCity", "") or ""
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
async def validate_lang():
|
async def validate_lang():
|
||||||
|
|||||||
Reference in New Issue
Block a user