async def standings(ctx, leauge_name=default_league): await ctx.send('***STANDINGS***') league = fm.League(leauge_name) for player, pts in league.ordered_players: if league.whitelisted(player): await ctx.send(f'{player}: {round(pts)}')
async def teamscore(ctx, league_name=default_league, team=None): if not team: team = str(ctx.author.id) else: team = team league = fm.League(league_name) team_owner = league.league_dat["teams"][team]["owner"] pts, savg, gl = league.get_rteam_ppw(team) await ctx.send( f'***TEAM {team_owner}***:\n**{round(pts)} POINTS ({round(savg, 2)} SAVG)**' ) await ctx.send(f'-----------------------\n*__games:__*') for player in gl: await ctx.send(f'***{player}***') for game in gl[player]: s = game if 'score' in game: await ctx.send( f'__{s["score"]} POINTS__ | *{s["duration"]}* {s["kda"]} on {s["champ"]}\n {s["csm"]} ' f'*cs/m* {s["vision"]} *vision* {round(s["kp"]*100, 2)} *%kp* *{s["role"].lower()}*' ) elif 'avg' in game: await ctx.send( f'**POINTS: {game["pts"]} | AVERAGE {game["avg"]}**\n----------------------' ) else: await ctx.send('NO WEEKLY GAMES!')
async def register(ctx, league_name=default_league): team = ctx.author.id name = ctx.author.name league = fm.League(league_name) if str(team) not in league.league_dat['teams']: league.add_rteam(team, name) await ctx.send('TEAM ADDED')
async def rank(ctx, stats=False): league = fm.League(default_league) ranks = [] for team_n in league.league_dat["teams"]: team = league.league_dat["teams"][team_n] ranks.append( (team_n, team["points"], [x for x in team["players"] ])) # append tuple - name, pts, roster ranks = sorted(ranks, key=lambda x: x[1], reverse=True) if stats: i = 0 for n, pts, players in ranks: i += 1 user = bot.get_user(int(n)) pasta = discord.Embed( color=discord.Color(int("DAB420", 16)), title=f"TEAM {user.name}", description=f'*RANK `{i}` | `{round(pts, 1)}` pts*') for player in players: scores = league.score_local(player) n_games = len(scores) if n_games < 1: pasta.add_field(name=player, value="NO GAMES / 0 PTS!", inline=False) elif n_games == 1: g1 = scores[0] pasta.add_field(name=f'{player} | {g1[1]}', value=f"`{g1[1]}` | {g1[3]} on {g1[2]}", inline=False) else: g1, g2 = scores[:2] score = g1[1] + g2[1] pasta.add_field( name=f'{player} | {score}', value=f"1: `{g1[1]}` | {g1[3]} on {g1[2]}\n" f"2: `{g2[1]}` | {g2[3]} on {g2[2]}", inline=False) pasta.set_thumbnail(url=user.avatar_url) await ctx.send(embed=pasta) else: pasta = discord.Embed(color=discord.Color(int("DAB420", 16)), title="RANKINGS", description=f"*for the {league.name}*") i = 0 for n, pts, players in ranks: i += 1 user = bot.get_user(int(n)) pasta.add_field(name=user.name, value=f"{i} | {round(pts, 1)} pts", inline=False) if i == 1: pasta.set_thumbnail(url=user.avatar_url) # is this broken...? await ctx.send(embed=pasta)
async def start(ctx, league=default_league): league = fm.League(league) lock_date = league.start_friday() await ctx.send( f'**LEAGUE STARTED**\n`{league.name} LOCKS MIDNIGHT OF {lock_date}`\n`royale: {league.is_royale} | ' f'budget: {league.league_dat["budget"]}\nwhitelist: {league.league_dat["whitelisted"]} | ' f'commissioner: {league.league_dat["commissioner"]}`')
async def dm_all(ctx, l_n=default_league): league = fm.League(l_n) for t in league.league_dat['teams']: user = bot.get_user(int(t)) await user.send( f'`HELLO {user.name}, DO NOT BE AFRAID`\nthis is simply a test post for **silver fantasy**.' f'points will be calculated tomorrow morning, and teams will unlock then. you will have the' f'weekend to draft your team __but teams lock sunday night__ so draft your team before then.' )
async def standings(ctx, league_name=default_league): league = fm.League(league_name) spointlist = league.ordered_players() i = 0 for player, pts in spointlist: if league.whitelisted(player): i += 1 await ctx.send(f"RANK {i} | **{player}** @ `{round(pts, 1)}`")
async def release(ctx, ign, league_name=default_league): team = str(ctx.author.id) league = fm.League(league_name) if ign in league.league_dat['teams'][team]['players']: resp = league.remove_player_from_team(ign, team) await ctx.send(f'*team:* {league.league_dat["teams"][team]["players"]}' ) if isinstance(resp, int): await ctx.send(f'`ERROR {resp}`: TEAMS LOCKED IN') await ctx.send( f'*points left:* {league.league_dat["teams"][team]["budget"]}')
async def draft(ctx, ign, league_name=default_league): team = str(ctx.author.id) league = fm.League(league_name) if ign not in league.league_dat['teams'][team]['players']: resp = league.add_player_to_team(ign.lower(), team) await ctx.send(f'*team:* {league.league_dat["teams"][team]["players"]}' ) await ctx.send( f'*points left:* {league.league_dat["teams"][team]["budget"]}') if isinstance(resp, str): await ctx.send(f'`ERROR {resp}`')
async def drafted(ctx): league = fm.League(default_league) n_drafts = {} for team in league.league_dat["teams"]: for player in league.league_dat["teams"][team]["players"]: if player in n_drafts: n_drafts[player] += 1 else: n_drafts[player] = 1 n_drafts = sorted(n_drafts.items(), key=lambda x: x[1], reverse=True) pasta = '' for player, pts in n_drafts: pasta = pasta + f'\n**{player}**: `{pts}`' await ctx.send(pasta)
async def leaguescore(ctx, league=default_league): league = fm.League(league) await ctx.send( f'__SCORING ALL TEAMS IN `{league.name}`__\n*this might take a minute...*' ) teams = league.score_all_teams() pasta = discord.Embed(color=discord.Color(int("DAB420", 16)), title="RANKINGS", description=f"*for the {league.name}*") i = 0 for tid, score in teams: i += 1 user = bot.get_user(int(tid)) pasta.add_field(name=user.name, value=f"{i} | {round(score, 1)} pts", inline=False) if i == 1: pasta.set_thumbnail( url=user.avatar_url) # is this broken...? something is. await ctx.send(embed=pasta)
def get_owners(league_name=default_league): league = fm.League(league_name) for oid in league.league_dat['teams']: owner = bot.get_user(int(oid)) yield owner, oid
async def delist(ctx, ign, league_name=default_league): league = fm.League(league_name) league.delist(ign) await ctx.send(f'de-listed {ign}')
async def profile(ctx, ign, leauge_name=default_league): league = fm.League(leauge_name) await ctx.send(f'**{ign}**\n-------------') for p in league.player_dat[ign]: await ctx.send(f'{p}: {league.player_dat[ign][p]}')