from discord.ext import commands from discord.ext.commands import Context def _(x): return x class IPConverter(commands.Converter): async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613 argument = argument.replace("http://", "").replace("https://", "") argument = argument.rstrip("/") if argument.startswith("`") and argument.endswith("`"): argument = argument.lstrip("`").rstrip("`") return argument.lower() class DomainConverter(commands.Converter): async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613 if not argument.startswith("http"): return f"http://{argument}" return argument class QueryTypeConverter(commands.Converter): async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613 return argument.lower() class IPParamsConverter(commands.Converter): async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613 if not argument: return None params = { "inet": "", "map": "map" in argument.lower(), } if "4" in argument: params["inet"] = "4" elif "6" in argument: params["inet"] = "6" elif len(arg := argument.split(" ")) >= 2: params["inet"] = arg[0] return params class ASConverter(commands.Converter): async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613 return argument.lower().lstrip("as")