Add tasks button when query daily note

This commit is contained in:
xtaodada 2024-02-19 20:55:13 +08:00
parent 763075cb4c
commit 0e496743a3
Signed by: xtaodada
GPG Key ID: 4CBB3F4FA8C85659
2 changed files with 16 additions and 2 deletions

View File

@ -2,8 +2,10 @@ from datetime import datetime
from typing import Optional, TYPE_CHECKING
from simnet.errors import DataNotPublic
from telegram import InlineKeyboardMarkup, InlineKeyboardButton
from telegram.constants import ChatAction
from telegram.ext import ConversationHandler, filters
from telegram.helpers import create_deep_linked_url
from core.plugin import Plugin, handler
from core.services.template.models import RenderResult
@ -92,9 +94,15 @@ class DailyNotePlugin(Plugin):
)
return render_result
@staticmethod
def get_task_button(bot_username: str) -> InlineKeyboardMarkup:
return InlineKeyboardMarkup(
[[InlineKeyboardButton(">> 设置状态提醒 <<", url=create_deep_linked_url(bot_username, "daily_note_tasks"))]]
)
@handler.command("dailynote", block=False)
@handler.message(filters.Regex("^当前状态(.*)"), block=False)
async def command_start(self, update: "Update", _: "ContextTypes.DEFAULT_TYPE") -> Optional[int]:
async def command_start(self, update: "Update", context: "ContextTypes.DEFAULT_TYPE") -> Optional[int]:
message = update.effective_message
user = update.effective_user
logger.info("用户 %s[%s] 每日便签命令请求", user.full_name, user.id)
@ -111,4 +119,9 @@ class DailyNotePlugin(Plugin):
return ConversationHandler.END
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO)
await render_result.reply_photo(message, filename=f"{client.player_id}.png", allow_sending_without_reply=True)
await render_result.reply_photo(
message,
filename=f"{client.player_id}.png",
allow_sending_without_reply=True,
reply_markup=self.get_task_button(context.bot.username),
)

View File

@ -40,6 +40,7 @@ class DailyNoteTasksPlugin(Plugin.Conversation):
@conversation.entry_point
@handler.command(command="dailynote_tasks", filters=filters.ChatType.PRIVATE, block=False)
@handler.command(command="daily_note_tasks", filters=filters.ChatType.PRIVATE, block=False)
@handler.command(command="start", filters=filters.Regex(r"daily_note_tasks$"), block=False)
async def command_start(self, update: Update, _: CallbackContext) -> int:
user = update.effective_user
message = update.effective_message