|
@@ -11,6 +11,7 @@ from pyrogram.types import Message, User
|
|
|
from wbb import app, log
|
|
from wbb import app, log
|
|
|
from wbb.core.decorators.permissions import adminsOnly
|
|
from wbb.core.decorators.permissions import adminsOnly
|
|
|
from wbb.services.member_identity import non_mention_account_name
|
|
from wbb.services.member_identity import non_mention_account_name
|
|
|
|
|
+from wbb.services.message_cleanup import schedule_group_cleanup
|
|
|
from wbb.services.point_settings import (
|
|
from wbb.services.point_settings import (
|
|
|
CHECKIN_BUTTON_TEXT,
|
|
CHECKIN_BUTTON_TEXT,
|
|
|
apply_point_rules,
|
|
apply_point_rules,
|
|
@@ -89,6 +90,12 @@ def _message_content(message: Message) -> str:
|
|
|
return f"media:{unique_id}" if unique_id else ""
|
|
return f"media:{unique_id}" if unique_id else ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+async def _reply_checkin(message: Message, text: str) -> Message:
|
|
|
|
|
+ response = await message.reply_text(text)
|
|
|
|
|
+ schedule_group_cleanup(message, response)
|
|
|
|
|
+ return response
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
async def _resolve_target(message: Message, raw: str | None = None) -> User | None:
|
|
async def _resolve_target(message: Message, raw: str | None = None) -> User | None:
|
|
|
if message.reply_to_message and message.reply_to_message.from_user:
|
|
if message.reply_to_message and message.reply_to_message.from_user:
|
|
|
return message.reply_to_message.from_user
|
|
return message.reply_to_message.from_user
|
|
@@ -131,7 +138,7 @@ async def points_balance_command(_, message: Message):
|
|
|
)
|
|
)
|
|
|
async def points_checkin_command(_, message: Message):
|
|
async def points_checkin_command(_, message: Message):
|
|
|
if not message.from_user:
|
|
if not message.from_user:
|
|
|
- return await message.reply_text("匿名管理员无法签到。")
|
|
|
|
|
|
|
+ return await _reply_checkin(message, "匿名管理员无法签到。")
|
|
|
try:
|
|
try:
|
|
|
account, created = await award_checkin(
|
|
account, created = await award_checkin(
|
|
|
chat_id=message.chat.id,
|
|
chat_id=message.chat.id,
|
|
@@ -141,15 +148,17 @@ async def points_checkin_command(_, message: Message):
|
|
|
display_name=_user_display_name(message.from_user),
|
|
display_name=_user_display_name(message.from_user),
|
|
|
)
|
|
)
|
|
|
except PointsError as exc:
|
|
except PointsError as exc:
|
|
|
- return await message.reply_text(str(exc))
|
|
|
|
|
|
|
+ return await _reply_checkin(message, str(exc))
|
|
|
if not created:
|
|
if not created:
|
|
|
- return await message.reply_text(
|
|
|
|
|
|
|
+ return await _reply_checkin(
|
|
|
|
|
+ message,
|
|
|
f"你今天已经签到过了,当前余额:{int(account['balance'])}。"
|
|
f"你今天已经签到过了,当前余额:{int(account['balance'])}。"
|
|
|
)
|
|
)
|
|
|
rules = await get_point_rules(message.chat.id)
|
|
rules = await get_point_rules(message.chat.id)
|
|
|
- return await message.reply_text(
|
|
|
|
|
|
|
+ return await _reply_checkin(
|
|
|
|
|
+ message,
|
|
|
f"签到成功:+{rules['checkin_points']} 积分,"
|
|
f"签到成功:+{rules['checkin_points']} 积分,"
|
|
|
- f"当前余额:{int(account['balance'])}。"
|
|
|
|
|
|
|
+ f"当前余额:{int(account['balance'])}。",
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|