PEP 8 compliance.

This commit is contained in:
yrriban 2025-06-13 01:38:07 -04:00
parent 97616b341d
commit b29e2675d1

View file

@ -5,32 +5,43 @@ import pathlib
import urllib.request import urllib.request
import zipfile import zipfile
class Fetch(dcc.config.Base): class Fetch(dcc.config.Base):
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super().get_parser(prog_name) parser = super().get_parser(prog_name)
parser.add_argument("id_or_name") parser.add_argument("id_or_name")
return parser return parser
def take_action(self, parsed_args):
idgames_id = parsed_args.id_or_name
if not parsed_args.id_or_name.isdigit():
idgames_id = self.search_idgames(parsed_args.id_or_name)
with urllib.request.urlopen("https://www.doomworld.com/idgames/api/api.php?action=get&id={}&out=json".format(idgames_id)) as response: def take_action(self, parsed_args):
reply = json.loads(response.read()) idgames_id = parsed_args.id_or_name
rpath = "/".join([dcc.config.MIRROR, reply["content"]["dir"], reply["content"]["filename"]]) if not parsed_args.id_or_name.isdigit():
wad = reply["content"]["filename"][0:-4] idgames_id = self.search_idgames(parsed_args.id_or_name)
with urllib.request.urlopen(rpath) as response: with urllib.request.urlopen(
z = zipfile.ZipFile(io.BytesIO(response.read())) "https://www.doomworld.com/idgames/api/" +
z.extractall(path=self.pwads.joinpath(wad)) "api.php?action=get&id={}&out=json".format(idgames_id)
) as response:
reply = json.loads(response.read())
rpath = "/".join([
dcc.config.MIRROR,
reply["content"]["dir"],
reply["content"]["filename"]
])
wad = reply["content"]["filename"][0:-4]
# TODO: explicit error handling. Let users choose when >1 result. with urllib.request.urlopen(rpath) as response:
def search_idgames(self, wad): z = zipfile.ZipFile(io.BytesIO(response.read()))
with urllib.request.urlopen("https://www.doomworld.com/idgames/api/api.php?action=search&query={}&out=json".format(wad)) as response: z.extractall(path=self.pwads.joinpath(wad))
reply = json.loads(response.read())
files = reply["content"]["file"] # TODO: explicit error handling. Let users choose when >1 result.
if type(files) is dict: # One result. def search_idgames(self, wad):
return files["id"] with urllib.request.urlopen(
else: # More than one. Zero will raise an error. "https://www.doomworld.com/idgames/api/" +
return files[0]["id"] "api.php?action=search&query={}&out=json".format(wad)
) as response:
reply = json.loads(response.read())
files = reply["content"]["file"]
if type(files) is dict: # One result.
return files["id"]
else: # More than one. Zero will raise an error.
return files[0]["id"]