Пример #1
0
 def testNalgangPreciseDayReset(self):
     m1 = Member(None)
     m1.id = 1
     m1.guild = 2222
     m1.add_db()
     m1.name = "Alice"
     m1.nalgang("", datetime(2020, 5, 7, hour=5, minute=59, second=59))
     self.assertEqual(m1.get_point(), config.point_by_rank[0])
     self.assertEqual(m1.get_combo(), 1)
     m1.nalgang("", datetime(2020, 5, 7, hour=6, minute=00, second=00))
     self.assertEqual(m1.get_point(), config.point_by_rank[0] * 2)
     self.assertEqual(m1.get_combo(), 2)
Пример #2
0
 def testNalgangGuildDependent(self):
     m1 = Member(None)
     m1.id = 1
     m1.name = "Alice"
     m1.guild = 2222
     m1.add_db()
     m2 = Member(None)
     m2.id = 1
     m2.name = "Alice"
     m2.guild = 2223
     m2.add_db()
     m1.nalgang("")
     m2.nalgang("")
     self.assertEqual(m1.get_point(), config.point_by_rank[0])
     self.assertEqual(m2.get_point(), config.point_by_rank[0])
Пример #3
0
def nalgang_point():
    userID = request.args.get('id',type=int)
    userGuild =  request.args.get('guild',type=int)
    m = Member(None)
    m.id = userID
    m.guild = userGuild
    return str(m.get_point())
Пример #4
0
 def testDatabase(self):
     m1 = Member(None)
     m1.id_num = 1
     m1.name = "Alice"
     m1.add_db(point=123456, combo=654321)
     self.assertEqual(m1.get_point(), 123456)
     self.assertEqual(m1.get_combo(), 654321)
Пример #5
0
 def testNalgangDayReset(self):
     m1 = Member(None)
     m1.id = 1
     m1.name = "Alice"
     m1.guild = 2222
     m1.add_db()
     m1.nalgang("")
     self.assertEqual(m1.get_point(), config.point_by_rank[0])
     self.assertEqual(m1.get_combo(), 1)
     time1 = datetime.today() + timedelta(days=1)
     m1.nalgang("", time1)
     self.assertEqual(m1.get_point(), config.point_by_rank[0] * 2)
     self.assertEqual(m1.get_combo(), 2)
     time2 = datetime.today() + timedelta(days=2)
     m1.nalgang("", time2)
     self.assertEqual(m1.get_point(), config.point_by_rank[0] * 3)
     self.assertEqual(m1.get_combo(), 3)
Пример #6
0
async def add(ctx, user: discord.Member, delta: int):
    if not (ctx.author.id in admin_ids): return
    member = Member(user)
    prev_point = member.get_point()
    member.set_point(prev_point + delta)
    await ctx.send(
        f"Successfully added {delta} points to {user.display_name}, now {member.get_point()}"
    )
    return
Пример #7
0
 def testNalgangMonthBonus(self):
     m1 = Member(None)
     m1.id_num = 1
     m1.name = "Alice"
     m1.add_db(combo=29)
     m1.nalgang("")
     self.assertEqual(m1.get_point(),
                      config.point_by_rank[0] + config.month_bonus)
     self.assertEqual(m1.get_combo(), 30)
Пример #8
0
 def testNalgang(self):
     m1 = Member(None)
     m1.id_num = 1
     m1.name = "Alice"
     m1.add_db()
     m1.nalgang("")
     self.assertEqual(m1.get_point(), config.point_by_rank[0])
     self.assertEqual(m1.get_combo(), 1)
     self.assertIsNone(m1.nalgang(""))
Пример #9
0
 def testNalgangWeekBonus(self):
     m1 = Member(None)
     m1.id = 1
     m1.name = "Alice"
     m1.guild = 2222
     m1.add_db(combo=6)
     m1.nalgang("")
     self.assertEqual(m1.get_point(),
                      config.point_by_rank[0] + config.week_bonus)
     self.assertEqual(m1.get_combo(), 7)
Пример #10
0
async def force_setup(ctx, user: discord.Member, point, combo):
    if not (ctx.author.id in admin_ids): return
    member = Member(user)
    prev_point = member.get_point()
    prev_combo = member.get_combo()
    member.set_point(point)
    member.set_combo(combo)
    await ctx.send(
        "{:s}'s point and combo changed: {:d}, {:d} -> {:d}, {:d}".format(
            member.name, prev_point, prev_combo, point, combo))
    return
Пример #11
0
async def point(ctx, arg=None):
    if arg == None: user = ctx.author
    else: user = await commands.MemberConverter().convert(ctx, arg)

    member = Member(user)

    if not member.exist_db():
        await ctx.channel.send("등록되지 않은 사용자입니다.")
        return

    await ctx.channel.send("{:s}님의 날갱점수는 {:d}점입니다. {:d}연속 출석 중입니다.".format(
        member.name, member.get_point(), member.get_combo()))
    return
Пример #12
0
async def give_point(ctx, user: discord.Member, point: int):
    if point <= 0: return

    member_send = Member(ctx.author)
    member_receive = Member(user)
    if not (member_send.exist_db() and member_receive.exist_db()):
        await ctx.channel.send("등록되지 않은 사용자입니다.")
        return

    if member_send.get_point() < point:
        await ctx.channel.send("점수가 부족합니다.")
        return

    member_send.give_point(member_receive, point)
    await ctx.channel.send("짜잔! {:s}님이 {:s}님에게 {:d}점을 선물했습니다.".format(
        member_send.mention(), member_receive.mention(), point))
    return
Пример #13
0
async def api_point_add(ctx, user: discord.Member, delta: int):
    member = Member(user)
    if not member.exist_db():
        await ctx.channel.send("등록되지 않은 사용자입니다.")
        return
    prev_point = member.get_point()
    if (prev_point + delta < 0):
        await ctx.send("점수가 부족합니다.")
        return
    member.set_point(prev_point + delta)
    if (delta >= 0):
        await ctx.send(
            f"{user.display_name}에게 {delta}점이 추가되었습니다. 이제 {member.get_point()}점입니다."
        )
    else:
        await ctx.send(
            f"{user.display_name}이 {-delta}점 잃었습니다. 이제 {member.get_point()}점입니다."
        )
    return
Пример #14
0
async def look_up(ctx, user: discord.Member):
    if not (ctx.author.id in admin_ids): return
    member = Member(user)
    point = member.get_point()
    await ctx.send(str(point))
    return