fix: status code 202 error

This commit is contained in:
anmol singh
2023-11-22 11:36:38 +05:30
parent 02827d6adc
commit 7063c39f20
3 changed files with 23 additions and 7 deletions

View File

@@ -21,7 +21,8 @@ async def create_loc_graph(yearly_data: Dict, save_path: str):
:param save_path: Path to save the graph file.
"""
colors = await DM.get_remote_yaml("linguist")
if colors is None:
colors = dict()
years = len(yearly_data.keys())
year_indexes = arange(years)

View File

@@ -31,6 +31,9 @@ async def get_waka_time_stats(repositories: Dict, commit_dates: Dict) -> str:
stats = str()
data = await DM.get_remote_json("waka_latest")
if data is None:
DBM.p("WakaTime data unavailable!")
return stats
if EM.SHOW_COMMIT or EM.SHOW_DAYS_OF_WEEK: # if any on flag is turned on then we need to calculate the data and print accordingly
DBM.i("Adding user commit day time info...")
stats += f"{await make_commit_day_time_list(data['data']['timezone'], repositories, commit_dates)}\n\n"
@@ -89,6 +92,9 @@ async def get_short_github_info() -> str:
stats += f"> 📦 {disk_usage} \n > \n"
data = await DM.get_remote_json("github_stats")
if data is None:
DBM.p("GitHub contributions data unavailable!")
return stats
DBM.i("Adding contributions info...")
if len(data["years"]) > 0:
contributions = FM.t("Contributions in the year") % (intcomma(data["years"][0]["total"]), data["years"][0]["year"])
@@ -161,6 +167,9 @@ async def get_stats() -> str:
if EM.SHOW_TOTAL_CODE_TIME:
DBM.i("Adding total code time info...")
data = await DM.get_remote_json("waka_all")
if data is None:
DBM.p("WakaTime data unavailable!")
else:
stats += f"![Code Time](http://img.shields.io/badge/{quote('Code Time')}-{quote(str(data['data']['text']))}-blue)\n\n"
if EM.SHOW_PROFILE_VIEWS:

View File

@@ -166,7 +166,7 @@ class DownloadManager:
await resource
@staticmethod
async def _get_remote_resource(resource: str, convertor: Optional[Callable[[bytes], Dict]]) -> Dict:
async def _get_remote_resource(resource: str, convertor: Optional[Callable[[bytes], Dict]]) -> Dict or None:
"""
Receive execution result of static query, wait for it if necessary.
If the query wasn't cached previously, cache it.
@@ -174,7 +174,7 @@ class DownloadManager:
:param resource: Static query identifier.
:param convertor: Optional function to convert `response.contents` to dict.
By default `response.json()` is used.
:return: Response dictionary.
:return: Response dictionary or None.
"""
DBM.i(f"\tMaking a remote API query named '{resource}'...")
if isinstance(DownloadManager._REMOTE_RESOURCES_CACHE[resource], Awaitable):
@@ -184,16 +184,22 @@ class DownloadManager:
else:
res = DownloadManager._REMOTE_RESOURCES_CACHE[resource]
DBM.g(f"\tQuery '{resource}' loaded from cache!")
if res.status_code == 200 or res.status_code == 202:
if res.status_code == 200:
if convertor is None:
return res.json()
else:
return convertor(res.content)
elif res.status_code == 201:
DBM.w(f"\tQuery '{resource}' returned 201 status code")
return None
elif res.status_code == 202:
DBM.w(f"\tQuery '{resource}' returned 202 status code")
return None
else:
raise Exception(f"Query '{res.url}' failed to run by returning code of {res.status_code}: {res.json()}")
@staticmethod
async def get_remote_json(resource: str) -> Dict:
async def get_remote_json(resource: str) -> Dict or None:
"""
Shortcut for `_get_remote_resource` to return JSON response data.
:param resource: Static query identifier.
@@ -202,7 +208,7 @@ class DownloadManager:
return await DownloadManager._get_remote_resource(resource, None)
@staticmethod
async def get_remote_yaml(resource: str) -> Dict:
async def get_remote_yaml(resource: str) -> Dict or None:
"""
Shortcut for `_get_remote_resource` to return YAML response data.
:param resource: Static query identifier.