Skip to content

Commit

Permalink
v1.5.6
Browse files Browse the repository at this point in the history
- 修复了添加命令可以不覆盖的情况下一个个加入

- 增加了按游玩人数排序游戏

- 移除了没有用的按群名片排序
  • Loading branch information
Ohdmire committed Oct 8, 2023
1 parent 8b671a7 commit 9ce724a
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 15 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ _✨ NoneBot 一个查询群友音游成分的插件 ✨_
### 指令表
| 指令 | 权限 | 需要@ | 范围 | 说明 |
|:-----:|:----:|:----:|:----:|:----:|
| `cf.add` | 群员 || 群聊 | `cf.add osu,malody` 会替换原来的游戏列表 |
| `cf.add` | 群员 || 群聊 | `cf.add osu,malody` |
| `cf.del` | 群员 || 群聊 | 删除用户输入的所有游戏列表 |
| `cf.list` | 群员 || 群聊 | 渲染图片 |
| `cf.update` | 群员 || 群聊 | 整理alias与游戏名,用于修改assets.json后不重新添加即可合并 |
Expand Down
8 changes: 2 additions & 6 deletions nonebot_plugin_playercheck/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import json
from pathlib import Path
import operator


require("nonebot_plugin_htmlrender")
from nonebot_plugin_htmlrender import template_to_pic
Expand Down Expand Up @@ -52,8 +52,6 @@ async def getlist (event: GroupMessageEvent, bot: Bot):
usercardname=i["nickname"]
user2cardname.update({str(userqq):str(usercardname)})

#按照群名片排序
user2cardname = dict(sorted(user2cardname.items(), key=operator.itemgetter(1)))

#playerdict就是jsondata
templates={"allgamelists":allgamelists, "jsondata":jsondata,"user2cardname" :user2cardname, "gamename2urldict":gamename2urldict}
Expand Down Expand Up @@ -83,8 +81,7 @@ async def adduser (event: GroupMessageEvent, args: Message = CommandArg()):
with open (str(data_path)+"/"+event.get_session_id().split("_")[1]+".json","r",encoding="utf-8") as f:
jsondata=json.load(f)
gamename2aliasdict=get_all_info(jsondata,assetspath=str(data_path)+"/"+"assets.json")[1]
i=addplayer(jsondata=jsondata,qq=event.get_user_id(),gamelists=args.extract_plain_text().split(","),gamename2aliasdict=gamename2aliasdict,filepath=str(data_path)+"/"+event.get_session_id().split("_")[1]+".json")
await add_user.send(str(i))
addplayer(jsondata=jsondata,qq=event.get_user_id(),gamelists=args.extract_plain_text().split(","),gamename2aliasdict=gamename2aliasdict,filepath=str(data_path)+"/"+event.get_session_id().split("_")[1]+".json")
await add_user.finish("添加完成")

update_alias = on_command("cf.update",priority=5, block=True)
Expand All @@ -95,5 +92,4 @@ async def updatalias (event: GroupMessageEvent):
gamename2aliasdict=get_all_info(jsondata,assetspath=str(data_path)+"/"+"assets.json")[1]
update_alias2name(jsondata=jsondata,gamename2aliasdict=gamename2aliasdict,filepath=str(data_path)+"/"+event.get_session_id().split("_")[1]+".json")
await update_alias.finish("更新alias完成")

#TO DO私聊部分
30 changes: 23 additions & 7 deletions nonebot_plugin_playercheck/datasource.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,21 @@ def get_all_info(jsondata,assetspath):
if is_convert==False:
allgamelists.append(i)
allgamelists=list(set(allgamelists)) #去重
allgamelists.sort() #排序

# 想增加个按游玩人数排序
# 先生成一个游戏名和游玩人数的字典
gamename2playernumdict={}
for i in allgamelists:
if i not in gamename2playernumdict.keys():
gamename2playernumdict.update({i:0}) #key是游戏名,value是游玩人数
for i in jsondata: #一个i是一个字典{"114514":["osu","malody"]}
for key,value in i.items(): #key是qq号,value是游戏列表
for j in value: #j单个游戏名
if j in gamename2playernumdict.keys():
gamename2playernumdict[j]+=1

# 按照游玩人数排序
allgamelists.sort(key=lambda x:gamename2playernumdict[x],reverse=True) #排序

return allgamelists,gamename2aliasdict,gamename2urldict

Expand Down Expand Up @@ -71,17 +85,20 @@ def addplayer(jsondata,qq,gamelists,filepath,gamename2aliasdict):
break
if is_convert==False:
newgamelists.append(i)

newgamelists=list(set(newgamelists)) #去重
#复制jsondata然后再新加入
newjsondata=[]
if jsondata == []:
newjsondata.append({qq:newgamelists})
else:
for i in jsondata:
for k in i.keys(): #k是字典,key是qq号,value是游戏列表
if k != qq:
newjsondata.append(i)
for i in jsondata: #一个i是一个字典
for j,k in i.items(): #j是qq号,k是游戏列表
if j != qq:
newjsondata.append(i)

newgamelists.extend(k) #k是原来的游戏列表
newgamelists=list(set(newgamelists)) #去重
newjsondata.append({qq:newgamelists})


Expand Down Expand Up @@ -114,4 +131,3 @@ def update_alias2name(jsondata,gamename2aliasdict,filepath):
with open(filepath,"w",encoding="utf-8") as f:
json.dump(newjsondata, f,ensure_ascii=False)


2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "nonebot-plugin-playercheck"
version = "1.5.3"
version = "1.5.6"
description = "基于 Nonebot2 的群友音游成分查询"
authors = ["Ohdmire","Proxyerium"]
license = "MIT"
Expand Down

0 comments on commit 9ce724a

Please sign in to comment.