55from databases import Database
66from loguru import logger
77from sqlalchemy import and_ , desc , distinct , func , insert , select
8- from httpx import AsyncClient
8+ import requests
9+ import asyncio
910
1011from backend .config import Settings
1112from backend .exceptions import NotFound
@@ -172,6 +173,9 @@ async def get_projects_mapped(user_id: int, db: Database):
172173
173174 @staticmethod
174175 async def get_and_save_stats (user_id : int , db : Database ) -> dict :
176+ def sync_get (url , headers ):
177+ return requests .get (url , headers = headers , timeout = 10.0 )
178+
175179 hashtag = settings .DEFAULT_CHANGESET_COMMENT .replace ("#" , "" )
176180 oh_some_url = (
177181 f"{ settings .OHSOME_STATS_API_URL } /stats/user?"
@@ -180,11 +184,17 @@ async def get_and_save_stats(user_id: int, db: Database) -> dict:
180184 )
181185 osm_user_details_url = f"{ settings .OSM_SERVER_URL } /api/0.6/user/{ user_id } .json"
182186
183- oh_some_headers = {"Authorization" : f"Basic { settings .OHSOME_STATS_TOKEN } " }
184-
185- async with AsyncClient (timeout = 10.0 ) as client :
186- oh_some_response = await client .get (oh_some_url , headers = oh_some_headers )
187- changeset_response = await client .get (osm_user_details_url )
187+ oh_some_headers = {
188+ "Authorization" : f"Basic { settings .OHSOME_STATS_TOKEN } " ,
189+ "User-Agent" : "HOT-Tasking-Manager/5.0" ,
190+ }
191+ osm_headers = {
192+ "User-Agent" : "HOT-Tasking-Manager/5.0" ,
193+ }
194+ oh_some_response , changeset_response = await asyncio .gather (
195+ asyncio .to_thread (sync_get , oh_some_url , oh_some_headers ),
196+ asyncio .to_thread (sync_get , osm_user_details_url , osm_headers ),
197+ )
188198
189199 if oh_some_response .status_code != 200 :
190200 error_msg = (
@@ -217,9 +227,7 @@ async def get_and_save_stats(user_id: int, db: Database) -> dict:
217227 topic_data ["result" ]["topics" ]["changeset" ] = {
218228 "value" : changeset_data ["user" ]["changesets" ]["count" ],
219229 }
220-
221230 new_stats = await UserStats .update (user_id , topic_data , db )
222-
223231 return new_stats
224232
225233 @staticmethod
0 commit comments