From 2f3b7d010a768d2f3a997e207fc1b79680d25b27 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Mon, 9 Jan 2023 10:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=20=E5=AF=BC?= =?UTF-8?q?=E5=85=A5PTPP=E5=A4=87=E4=BB=BD=E6=96=87=E4=BB=B6=E6=98=AF?= =?UTF-8?q?=E4=B8=8D=E5=88=86=E7=AB=99=E7=82=B9=E6=9C=AA=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=88=B0UID=E4=BB=8D=E4=BF=9D=E5=AD=98=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pt_site/UtilityTool.py | 45 +++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/pt_site/UtilityTool.py b/pt_site/UtilityTool.py index 7789925..17e5066 100644 --- a/pt_site/UtilityTool.py +++ b/pt_site/UtilityTool.py @@ -14,13 +14,13 @@ from urllib.request import urlopen import aip import cloudscraper import dateutil.parser +import numpy as np import qbittorrentapi import requests import toml import transmission_rpc import urllib3.util.ssl_ import yaml -import numpy as np from django.db.models import QuerySet from lxml import etree from pypushdeer import PushDeer @@ -313,16 +313,16 @@ class PtSpider: # logger.info('查询站点信息:', site, site.url, url) if not site: return CommonResponse.error(msg='尚未支持此站点:{}'.format(url)) - icon = cookie.get('icon') - if icon: - site.logo = icon - site.save() + # icon = cookie.get('icon') + # if icon: + # site.logo = icon + # site.save() # my_site = MySite.objects.filter(site=site).first() # logger.info('查询我的站点:',my_site) # 如果有更新cookie,如果没有继续创建 my_level_str = cookie.get('info').get('levelName') if my_level_str: - my_level = re.sub(u'([^a-zA-Z_ ])', "", my_level_str) + my_level = re.sub(u'([^a-zA-Z_ ])', "", my_level_str).strip(" ") else: my_level = ' ' userdatas = cookie.get('userdatas') @@ -332,11 +332,29 @@ class PtSpider: passkey = cookie.get('passkey') logger.info('passkey: {}'.format(passkey)) - + uid = cookie.get('info').get('id') + if not uid: + try: + logger.info('备份文件未获取到User_id,尝试获取中') + scraper = self.get_scraper() + response = scraper.get( + url=site.url + site.page_control_panel, + cookies=cookie.get('cookies'), + ) + passkey = self.parse(response, site.my_passkey_rule)[0] + logger.info(f'Passkey:{passkey}') + uid = get_decimals(self.parse(response, site.my_uid_rule)[0]) + logger.info(f'uid:{uid}') + except Exception as e: + passkey_msg = f'{site.name} Uid获取失败,请手动添加!' + logger.info(passkey_msg) + return CommonResponse.error( + msg=f'{site.name} 信息导入失败! {passkey_msg}:{e}' + ) result = MySite.objects.update_or_create(site=site, defaults={ 'cookie': cookie.get('cookies'), 'passkey': passkey, - 'user_id': cookie.get('info').get('id'), + 'user_id': uid, 'my_level': my_level if my_level else ' ', 'time_join': time_join, 'seed': cookie.get('info').get('seeding') if cookie.get('info').get('seeding') else 0, @@ -344,16 +362,7 @@ class PtSpider: }) my_site = result[0] passkey_msg = '' - if not passkey: - try: - logger.info('PTPP未配置PASSKEY,尝试获取中') - response = self.send_request(my_site, site.url + site.page_control_panel) - passkey = self.parse(response, site.my_passkey_rule)[0] - my_site.passkey = passkey - my_site.save() - except Exception as e: - passkey_msg = '{} PassKey获取失败,请手动添加!'.format(site.name) - logger.info(passkey_msg) + logger.info('开始导入PTPP历史数据') for key, value in userdatas.items(): logger.info(key)