Ejemplo n.º 1
0
def processRank(slack, args):
    m = loldb.getmatches()
    # d = ranking.getRankings(m)
    td = theanorank.getRanking(m)
    # print d
    # print td
    mc = loldb.getgamecounts()
    lastg = loldb.getlastgameall()
    out = formatRanking(slack, td, mc, lastg)
    # legstr = ''
    # if numpy.min(mc.values()) < 3:
    #     legstr = '\n* has played less than 3 games'
    return simpleResp('```' + '\n'.join(out) + '```')
Ejemplo n.º 2
0
def processRank(slack, args):
    m = loldb.getmatches()
    # d = ranking.getRankings(m)
    td = theanorank.getRanking(m)
    # print d
    # print td
    mc = loldb.getgamecounts()
    lastg = loldb.getlastgameall()
    out = formatRanking(slack, td, mc, lastg)
    # legstr = ''
    # if numpy.min(mc.values()) < 3:
    #     legstr = '\n* has played less than 3 games'
    return simpleResp('```' + '\n'.join(out) + '```')
Ejemplo n.º 3
0
def processStats(f, slack, args, user):
    if len(args) == 0:
        uid = user
    elif len(args) != 1:
        return simpleResp("I don't understand...")
    else:
        if not args[0].startswith("<@"):
            return simpleResp("I don't know who %s is" % (args[0]))

        uid = args[0][2:-1]

    print "Stats UID: %s" % (uid)

    allusers = slack.users.list().body

    m = loldb.getmatches(f)
    gameCountsList = loldb.getgamecounts(f)
    if uid in gameCountsList:
        mc = gameCountsList[uid]
    else:
        mc = 0
    if mc != 0:
        lg = loldb.getlastgame(f, uid)
        td = theanorank.getRanking(m)
        wp = theanorank.getWinPercentage(m, uid)
        bw = theanorank.getBestWorst(m, uid)
        r1ta = "Skill level: %.1f" % (10.0 + (10.0 * td[uid]))
        r2ta = "Win percentage: %.1f" % wp
        r3ta = "Last match: %s" % (formatMatch(allusers, lg))

    nn = getNiceName(allusers, uid)

    r1t = "Stats for %s" % nn
    div = '-' * (len(r1t))
    r2t = "Matches played: %i" % (mc)
    allt = [r1t, div]
    if mc != 0:
        allt.append(r1ta)
        allt.append(r2t)
        allt.append(r2ta)
        allt.append(r3ta)
    else:
        allt.append(r2t)

    if mc > 1:
        r3t = "Best recent match: %s" % (formatMatch(allusers, bw[-1][1]))
        r4t = "Worst recent match: %s" % (formatMatch(allusers, bw[0][1]))
        allt.append(r3t)
        allt.append(r4t)

    return simpleResp('```' + '\n'.join(allt) + '```')
Ejemplo n.º 4
0
def processStats(f, slack, args, user):
    if len(args) == 0:
        uid = user
    elif len(args) != 1:
        return simpleResp("I don't understand...")
    else:
        if not args[0].startswith("<@"):
            return simpleResp("I don't know who %s is" % (args[0]))

        uid = args[0][2:-1]

    print "Stats UID: %s" % (uid)

    allusers = slack.users.list().body

    m = loldb.getmatches(f)
    gameCountsList = loldb.getgamecounts(f)
    if uid in gameCountsList:
        mc = gameCountsList[uid]
    else:
        mc = 0
    if mc != 0:
        lg = loldb.getlastgame(f, uid)
        td = theanorank.getRanking(m)
        wp = theanorank.getWinPercentage(m, uid)
        bw = theanorank.getBestWorst(m, uid)
        r1ta = "Skill level: %.1f" % (10.0 + (10.0 * td[uid]))
        r2ta = "Win percentage: %.1f" % wp
        r3ta = "Last match: %s" % (formatMatch(allusers, lg))

    nn = getNiceName(allusers, uid)

    r1t = "Stats for %s" % nn
    div = '-' * (len(r1t))
    r2t = "Matches played: %i" % (mc)
    allt = [r1t, div]
    if mc != 0:
        allt.append(r1ta)
        allt.append(r2t)
        allt.append(r2ta)
        allt.append(r3ta)
    else:
        allt.append(r2t)

    if mc > 1:
        r3t = "Best recent match: %s" % (formatMatch(allusers, bw[-1][1]))
        r4t = "Worst recent match: %s" % (formatMatch(allusers, bw[0][1]))
        allt.append(r3t)
        allt.append(r4t)

    return simpleResp('```' + '\n'.join(allt) + '```')
Ejemplo n.º 5
0
def processPredict(args):
    m = loldb.getmatches()
    d = theanorank.getRanking(m)

    players1 = []
    while len(args) > 0 and args[0].startswith('<@'):
        players1.append(args.pop(0)[2:-1])

    if len(args) == 0:
        return simpleResp("Was expecting a 'vs' at some point")

    args.pop(0)

    players2 = []
    while len(args) > 0 and args[0].startswith('<@'):
        players2.append(args.pop(0)[2:-1])

    r1 = []
    r2 = []
    for p in players1:
        if not p in d:
            return simpleResp("I don't know the rank of <@%s>" % p)
        r1.append(d[p])

    for p in players2:
        if not p in d:
            return simpleResp("I don't know the rank of <@%s>" % p)
        r2.append(d[p])

    sd = numpy.mean(r2) - numpy.mean(r1)

    pred = ranking.generatePrediction(sd, 10000)

    line1 = "I predict team 2 has a %.0f%% chance of winning" % (pred[0] *
                                                                 100.0)
    line2 = "The most likely outcome is %i - %i (%.0f%% chance)" % \
            (pred[1][0], pred[1][1], pred[2]*100.0)

    return simpleResp('\n'.join([line1, line2]))
Ejemplo n.º 6
0
def processPredict(args):
    m = loldb.getmatches()
    d = theanorank.getRanking(m)

    players1 = []
    while len(args) > 0 and args[0].startswith('<@'):
        players1.append(args.pop(0)[2:-1])

    if len(args) == 0:
        return simpleResp("Was expecting a 'vs' at some point")

    args.pop(0)

    players2 = []
    while len(args) > 0 and args[0].startswith('<@'):
        players2.append(args.pop(0)[2:-1])

    r1 = []
    r2 = []
    for p in players1:
        if not p in d:
            return simpleResp("I don't know the rank of <@%s>" % p)
        r1.append(d[p])

    for p in players2:
        if not p in d:
            return simpleResp("I don't know the rank of <@%s>" % p)
        r2.append(d[p])

    sd = numpy.mean(r2) - numpy.mean(r1)

    pred = ranking.generatePrediction(sd, 10000)

    line1 = "I predict team 2 has a %.0f%% chance of winning" % (pred[0]*100.0)
    line2 = "The most likely outcome is %i - %i (%.0f%% chance)" % \
            (pred[1][0], pred[1][1], pred[2]*100.0)

    return simpleResp('\n'.join([line1, line2]))
Ejemplo n.º 7
0
def processStats(slack, args, user):
    if len(args) == 0:
        uid = user
    elif len(args) != 1:
        return simpleResp("I don't understand...")
    else:
        if not args[0].startswith("<@"):
            return simpleResp("I don't know who %s is" % (args[0]))

        uid = args[0][2:-1]

    print "Stats UID: %s" % (uid)

    allusers = slack.users.list().body

    m = loldb.getmatches()
    matchStats = loldb.getMatchStats(uid, m)
    lg = loldb.getlastgame(uid)
    td = theanorank.getRanking(m)
    bw = theanorank.getBestWorst(m, uid)

    nn = getNiceName(allusers, uid)

    r1t = "Stats for %s" % nn
    div = '-' * (len(r1t))
    r1ta = "Skill level: %.1f" % (10.0 + (10.0 * td[uid]))
    r2t = "Won, Lost, Played: %s" % (matchStats,)
    r2ta = "Last match: %s" % (formatMatch(allusers, lg))

    allt = [r1t, div, r1ta, r2t, r2ta]

    if matchStats[2] > 1:
        r3t = "Best recent match: %s" % (formatMatch(allusers, bw[-1][1]))
        r4t = "Worst recent match: %s" % (formatMatch(allusers, bw[0][1]))
        allt.append(r3t)
        allt.append(r4t)

    return simpleResp('```' + '\n'.join(allt) + '```')
Ejemplo n.º 8
0
def processStats(slack, args, user):
    if len(args) == 0:
        uid = user
    elif len(args) != 1:
        return simpleResp("I don't understand...")
    else:
        if not args[0].startswith("<@"):
            return simpleResp("I don't know who %s is" % (args[0]))

        uid = args[0][2:-1]

    print "Stats UID: %s" % (uid)

    allusers = slack.users.list().body

    m = loldb.getmatches()
    matchStats = loldb.getMatchStats(uid, m)
    lg = loldb.getlastgame(uid)
    td = theanorank.getRanking(m)
    bw = theanorank.getBestWorst(m, uid)

    nn = getNiceName(allusers, uid)

    r1t = "Stats for %s" % nn
    div = '-' * (len(r1t))
    r1ta = "Skill level: %.1f" % (10.0 + (10.0 * td[uid]))
    r2t = "Won, Lost, Played: %s" % (matchStats, )
    r2ta = "Last match: %s" % (formatMatch(allusers, lg))

    allt = [r1t, div, r1ta, r2t, r2ta]

    if matchStats[2] > 1:
        r3t = "Best recent match: %s" % (formatMatch(allusers, bw[-1][1]))
        r4t = "Worst recent match: %s" % (formatMatch(allusers, bw[0][1]))
        allt.append(r3t)
        allt.append(r4t)

    return simpleResp('```' + '\n'.join(allt) + '```')