Skip to content

Commit 4dd341b

Browse files
committed
v2.16.5
增加连续签到奖励功能 解决部分会导致群发限制的问题 丢漂流瓶增加跳过审核参数 修复权限控制的漏洞
1 parent 42b7601 commit 4dd341b

File tree

15 files changed

+299
-303
lines changed

15 files changed

+299
-303
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ temp/
55
voice_file
66
config.json
77
*.db*
8+
m.py
89
!saya/EnglishTest/database/WordData.db
910
test.py
1011
config.yaml

database/db.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class Meta:
1919
class User(BaseModel):
2020
qq = CharField()
2121
is_sign = IntegerField(default=0)
22+
is_chat = IntegerField(default=0)
23+
continue_sign = IntegerField(default=0)
2224
sign_num = IntegerField(default=0)
2325
english_answer = IntegerField(default=0)
2426
gold = IntegerField(default=0)
@@ -34,7 +36,7 @@ class Meta:
3436
def init_user(qq):
3537
user = User.select().where(User.qq == qq)
3638
if not user.exists():
37-
p = User(qq=str(qq), gold=60)
39+
p = User(qq=str(qq))
3840
p.save()
3941
logger.info(f"已初始化{qq}")
4042

@@ -44,15 +46,24 @@ async def sign(qq):
4446
user = User.get(qq=str(qq))
4547
if user.is_sign:
4648
return False
47-
p = User.update(is_sign=1, sign_num=User.sign_num + 1).where(User.qq == qq)
49+
p = User.update(
50+
is_sign=1, sign_num=User.sign_num + 1, continue_sign=User.continue_sign + 1
51+
).where(User.qq == qq)
4852
p.execute()
4953
return True
5054

5155

5256
async def get_info(qq):
5357
init_user(qq)
5458
user = User.get(qq=str(qq))
55-
return [user.id, user.is_sign, user.sign_num, user.gold, user.talk_num]
59+
return [
60+
user.id,
61+
user.is_sign,
62+
user.sign_num,
63+
user.gold,
64+
user.talk_num,
65+
user.continue_sign,
66+
]
5667

5768

5869
async def add_gold(qq, num: int):
@@ -88,19 +99,21 @@ async def trans_all_gold(from_qq, to_qq) -> int:
8899

89100
async def add_talk(qq):
90101
init_user(qq)
91-
User.update(talk_num=User.talk_num + 1).where(User.qq == str(qq)).execute()
102+
User.update(talk_num=User.talk_num + 1, is_chat=1).where(User.qq == str(qq)).execute()
92103
return
93104

94105

95106
async def reset_sign():
107+
User.update(continue_sign=0).where(User.is_sign == 0).execute()
96108
User.update(is_sign=0).where(User.is_sign == 1).execute()
97109
return
98110

99111

100-
async def all_sign_num():
112+
async def activity_count():
101113
all_num = User.select().count()
102114
sign_num = User.select().where(User.is_sign == 1).count()
103-
return [sign_num, all_num]
115+
chat_num = User.select().where(User.is_chat == 1).count()
116+
return [all_num, sign_num, chat_num]
104117

105118

106119
async def give_all_gold(num: int):

database/migrator.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from playhouse.migrate import SqliteDatabase, SqliteMigrator, migrate, IntegerField
2+
3+
db = SqliteDatabase("./database/userData.db")
4+
migrator = SqliteMigrator(db)
5+
6+
migrate(
7+
migrator.add_column("user_info", "is_chat", IntegerField(default=0)),
8+
migrator.add_column("user_info", "continue_sign", IntegerField(default=0)),
9+
)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
authors = ["djkcyl <[email protected]>"]
33
description = ""
44
name = "abot-mahv2"
5-
version = "2.16.4"
5+
version = "2.16.5"
66

77
[tool.poetry.dependencies]
88
python = ">=3.9,<3.10"

saya/ArkNews/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ async def get_weibo_news(app: Ariadne):
138138
yaml_data["Basic"]["Permission"]["Master"], MessageChain.create(msg)
139139
)
140140
for group in group_list:
141-
await app.sendMessage(group, MessageChain.create(msg))
141+
await app.sendMessage(group, MessageChain.create([f"{group.id}\n"] + msg))
142142
await asyncio.sleep(random.uniform(2, 4))
143143

144144
await app.sendFriendMessage(
@@ -192,7 +192,6 @@ async def get_game_news(app: Ariadne):
192192
return
193193

194194
pushed_list["game"] = latest_list
195-
save_pushed_list()
196195

197196
group_list = (
198197
[await app.getGroup(yaml_data["Basic"]["Permission"]["DebugGroup"])]
@@ -214,7 +213,7 @@ async def get_game_news(app: Ariadne):
214213
yaml_data["Basic"]["Permission"]["Master"], MessageChain.create(msg)
215214
)
216215
for group in group_list:
217-
await app.sendMessage(group, MessageChain.create(msg))
216+
await app.sendMessage(group, MessageChain.create([f"{group.id}\n"] + msg))
218217
await asyncio.sleep(random.uniform(2, 4))
219218

220219
await app.sendFriendMessage(
@@ -223,5 +222,6 @@ async def get_game_news(app: Ariadne):
223222
)
224223

225224
await asyncio.sleep(3)
225+
save_pushed_list()
226226

227227
GAME_LOCK = False

0 commit comments

Comments
 (0)