1+ import json
12import random
23import re
34from dataclasses import dataclass
45from datetime import UTC , datetime
5- from urllib .parse import quote
66from pathlib import Path
7- import json
7+ from urllib . parse import quote
88
99import discord
1010from aiohttp import ClientResponse
@@ -81,12 +81,13 @@ def __init__(self, bot: Bot):
8181 self .bot = bot
8282 self .repos = []
8383
84- async def cog_load (self ):
84+ async def cog_load (self ) -> None :
85+ """Function to be run at cog load."""
8586 self .refresh_repos .start ()
8687
8788 self .stored_repos_json = Path (__file__ ).parent .parent .parent / "resources" / "utilities" / "stored_repos.json"
8889
89- with open (self .stored_repos_json , "r" ) as f :
90+ with open (self .stored_repos_json ) as f :
9091 self .stored_repos = json .load (f )
9192 log .info ("Loaded stored repos in memory." )
9293
@@ -307,7 +308,8 @@ async def github_user_info(self, ctx: commands.Context, username: str) -> None:
307308 await ctx .send (embed = embed )
308309
309310 @tasks .loop (hours = 24 )
310- async def refresh_repos (self ):
311+ async def refresh_repos (self ) -> None :
312+ """Refresh self.repos with latest PyDis repos."""
311313 self .repos , _ = await self .fetch_data (REPOSITORY_ENDPOINT .format (org = "python-discord" ))
312314 log .info (f"Loaded { len (self .repos )} repos from Python Discord org into memory." )
313315
@@ -330,8 +332,8 @@ async def github_repo_info(self, ctx: commands.Context, *repo: str) -> None:
330332 repo_query = self .stored_repos [repo_query ]
331333 else :
332334 for each in self .repos :
333- if repo_query == each [' name' ]:
334- repo_query = each [' full_name' ]
335+ if repo_query == each [" name" ]:
336+ repo_query = each [" full_name" ]
335337 is_pydis = True
336338 break
337339 else :
@@ -341,15 +343,15 @@ async def github_repo_info(self, ctx: commands.Context, *repo: str) -> None:
341343 # Case 1: PyDis repo
342344 if is_pydis :
343345 for each in self .repos :
344- if repo_query == each [' full_name' ]:
346+ if repo_query == each [" full_name" ]:
345347 repo_data = each
346348 break
347349
348350 # Case 2: Not stored or PyDis, fetch most-starred matching repo
349351 elif fetch_most_starred :
350352 repo_data , _ = await self .fetch_data (FETCH_MOST_STARRED_ENDPOINT .format (name = quote (repo_query )))
351353
352- if not repo_data [' items' ]:
354+ if not repo_data [" items" ]:
353355 embed = discord .Embed (
354356 title = random .choice (NEGATIVE_REPLIES ),
355357 description = f"No repositories found matching `{ repo_query } `." ,
@@ -358,7 +360,7 @@ async def github_repo_info(self, ctx: commands.Context, *repo: str) -> None:
358360 await ctx .send (embed = embed )
359361 return
360362
361- repo_item = repo_data [' items' ][0 ] # Top result
363+ repo_item = repo_data [" items" ][0 ] # Top result
362364 embed = discord .Embed (
363365 title = repo_item ["name" ],
364366 description = repo_item ["description" ] or "No description provided." ,
0 commit comments