From d69884c6f32b391b740ba26017fb761a6cbf6812 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 20 May 2024 20:48:32 +0800 Subject: [PATCH] fix yema --- plugins/sitestatistic/siteuserinfo/yema.py | 47 +++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/plugins/sitestatistic/siteuserinfo/yema.py b/plugins/sitestatistic/siteuserinfo/yema.py index 1cddf6b..251bc00 100644 --- a/plugins/sitestatistic/siteuserinfo/yema.py +++ b/plugins/sitestatistic/siteuserinfo/yema.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- import json from typing import Optional, Tuple +from urllib.parse import urljoin +from app.log import logger from app.plugins.sitestatistic.siteuserinfo import ISiteUserInfo, SITE_BASE_ORDER, SiteSchema from app.utils.string import StringUtils @@ -25,7 +27,11 @@ class TYemaSiteUserInfo(ISiteUserInfo): self._sys_mail_unread_page = None self._user_mail_unread_page = None self._mail_unread_params = {} - self._torrent_seeding_page = None + self._torrent_seeding_page = "api/torrent/fetchUserTorrentList" + self.__torrent_seeding_params = { + "status": "seeding", + "pageParam": {"current": 1, "pageSize": 40, "total": 40} + } self._torrent_seeding_headers = {} self._addition_headers = { "Content-Type": "application/json", @@ -78,7 +84,44 @@ class TYemaSiteUserInfo(ISiteUserInfo): """ 解析用户做种信息 """ - pass + if not html_text: + return None + seeding_info = json.loads(html_text) + if not seeding_info or not seeding_info.get("success"): + return None + torrents = seeding_info.get("data") or [] + page_seeding_size = 0 + page_seeding_info = [] + for info in torrents: + size = info.get("promotionUploadSize") + seeders = '0' + page_seeding_size += size + page_seeding_info.append([seeders, size]) + self.seeding += len(torrents) + self.seeding_size += page_seeding_size + self.seeding_info.extend(page_seeding_info) + + # 查询总做种数 + seeder_count = 0 + try: + result = self._get_page_content( + url=urljoin(self.site_url, "api/torrent/fetchUserTorrentCount"), + params={ + "status": "seeding", + } + ) + if result: + seeder_info = json.loads(result) + seeder_count = seeder_info.get("data") or 0 + except Exception as e: + logger.error(f"获取做种数失败: {str(e)}") + if not seeder_count: + return None + if self.seeding >= seeder_count: + return None + # 还有下一页 + self._torrent_seeding_params["pageParam"]["current"] += 1 + return "" def _parse_message_unread_links(self, html_text: str, msg_links: list) -> Optional[str]: """