diff --git a/plugins/doubanrank/__init__.py b/plugins/doubanrank/__init__.py index 08af328..b399fd7 100644 --- a/plugins/doubanrank/__init__.py +++ b/plugins/doubanrank/__init__.py @@ -50,14 +50,14 @@ class DoubanRank(_PluginBase): mediachain: MediaChain = None _scheduler = None _douban_address = { - 'movie-ustop': 'https://rsshub.app/douban/movie/ustop', - 'movie-weekly': 'https://rsshub.app/douban/movie/weekly', - 'movie-real-time': 'https://rsshub.app/douban/movie/weekly/movie_real_time_hotest', - 'show-domestic': 'https://rsshub.app/douban/movie/weekly/show_domestic', - 'movie-hot-gaia': 'https://rsshub.app/douban/movie/weekly/movie_hot_gaia', - 'tv-hot': 'https://rsshub.app/douban/movie/weekly/tv_hot', - 'movie-top250': 'https://rsshub.app/douban/movie/weekly/movie_top250', - 'movie-top250-full': 'https://rsshub.app/douban/list/movie_top250', + 'movie-ustop': '/douban/movie/ustop', + 'movie-weekly': '/douban/movie/weekly', + 'movie-real-time': '/douban/movie/weekly/movie_real_time_hotest', + 'show-domestic': '/douban/movie/weekly/show_domestic', + 'movie-hot-gaia': '/douban/movie/weekly/movie_hot_gaia', + 'tv-hot': '/douban/movie/weekly/tv_hot', + 'movie-top250': '/douban/movie/weekly/movie_top250', + 'movie-top250-full': '/douban/list/movie_top250', } _enabled = False _cron = "" @@ -68,6 +68,7 @@ class DoubanRank(_PluginBase): _clear = False _clearflag = False _proxy = False + _rsshub = "https://rsshub.app" def init_plugin(self, config: dict = None): self.downloadchain = DownloadChain() @@ -80,6 +81,7 @@ class DoubanRank(_PluginBase): self._proxy = config.get("proxy") self._onlyonce = config.get("onlyonce") self._vote = float(config.get("vote")) if config.get("vote") else 0 + self._rsshub = config.get("rsshub") or "https://rsshub.app" rss_addrs = config.get("rss_addrs") if rss_addrs: if isinstance(rss_addrs, str): @@ -243,7 +245,7 @@ class DoubanRank(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 6 + 'md': 4 }, 'content': [ { @@ -260,7 +262,7 @@ class DoubanRank(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 6 + 'md': 4 }, 'content': [ { @@ -272,6 +274,23 @@ class DoubanRank(_PluginBase): } } ] + }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 4 + }, + 'content': [ + { + 'component': 'VTextField', + 'props': { + 'model': 'rsshub', + 'label': 'RSSHub地址', + 'placeholder': 'https://rsshub.app' + } + } + ] } ] }, @@ -351,6 +370,7 @@ class DoubanRank(_PluginBase): "proxy": False, "onlyonce": False, "vote": "", + "rsshub": "https://rsshub.app", "ranks": [], "rss_addrs": "", "clear": False @@ -514,6 +534,7 @@ class DoubanRank(_PluginBase): "cron": self._cron, "onlyonce": self._onlyonce, "vote": self._vote, + "rsshub": self._rsshub, "ranks": self._ranks, "rss_addrs": '\n'.join(map(str, self._rss_addrs)), "clear": self._clear @@ -524,7 +545,10 @@ class DoubanRank(_PluginBase): 刷新RSS """ logger.info(f"开始刷新豆瓣榜单 ...") - addr_list = self._rss_addrs + [self._douban_address.get(rank) for rank in self._ranks] + # 构建完整的RSS地址 + rsshub_base = self._rsshub.rstrip('/') + rank_addrs = [f"{rsshub_base}{self._douban_address.get(rank)}" for rank in self._ranks if self._douban_address.get(rank)] + addr_list = self._rss_addrs + rank_addrs if not addr_list: logger.info(f"未设置榜单RSS地址") return