diff --git a/app/chain/site_manage.py b/app/chain/site_manage.py index 86028364..bc2691e5 100644 --- a/app/chain/site_manage.py +++ b/app/chain/site_manage.py @@ -20,17 +20,17 @@ class SiteManageChain(ChainBase): site_list = self._sites.list() if not site_list: self.post_message(title="没有维护任何站点信息!") - title = f"共有 {len(site_list)} 个站点,回复 `/site_disable` `[id]` 禁用站点:" + title = f"共有 {len(site_list)} 个站点,回复 `/site_disable` `[id]` 禁用站点,回复 `/site_enable` `[id]` 启用站点:" messages = [] for site in site_list: if site.render: - render_str = " [仿真]" + render_str = "【仿真】" else: render_str = "" if site.is_active: - messages.append(f"{site.id}. {site.name}({site.url}){render_str}") + messages.append(f"{site.id}. [{site.name}]{site.url}{render_str}") else: - messages.append(f"{site.id}. ~~{site.name}({site.url}){render_str}~~") + messages.append(f"{site.id}. ~~{site.name}~~") # 发送列表 self.post_message(title=title, text="\n".join(messages)) @@ -48,7 +48,30 @@ class SiteManageChain(ChainBase): if not site: self.post_message(title=f"站点编号 {site_id} 不存在!") return - # 删除站点 - self._sites.delete(site_id) + # 禁用站点 + self._sites.update(site_id, { + "is_active": False + }) + # 重新发送消息 + self.process() + + def enable(self, arg_str): + """ + 启用站点 + """ + if not arg_str: + return + arg_str = arg_str.strip() + if not arg_str.isdigit(): + return + site_id = int(arg_str) + site = self._sites.get(site_id) + if not site: + self.post_message(title=f"站点编号 {site_id} 不存在!") + return + # 禁用站点 + self._sites.update(site_id, { + "is_active": True + }) # 重新发送消息 self.process() diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 5d46c373..8bf92c94 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -307,11 +307,14 @@ class SubscribeChain(ChainBase): messages = [] for subscribe in subscribes: if subscribe.type == MediaType.MOVIE.value: - messages.append(f"{subscribe.id}. {subscribe.name}({subscribe.year})") + tmdb_link = f"https://www.themoviedb.org/movie/{subscribe.tmdbid}" + messages.append(f"{subscribe.id}. [{subscribe.name}({subscribe.year})]({tmdb_link})") else: - messages.append(f"{subscribe.id}. {subscribe.name}({subscribe.year})第{subscribe.season}季 " - f"[{subscribe.total_episode - (subscribe.lack_episode or subscribe.total_episode)}" - f"/{subscribe.total_episode}]") + tmdb_link = f"https://www.themoviedb.org/tv/{subscribe.tmdbid}" + messages.append(f"{subscribe.id}. [{subscribe.name}({subscribe.year})]({tmdb_link}) " + f"第{subscribe.season}季 " + f"【{subscribe.total_episode - (subscribe.lack_episode or subscribe.total_episode)}" + f"/{subscribe.total_episode}】") # 发送列表 self.post_message(title=title, text='\n'.join(messages)) diff --git a/app/command.py b/app/command.py index b5ae9c82..225ce410 100644 --- a/app/command.py +++ b/app/command.py @@ -84,6 +84,11 @@ class Command(metaclass=Singleton): "description": "查询站点", "data": {} }, + "/site_enable": { + "func": SiteManageChain().enable, + "description": "启用站点", + "data": {} + }, "/site_disable": { "func": SiteManageChain().disable, "description": "禁用站点", diff --git a/app/db/sites.py b/app/db/sites.py index d71654a8..1621c260 100644 --- a/app/db/sites.py +++ b/app/db/sites.py @@ -49,6 +49,14 @@ class Sites: """ return Site.delete(self._db, sid) + def update(self, sid: int, payload: dict): + """ + 更新站点 + """ + site = Site.get(self._db, sid) + site.update(self._db, payload) + return site + def get_by_domain(self, domain: str) -> Site: """ 按域名获取站点