Exemplo n.º 1
0
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)}')
Exemplo n.º 2
0
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!')
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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"]}`')
Exemplo n.º 6
0
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.'
        )
Exemplo n.º 7
0
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)}`")
Exemplo n.º 8
0
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"]}')
Exemplo n.º 9
0
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}`')
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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
Exemplo n.º 13
0
async def delist(ctx, ign, league_name=default_league):
    league = fm.League(league_name)
    league.delist(ign)
    await ctx.send(f'de-listed {ign}')
Exemplo n.º 14
0
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]}')