diff --git a/exts/lookup.py b/exts/lookup.py index 9265d51..48c1623 100644 --- a/exts/lookup.py +++ b/exts/lookup.py @@ -12,8 +12,8 @@ import threading import discord from discord.ext import commands, tasks - from ctyparser import BigCty + import common as cmn @@ -21,47 +21,37 @@ class LookupCog(commands.Cog): def __init__(self, bot): self.bot = bot try: - self.CTY = BigCty('./data/cty.json') + self.cty = BigCty('./data/cty.json') except OSError: - self.CTY = BigCty() - update = threading.Thread(target=run_update, args=(self.CTY, "./data/cty.json")) - update.start() + self.cty = BigCty() - @commands.command(name="sat", category=cmn.cat.lookup) - async def _sat_lookup(self, ctx: commands.Context, sat: str, grid1: str, grid2: str = None): - '''Links to info about satellite passes on satmatch.com. - Usage: `?sat sat_name grid1 grid2`''' - now = datetime.utcnow().strftime('%Y-%m-%d%%20%H:%M') - if grid2 is None or grid2 == '': - await ctx.send(f'http://www.satmatch.com/satellite/{sat}/obs1/{grid1}' - f'?search_start_time={now}&duration_hrs=24') - else: - await ctx.send(f'http://www.satmatch.com/satellite/{sat}/obs1/{grid1}' - f'/obs2/{grid2}?search_start_time={now}&duration_hrs=24') + # TODO: See #107 + # @commands.command(name="sat", category=cmn.cat.lookup) + # async def _sat_lookup(self, ctx: commands.Context, sat_name: str, grid1: str, grid2: str = None): + # '''Links to info about satellite passes on satmatch.com.''' + # now = datetime.utcnow().strftime('%Y-%m-%d%%20%H:%M') + # if grid2 is None or grid2 == '': + # await ctx.send(f'http://www.satmatch.com/satellite/{sat_name}/obs1/{grid1}' + # f'?search_start_time={now}&duration_hrs=24') + # else: + # await ctx.send(f'http://www.satmatch.com/satellite/{sat_name}/obs1/{grid1}' + # f'/obs2/{grid2}?search_start_time={now}&duration_hrs=24') @commands.command(name="dxcc", aliases=['dx'], category=cmn.cat.lookup) async def _dxcc_lookup(self, ctx: commands.Context, query: str): - '''Gets info about a prefix.''' + '''Gets info about a DXCC prefix.''' with ctx.typing(): - noMatch = True - queryMatch = None query = query.upper() - embed = discord.Embed(title=f'DXCC Info for {query} not found', + full_query = query + embed = discord.Embed(title=f'DXCC Info for ', timestamp=datetime.utcnow()) embed.set_footer(text=f'{ctx.author.name}', icon_url=str(ctx.author.avatar_url)) - embed.description = f'*Last Updated: {self.CTY.formatted_version}*' + embed.description = f'*Last Updated: {self.cty.formatted_version}*' embed.colour = cmn.colours.bad - while noMatch: - if query in self.CTY.keys(): - queryMatch = query - noMatch = False - else: - query = query[:-1] - if len(query) == 0: - noMatch = False - if queryMatch is not None: - data = self.CTY[queryMatch] + while query: + if query in self.cty.keys(): + data = self.cty[query] embed.add_field(name="Entity", value=data['entity'])\ .add_field(name="CQ Zone", @@ -72,18 +62,21 @@ class LookupCog(commands.Cog): value=data['continent'])\ .add_field(name="Time Zone", value=f'+{data["tz"]}' if data['tz'] > 0 else str(data['tz'])) - embed.title = f'DXCC Info for {query}' + embed.title += query embed.colour = cmn.colours.good + break + else: + query = query[:-1] + else: + embed.title += f'{full_query} not found' + embed.colour = cmn.colours.bad await ctx.send(embed=embed) @tasks.loop(hours=24) async def _update_cty(self): - update = threading.Thread(target=run_update, args=(self.CTY, "./data/cty.json")) + update = threading.Thread(target=run_update, args=(self.cty, "./data/cty.json")) update.start() - def cog_unload(self): - self.CTY.dump("./data/cty.json") - def run_update(cty_obj, dump_loc): update = cty_obj.update()