Пример #1
0
 async def max_lvl_lookup(self, ctx, *username):
     """ Shows user's level 99s """
     url_safe_name = '+'.join(username)
     safe_name = ' '.join(username)
     user = Hiscore(url_safe_name)
     async with ctx.typing():
         await user.fetch()
     embed = discord.Embed(
         title="99s",
         description=f'{safe_name}\n{user.overall_level} total')
     count, table = user.generate_99_table()
     if table:
         embed.add_field(name=f'**{count} / 23**', value=f'```{table}```')
     else:
         embed.add_field(name=f'**0 / 23**',
                         value='User doesn\'t have any 99s')
     await ctx.send(f'{ctx.message.author.mention}', embed=embed)
     return
Пример #2
0
 async def kc_lookup(self, ctx, *username):
     """ Lookup a user's boss kill counts """
     url_safe_name = '+'.join(username)
     safe_name = ' '.join(username)
     user = Hiscore(url_safe_name)
     async with ctx.typing():
         await user.fetch()
     field_count = 0
     await ctx.send(f'{ctx.message.author.mention}')
     embed = discord.Embed(title="Boss kill counts",
                           description=f'{safe_name}')
     if user.generate_kc_table():
         embed.add_field(name='Details',
                         value=f'```{user.generate_kc_table()}```')
     else:
         embed.add_field(name='Nothing found',
                         value='No kill counts on the hiscore page.')
     await ctx.send(embed=embed)
     return
Пример #3
0
 async def overall_lookup(self, ctx, *username):
     async with ctx.typing():
         url_safe_name = '+'.join(username)
         safe_name = ' '.join(username)
         user = Hiscore(url_safe_name)
         embed = discord.Embed(title="Overall", description=f'{safe_name}')
         embed.add_field(name="Level", value=f'**{user.overall_level:,}**', inline=True)
         embed.add_field(name="XP", value=f'{user.overall_xp:,}', inline=True)
         embed.add_field(name="Rank", value=f'{user.overall_rank:,}', inline=True)
         await ctx.send(f'{ctx.message.author.mention}', embed=embed)
         return
Пример #4
0
 async def defence_lookup(self, ctx, *username):
     async with ctx.typing():
         url_safe_name = '+'.join(username)
         safe_name = ' '.join(username)
         user = Hiscore(url_safe_name)
         embed = discord.Embed(title="Defence", description=f'{safe_name}')
         embed.set_thumbnail(url=f'{get_icon_url("defence")}')
         embed.add_field(name="Level", value=f'**{user.defence_level:,}**', inline=True)
         embed.add_field(name="XP", value=f'{user.defence_xp:,}', inline=True)
         embed.add_field(name="Rank", value=f'{user.defence_rank:,}')
         embed.set_footer(text=f'{next_level_string(user.defence_xp, "defence")}')
         await ctx.send(f'{ctx.message.author.mention}', embed=embed)
         return
Пример #5
0
 async def lms_lookup(self, ctx, *username):
     """ Shows LMS scores and rank """
     url_safe_name = '+'.join(username)
     safe_name = ' '.join(username)
     user = Hiscore(url_safe_name)
     async with ctx.typing():
         await user.fetch()
     embed = discord.Embed(title="Last Man Standing", description=f'{safe_name}')
     embed.set_thumbnail(url=lms_icon)
     if user.lms_score == -1:
         embed.add_field(name="Score", value="You have never played LMS")
     else:
         embed.add_field(name="Score", value=f'**{int(user.lms_score):,}** score (Rank {int(user.lms_rank):,})',
                         inline=False)
     await ctx.send(f'{ctx.message.author.mention}', embed=embed)
     return
Пример #6
0
 async def stats_command(self, ctx, *username):
     """ Shows all stats for a user """
     url_safe_name = '+'.join(username)
     safe_name = ' '.join(username)
     user = Hiscore(url_safe_name)
     async with ctx.typing():
         await user.fetch()
     embed = discord.Embed(title=safe_name,
                           description=f'**{user.overall_xp:,}** XP\n'
                           f'**{user.overall_level:,}** Total\n'
                           f'**{user.overall_rank:,}** Rank',
                           url=f'{hiscore_url}{url_safe_name}')
     embed.add_field(name='Details',
                     value=f'```{user.generate_hiscore_table()}```')
     await ctx.send(f'{ctx.message.author.mention}', embed=embed)
     return
Пример #7
0
 async def clue_lookup(self, ctx, *username):
     """ Shows clue scrolls for user """
     url_safe_name = '+'.join(username)
     safe_name = ' '.join(username)
     user = Hiscore(url_safe_name)
     async with ctx.typing():
         await user.fetch()
     embed = discord.Embed(title="Clue Scrolls", description=f'{safe_name}')
     embed.set_thumbnail(url=clue_icon)
     if user.all_clues_rank == -1:
         embed.add_field(name="Nothing found", value="You haven't solved any clue scrolls", inline=True)
     else:
         embed.add_field(name="Total clues",
                         value=f'**{int(user.all_clues_score):,}** (Rank {int(user.all_clues_rank):,})\n'
                               f'```{user.generate_clue_table()}```',
                         inline=True)
     await ctx.send(f'{ctx.message.author.mention}', embed=embed)
     return
Пример #8
0
 async def max_lvl_lookup(self, ctx, *username):
     """ Shows user's level 99s """
     async with ctx.typing():
         url_safe_name = '+'.join(username)
         safe_name = ' '.join(username)
         user = Hiscore(url_safe_name)
         embed = discord.Embed(title="99s", description=f'{safe_name}\n*{user.overall_level}* total level')
         count = 0
         msg = f''
         for (name, level, xp, rank) in user.levels:
             if int(level) == 99:
                 msg += f'**{name}** {int(xp) / 1000000:.2f}M xp\n'
                 count += 1
         if count == 0:
             embed.add_field(name="**0 / 23**", value="User doesn't have any level 99s")
         else:
             embed.add_field(name=f"**{count} / 23**", value=msg)
         await ctx.send(f'{ctx.message.author.mention}', embed=embed)
         return
Пример #9
0
 async def kc_lookup(self, ctx, *username):
     """ Lookup a user's boss kill counts """
     async with ctx.typing():
         url_safe_name = '+'.join(username)
         safe_name = ' '.join(username)
         user = Hiscore(url_safe_name)
         field_count = 0
         await ctx.send(f'{ctx.message.author.mention}')
         embed = discord.Embed(title="Boss kill counts", description=f'{safe_name}')
         for (name, kc, rank) in user.kcs:
             if int(kc) > -1:
                 embed.add_field(name=name, value=f'**{int(kc):,}** (Rank {int(rank):,})')
                 field_count += 1
             if field_count == 25:
                 await ctx.send(embed=embed)
                 embed = discord.Embed()
                 field_count = 0
         await ctx.send(embed=embed)
         return
Пример #10
0
 async def bounty_lookup(self, ctx, *username):
     """ Shows bounty hunter scores and rank """
     url_safe_name = '+'.join(username)
     safe_name = ' '.join(username)
     user = Hiscore(url_safe_name)
     async with ctx.typing():
         await user.fetch()
     embed = discord.Embed(title="Bounty Hunter", description=f'{safe_name}')
     embed.set_thumbnail(url=bounty_icon)
     if user.bounty_hunter_hunter_score == -1:
         embed.add_field(name="Hunter", value="You have never played as Hunter", inline=False)
     else:
         embed.add_field(name="Hunter",
                         value=f'**{int(user.bounty_hunter_hunter_score):,}** score (Rank {int(user.bounty_hunter_hunter_rank):,})',
                         inline=False)
     if user.bounty_hunter_rogue_rank == -1:
         embed.add_field(name="Rogue", value="You have never played as Rogue", inline=False)
     else:
         embed.add_field(name="Rogue",
                         value=f'**{int(user.bounty_hunter_rogue_score):,}** score (Rank {int(user.bounty_hunter_rogue_rank):,})',
                         inline=False)
     await ctx.send(f'{ctx.message.author.mention}', embed=embed)
     return
Пример #11
0
 async def tracker_command(self, ctx, *username):
     """ Shows weekly activity for a user """
     async with ctx.typing():
         url_safe_name = '+'.join(username)
         safe_name = ' '.join(username)
         if safe_name != '':
             await ctx.send(f'Tracking **{safe_name}**...')
         hiscore = Hiscore(url_safe_name)
         tracker = Tracker(url_safe_name)
         embed = discord.Embed(title='Weekly activity', url=f'{cml_url}{url_safe_name}')
         embed.set_thumbnail(url=cml_logo)
         embed.add_field(name=f'{safe_name}',
                         value=f'**{int(hiscore.overall_xp):,}** XP\n'
                               f'**{int(hiscore.overall_level):,}** Total\n'
                               f'**{int(hiscore.overall_rank):,}** Rank',
                         inline=False)
         (overall_name, overall_xp, overall_rank, overall_levels, overall_ehp) = tracker.top_gains[0]
         embed.add_field(name='**Overall gains**', value=f'+{overall_xp:,} XP\n'
                                                         f'{overall_levels} levels\n'
                                                         f'{overall_rank} overall rank')
         for (name, xp, rank, levels, ehp) in tracker.top_gains[1:6]:
             if xp > 0:
                 embed.add_field(name=f'**{hiscore.level_lookup(name)}** {name}', value=f'+{xp:,} xp\n'
                                                                                        f'{levels} levels\n'
                                                                                        f'{rank} rank')
         kills_msg = f''
         for (name, kills, rank) in tracker.top_kills[:5]:
             if kills > 0:
                 kills_msg += f'{kills:,}\t{name}\n'
         if kills_msg != '':
             embed.add_field(name='Recent kills', value=f'```{kills_msg}```', inline=False)
         embed.set_footer(text=f'Checked: {tracker.last_checked} ago\n'
                               f'Changed: {tracker.last_changed} ago\n'
                               f'Oldest data point: {tracker.oldest_data} ago')
         await ctx.send(f'{ctx.message.author.mention}', embed=embed)
         return
Пример #12
0
 def __init__(self, username):
     Hiscore.__init__(self, username)
     GrandExchange.__init__(self, "Nature rune")
Пример #13
0
 async def fetch(self):
     """ Fetch the results """
     Hiscore.__init__(self, self.username)
     GrandExchange.__init__(self, "Nature rune")
     await Hiscore.fetch(self)
     await GrandExchange.fetch(self)