zhenxun_bot/plugins/russian/data_source.py

43 lines
1.3 KiB
Python
Raw Normal View History

2021-11-04 16:11:50 +08:00
from .model import RussianUser
from typing import Optional
2021-06-30 19:50:55 +08:00
from utils.data_utils import init_rank
2021-11-04 16:11:50 +08:00
from utils.image_utils import CreateMat
2021-06-15 10:57:08 +08:00
2021-11-04 16:11:50 +08:00
async def rank(group_id: int, itype: str, num: int) -> Optional[CreateMat]:
2021-07-30 21:21:51 +08:00
all_users = await RussianUser.get_all_user(group_id)
all_user_id = [user.user_qq for user in all_users]
2021-06-15 10:57:08 +08:00
if itype == 'win_rank':
2021-11-04 16:11:50 +08:00
rank_name = '胜场排行榜'
2021-07-30 21:21:51 +08:00
all_user_data = [user.win_count for user in all_users]
2021-06-15 10:57:08 +08:00
elif itype == 'lose_rank':
2021-11-04 16:11:50 +08:00
rank_name = '败场排行榜'
2021-07-30 21:21:51 +08:00
all_user_data = [user.fail_count for user in all_users]
2021-06-15 10:57:08 +08:00
elif itype == 'make_money':
2021-11-04 16:11:50 +08:00
rank_name = '赢取金币排行榜'
2021-07-30 21:21:51 +08:00
all_user_data = [user.make_money for user in all_users]
2021-09-05 02:21:38 +08:00
elif itype == 'spend_money':
2021-11-04 16:11:50 +08:00
rank_name = '输掉金币排行榜'
2021-07-30 21:21:51 +08:00
all_user_data = [user.lose_money for user in all_users]
2021-09-05 02:21:38 +08:00
elif itype == 'max_winning_streak':
2021-11-04 16:11:50 +08:00
rank_name = '最高连胜排行榜'
2021-09-05 02:21:38 +08:00
all_user_data = [user.max_winning_streak for user in all_users]
else:
2021-11-04 16:11:50 +08:00
rank_name = '最高连败排行榜'
2021-09-05 02:21:38 +08:00
all_user_data = [user.max_losing_streak for user in all_users]
2021-11-04 16:11:50 +08:00
rst = None
2021-07-30 21:21:51 +08:00
if all_users:
2021-11-04 16:11:50 +08:00
rst = await init_rank(rank_name, all_user_id, all_user_data, group_id, num)
return rst
2021-06-15 10:57:08 +08:00