mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-25 09:37:30 +00:00
🎨 Update url, run repeat job interval and log in post.py
This commit is contained in:
parent
62e932d8a5
commit
efc3dedc74
@ -51,7 +51,7 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
self.last_post_id_list: List[int] = []
|
self.last_post_id_list: List[int] = []
|
||||||
if config.channels and len(config.channels) > 0:
|
if config.channels and len(config.channels) > 0:
|
||||||
logger.success("文章定时推送处理已经开启")
|
logger.success("文章定时推送处理已经开启")
|
||||||
bot.app.job_queue.run_repeating(self.task, 60 * 3)
|
bot.app.job_queue.run_repeating(self.task, 60)
|
||||||
|
|
||||||
async def task(self, context: CallbackContext):
|
async def task(self, context: CallbackContext):
|
||||||
temp_post_id_list: List[int] = []
|
temp_post_id_list: List[int] = []
|
||||||
@ -60,7 +60,7 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
try:
|
try:
|
||||||
official_recommended_posts = await self.bbs.get_official_recommended_posts(2)
|
official_recommended_posts = await self.bbs.get_official_recommended_posts(2)
|
||||||
except APIHelperException as exc:
|
except APIHelperException as exc:
|
||||||
logger.error(f"获取首页推荐信息失败 {repr(exc)}")
|
logger.error("获取首页推荐信息失败 %s", str(exc))
|
||||||
return
|
return
|
||||||
|
|
||||||
for data_list in official_recommended_posts["list"]:
|
for data_list in official_recommended_posts["list"]:
|
||||||
@ -84,13 +84,13 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
try:
|
try:
|
||||||
post_info = await self.bbs.get_post_info(2, post_id)
|
post_info = await self.bbs.get_post_info(2, post_id)
|
||||||
except APIHelperException as exc:
|
except APIHelperException as exc:
|
||||||
logger.error(f"获取文章信息失败 {repr(exc)}")
|
logger.error("获取文章信息失败 %s", str(exc))
|
||||||
text = f"获取 post_id[{post_id}] 文章信息失败 {repr(exc)}"
|
text = f"获取 post_id[{post_id}] 文章信息失败 {str(exc)}"
|
||||||
for user in config.admins:
|
for user in config.admins:
|
||||||
try:
|
try:
|
||||||
await context.bot.send_message(user.user_id, text)
|
await context.bot.send_message(user.user_id, text)
|
||||||
except BadRequest as _exc:
|
except BadRequest as _exc:
|
||||||
logger.error(f"发送消息失败 {repr(_exc)}")
|
logger.error("发送消息失败 %s", str(_exc))
|
||||||
return
|
return
|
||||||
buttons = [
|
buttons = [
|
||||||
[
|
[
|
||||||
@ -98,7 +98,7 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
InlineKeyboardButton("取消", callback_data=f"post_admin|cancel|{post_info.post_id}"),
|
InlineKeyboardButton("取消", callback_data=f"post_admin|cancel|{post_info.post_id}"),
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
url = f"https://bbs.mihoyo.com/ys/article/{post_info.post_id}"
|
url = f"https://www.miyoushe.com/ys/article/{post_info.post_id}"
|
||||||
text = f"发现官网推荐文章 <a href='{url}'>{post_info.subject}</a>\n是否开始处理"
|
text = f"发现官网推荐文章 <a href='{url}'>{post_info.subject}</a>\n是否开始处理"
|
||||||
for user in config.admins:
|
for user in config.admins:
|
||||||
try:
|
try:
|
||||||
@ -106,7 +106,7 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
user.user_id, text, parse_mode=ParseMode.HTML, reply_markup=InlineKeyboardMarkup(buttons)
|
user.user_id, text, parse_mode=ParseMode.HTML, reply_markup=InlineKeyboardMarkup(buttons)
|
||||||
)
|
)
|
||||||
except BadRequest as exc:
|
except BadRequest as exc:
|
||||||
logger.error(f"发送消息失败 {repr(exc)}")
|
logger.error("发送消息失败 %s", exc.message)
|
||||||
|
|
||||||
@conversation.entry_point
|
@conversation.entry_point
|
||||||
@handler.callback_query(pattern=r"^post_admin\|", block=False)
|
@handler.callback_query(pattern=r"^post_admin\|", block=False)
|
||||||
@ -120,13 +120,13 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
callback_query = update.callback_query
|
callback_query = update.callback_query
|
||||||
user = callback_query.from_user
|
user = callback_query.from_user
|
||||||
message = callback_query.message
|
message = callback_query.message
|
||||||
logger.info(f"用户 {user.full_name}[{user.id}] POST命令请求")
|
logger.info("用户 %s[%s] POST命令请求", user.full_name, user.id)
|
||||||
|
|
||||||
async def get_post_admin_callback(callback_query_data: str) -> Tuple[str, int]:
|
async def get_post_admin_callback(callback_query_data: str) -> Tuple[str, int]:
|
||||||
_data = callback_query_data.split("|")
|
_data = callback_query_data.split("|")
|
||||||
_result = _data[1]
|
_result = _data[1]
|
||||||
_post_id = int(_data[2])
|
_post_id = int(_data[2])
|
||||||
logger.debug(f"callback_query_data函数返回 result[{_result}] post_id[{_post_id}]")
|
logger.debug("callback_query_data函数返回 result[%s] post_id[%s]", _result, _post_id)
|
||||||
return _result, _post_id
|
return _result, _post_id
|
||||||
|
|
||||||
result, post_id = await get_post_admin_callback(callback_query.data)
|
result, post_id = await get_post_admin_callback(callback_query.data)
|
||||||
@ -151,7 +151,7 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
async def command_start(self, update: Update, context: CallbackContext) -> int:
|
async def command_start(self, update: Update, context: CallbackContext) -> int:
|
||||||
user = update.effective_user
|
user = update.effective_user
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
logger.info(f"用户 {user.full_name}[{user.id}] POST命令请求")
|
logger.info("用户 %s[%s] POST命令请求", user.full_name, user.id)
|
||||||
post_handler_data = context.chat_data.get("post_handler_data")
|
post_handler_data = context.chat_data.get("post_handler_data")
|
||||||
if post_handler_data is None:
|
if post_handler_data is None:
|
||||||
post_handler_data = PostHandlerData()
|
post_handler_data = PostHandlerData()
|
||||||
@ -187,10 +187,10 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
post_text = f"*{escape_markdown(post_subject, version=2)}*\n" f"\n"
|
post_text = f"*{escape_markdown(post_subject, version=2)}*\n" f"\n"
|
||||||
for p in post_p:
|
for p in post_p:
|
||||||
post_text += f"{escape_markdown(p.get_text(), version=2)}\n"
|
post_text += f"{escape_markdown(p.get_text(), version=2)}\n"
|
||||||
post_text += f"[source](https://bbs.mihoyo.com/ys/article/{post_id})"
|
post_text += f"[source](https://www.miyoushe.com/ys/article/{post_id})"
|
||||||
if len(post_text) >= MessageLimit.CAPTION_LENGTH:
|
if len(post_text) >= MessageLimit.CAPTION_LENGTH:
|
||||||
await message.reply_markdown_v2(post_text)
|
await message.reply_markdown_v2(post_text)
|
||||||
post_text = post_text[: MessageLimit.CAPTION_LENGTH]
|
post_text = post_text[: MessageLimit.CAPTION_LENGTH - 16 * 3] # 预留一些字
|
||||||
await message.reply_text(f"警告!图片字符描述已经超过 {MessageLimit.CAPTION_LENGTH} 个字,已经切割并发送原文本")
|
await message.reply_text(f"警告!图片字符描述已经超过 {MessageLimit.CAPTION_LENGTH} 个字,已经切割并发送原文本")
|
||||||
try:
|
try:
|
||||||
if len(post_images) > 1:
|
if len(post_images) > 1:
|
||||||
@ -204,7 +204,7 @@ class Post(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
image = post_images[0]
|
image = post_images[0]
|
||||||
await message.reply_photo(image.data, caption=post_text, parse_mode=ParseMode.MARKDOWN_V2)
|
await message.reply_photo(image.data, caption=post_text, parse_mode=ParseMode.MARKDOWN_V2)
|
||||||
else:
|
else:
|
||||||
await message.reply_text("图片获取错误", reply_markup=ReplyKeyboardRemove()) # excuse?
|
await message.reply_text(post_text, reply_markup=ReplyKeyboardRemove())
|
||||||
return ConversationHandler.END
|
return ConversationHandler.END
|
||||||
except (BadRequest, TypeError) as exc:
|
except (BadRequest, TypeError) as exc:
|
||||||
await message.reply_text("发送图片时发生错误,错误信息已经写到日记", reply_markup=ReplyKeyboardRemove())
|
await message.reply_text("发送图片时发生错误,错误信息已经写到日记", reply_markup=ReplyKeyboardRemove())
|
||||||
|
Loading…
Reference in New Issue
Block a user