fix wechat message
This commit is contained in:
@ -130,8 +130,10 @@ class ChainBase(AbstractSingleton, metaclass=Singleton):
|
|||||||
return self.run_module("post_medias_message", title=title, items=items, userid=userid)
|
return self.run_module("post_medias_message", title=title, items=items, userid=userid)
|
||||||
|
|
||||||
def post_torrents_message(self, title: str, items: List[Context],
|
def post_torrents_message(self, title: str, items: List[Context],
|
||||||
|
mediainfo: MediaInfo,
|
||||||
userid: Union[str, int] = None) -> Optional[bool]:
|
userid: Union[str, int] = None) -> Optional[bool]:
|
||||||
return self.run_module("post_torrents_message", title=title, items=items, userid=userid)
|
return self.run_module("post_torrents_message", title=title, mediainfo=mediainfo,
|
||||||
|
items=items, userid=userid)
|
||||||
|
|
||||||
def scrape_metadata(self, path: Path, mediainfo: MediaInfo) -> None:
|
def scrape_metadata(self, path: Path, mediainfo: MediaInfo) -> None:
|
||||||
return self.run_module("scrape_metadata", path=path, mediainfo=mediainfo)
|
return self.run_module("scrape_metadata", path=path, mediainfo=mediainfo)
|
||||||
|
@ -114,6 +114,7 @@ class UserMessageChain(ChainBase):
|
|||||||
logger.info(f"搜索到 {len(contexts)} 条数据,开始发送选择消息 ...")
|
logger.info(f"搜索到 {len(contexts)} 条数据,开始发送选择消息 ...")
|
||||||
self.__post_torrents_message(title=mediainfo.title,
|
self.__post_torrents_message(title=mediainfo.title,
|
||||||
items=contexts[:self._page_size],
|
items=contexts[:self._page_size],
|
||||||
|
mediainfo=mediainfo,
|
||||||
userid=userid,
|
userid=userid,
|
||||||
total=len(contexts))
|
total=len(contexts))
|
||||||
|
|
||||||
@ -212,6 +213,7 @@ class UserMessageChain(ChainBase):
|
|||||||
# 发送种子数据
|
# 发送种子数据
|
||||||
self.__post_torrents_message(title=self._current_media.title,
|
self.__post_torrents_message(title=self._current_media.title,
|
||||||
items=cache_list[start:end],
|
items=cache_list[start:end],
|
||||||
|
mediainfo=self._current_media,
|
||||||
userid=userid,
|
userid=userid,
|
||||||
total=len(cache_list))
|
total=len(cache_list))
|
||||||
else:
|
else:
|
||||||
@ -242,6 +244,7 @@ class UserMessageChain(ChainBase):
|
|||||||
if cache_type == "Torrent":
|
if cache_type == "Torrent":
|
||||||
# 发送种子数据
|
# 发送种子数据
|
||||||
self.__post_torrents_message(title=self._current_media.title,
|
self.__post_torrents_message(title=self._current_media.title,
|
||||||
|
mediainfo=self._current_media,
|
||||||
items=cache_list, userid=userid, total=total)
|
items=cache_list, userid=userid, total=total)
|
||||||
else:
|
else:
|
||||||
# 发送媒体数据
|
# 发送媒体数据
|
||||||
@ -305,12 +308,14 @@ class UserMessageChain(ChainBase):
|
|||||||
userid=userid
|
userid=userid
|
||||||
)
|
)
|
||||||
|
|
||||||
def __post_torrents_message(self, title: str, items: list, userid: str, total: int):
|
def __post_torrents_message(self, title: str, items: list,
|
||||||
|
mediainfo: MediaInfo, userid: str, total: int):
|
||||||
"""
|
"""
|
||||||
发送种子列表消息
|
发送种子列表消息
|
||||||
"""
|
"""
|
||||||
self.post_torrents_message(
|
self.post_torrents_message(
|
||||||
title=f"【{title}】共找到{total}条相关资源,请回复对应数字下载(0: 自动选择 p: 上一页 n: 下一页)",
|
title=f"【{title}】共找到{total}条相关资源,请回复对应数字下载(0: 自动选择 p: 上一页 n: 下一页)",
|
||||||
items=items,
|
items=items,
|
||||||
|
mediainfo=mediainfo,
|
||||||
userid=userid
|
userid=userid
|
||||||
)
|
)
|
||||||
|
@ -211,11 +211,13 @@ class _ModuleBase(metaclass=ABCMeta):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def post_torrents_message(self, title: str, items: List[Context],
|
def post_torrents_message(self, title: str, items: List[Context],
|
||||||
|
mediainfo: MediaInfo,
|
||||||
userid: Union[str, int] = None) -> Optional[bool]:
|
userid: Union[str, int] = None) -> Optional[bool]:
|
||||||
"""
|
"""
|
||||||
发送种子信息选择列表
|
发送种子信息选择列表
|
||||||
:param title: 标题
|
:param title: 标题
|
||||||
:param items: 消息列表
|
:param items: 消息列表
|
||||||
|
:param mediainfo: 识别的媒体信息
|
||||||
:param userid: 用户ID
|
:param userid: 用户ID
|
||||||
:return: 成功或失败
|
:return: 成功或失败
|
||||||
"""
|
"""
|
||||||
|
@ -114,15 +114,18 @@ class TelegramModule(_ModuleBase):
|
|||||||
return self.telegram.send_meidas_msg(title=title, medias=items, userid=userid)
|
return self.telegram.send_meidas_msg(title=title, medias=items, userid=userid)
|
||||||
|
|
||||||
def post_torrents_message(self, title: str, items: List[Context],
|
def post_torrents_message(self, title: str, items: List[Context],
|
||||||
|
mediainfo: MediaInfo = None,
|
||||||
userid: Union[str, int] = None) -> Optional[bool]:
|
userid: Union[str, int] = None) -> Optional[bool]:
|
||||||
"""
|
"""
|
||||||
发送种子信息选择列表
|
发送种子信息选择列表
|
||||||
:param title: 标题
|
:param title: 标题
|
||||||
:param items: 消息列表
|
:param items: 消息列表
|
||||||
|
:param mediainfo: 媒体信息
|
||||||
:param userid: 用户ID
|
:param userid: 用户ID
|
||||||
:return: 成功或失败
|
:return: 成功或失败
|
||||||
"""
|
"""
|
||||||
return self.telegram.send_torrents_msg(title=title, torrents=items, userid=userid)
|
return self.telegram.send_torrents_msg(title=title, torrents=items,
|
||||||
|
mediainfo=mediainfo, userid=userid)
|
||||||
|
|
||||||
def register_commands(self, commands: dict):
|
def register_commands(self, commands: dict):
|
||||||
"""
|
"""
|
||||||
|
@ -126,7 +126,9 @@ class Telegram(metaclass=Singleton):
|
|||||||
logger.error(f"发送消息失败:{msg_e}")
|
logger.error(f"发送消息失败:{msg_e}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def send_torrents_msg(self, torrents: List[Context], userid: str = "", title: str = "") -> Optional[bool]:
|
def send_torrents_msg(self, torrents: List[Context],
|
||||||
|
mediainfo: MediaInfo = None,
|
||||||
|
userid: str = "", title: str = "") -> Optional[bool]:
|
||||||
"""
|
"""
|
||||||
发送列表消息
|
发送列表消息
|
||||||
"""
|
"""
|
||||||
@ -151,7 +153,8 @@ class Telegram(metaclass=Singleton):
|
|||||||
else:
|
else:
|
||||||
chat_id = self._telegram_chat_id
|
chat_id = self._telegram_chat_id
|
||||||
|
|
||||||
return self.__send_request(userid=chat_id, caption=caption)
|
return self.__send_request(userid=chat_id, caption=caption,
|
||||||
|
image=mediainfo.get_message_image())
|
||||||
|
|
||||||
except Exception as msg_e:
|
except Exception as msg_e:
|
||||||
logger.error(f"发送消息失败:{msg_e}")
|
logger.error(f"发送消息失败:{msg_e}")
|
||||||
|
@ -142,11 +142,13 @@ class WechatModule(_ModuleBase):
|
|||||||
return self.wechat.send_medias_msg(medias=items, userid=userid)
|
return self.wechat.send_medias_msg(medias=items, userid=userid)
|
||||||
|
|
||||||
def post_torrents_message(self, title: str, items: List[Context],
|
def post_torrents_message(self, title: str, items: List[Context],
|
||||||
|
mediainfo: MediaInfo,
|
||||||
userid: Union[str, int] = None) -> Optional[bool]:
|
userid: Union[str, int] = None) -> Optional[bool]:
|
||||||
"""
|
"""
|
||||||
发送种子信息选择列表
|
发送种子信息选择列表
|
||||||
:param title: 标题
|
:param title: 标题
|
||||||
:param items: 消息列表
|
:param items: 消息列表
|
||||||
|
:param mediainfo: 媒体信息
|
||||||
:param userid: 用户ID
|
:param userid: 用户ID
|
||||||
:return: 成功或失败
|
:return: 成功或失败
|
||||||
"""
|
"""
|
||||||
|
@ -5,6 +5,7 @@ from typing import Optional, List
|
|||||||
|
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from app.core.context import MediaInfo, Context
|
from app.core.context import MediaInfo, Context
|
||||||
|
from app.core.metainfo import MetaInfo
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
from app.utils.http import RequestUtils
|
from app.utils.http import RequestUtils
|
||||||
from app.utils.singleton import Singleton
|
from app.utils.singleton import Singleton
|
||||||
@ -188,7 +189,8 @@ class WeChat(metaclass=Singleton):
|
|||||||
}
|
}
|
||||||
return self.__post_request(message_url, req_json)
|
return self.__post_request(message_url, req_json)
|
||||||
|
|
||||||
def send_torrents_msg(self, torrents: List[Context], userid: str = "", title: str = "") -> Optional[bool]:
|
def send_torrents_msg(self, torrents: List[Context], mediainfo: MediaInfo,
|
||||||
|
userid: str = "", title: str = "") -> Optional[bool]:
|
||||||
"""
|
"""
|
||||||
发送列表消息
|
发送列表消息
|
||||||
"""
|
"""
|
||||||
@ -208,10 +210,16 @@ class WeChat(metaclass=Singleton):
|
|||||||
index = 1
|
index = 1
|
||||||
for context in torrents:
|
for context in torrents:
|
||||||
torrent = context.torrent_info
|
torrent = context.torrent_info
|
||||||
|
meta = MetaInfo(title=torrent.title, subtitle=torrent.description)
|
||||||
|
torrent_title = f"【{torrent.site_name}】" \
|
||||||
|
f"{meta.get_season_episode_string()} " \
|
||||||
|
f"{meta.get_resource_type_string()} " \
|
||||||
|
f"{meta.get_volume_factor_string()} " \
|
||||||
|
f"{torrent.seeders}↑"
|
||||||
articles.append({
|
articles.append({
|
||||||
"title": f"{torrent.title}",
|
"title": torrent_title,
|
||||||
"description": f"【{torrent.site_name}】{torrent.description} "
|
"description": torrent.description if index == 1 else '',
|
||||||
f"{torrent.get_volume_factor_string()} {torrent.seeders}↑",
|
"picurl": mediainfo.get_message_image() if index == 1 else '',
|
||||||
"url": torrent.page_url
|
"url": torrent.page_url
|
||||||
})
|
})
|
||||||
index += 1
|
index += 1
|
||||||
|
Reference in New Issue
Block a user