更新 点点赚_api.py

This commit is contained in:
chickliu 2024-11-18 22:48:06 +08:00
parent 70670de652
commit f993db0f77

View File

@ -55,7 +55,7 @@ import uuid
from urllib.parse import urlparse, parse_qs,quote from urllib.parse import urlparse, parse_qs,quote
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] ===> %(message)s') logging.basicConfig(level=logging.INFO, format='[%(levelname)s] ===> %(message)s')
code = "点点赚_api版" code = "点点赚_api版"
ver = "1.0" ver = "1.1"
envname = "yuanshen_api" envname = "yuanshen_api"
debug = False #debug模式 开启即从脚本内部获取环境变量 debug = False #debug模式 开启即从脚本内部获取环境变量
@ -232,26 +232,31 @@ class env():
return encrypted_base64 return encrypted_base64
from functools import wraps
def retry(exceptions = Exception, tries=5, delay=2, backoff=2):
def retry_(max_retries=3, retry_delay=1): """
简单的重试 module如果重试失败则抛出错误
"""
def decorator(func): def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
retries = 0 # 每次调用时初始化独立的重试计数和延迟时间
while retries < max_retries: _tries, _delay = tries, delay
while _tries > 1:
try: try:
return func(*args, **kwargs) return func(*args, **kwargs)
except requests.exceptions.RequestException as e: except exceptions as e:
retries += 1 print(f"发生错误:[{e}], Retrying in {_delay} seconds ...")
if retries < max_retries: time.sleep(_delay)
logging.info(f"发生错误:将在{retry_delay}秒后重试") _tries -= 1
time.sleep(retry_delay) _delay *= backoff
else: # 最后一次尝试
logging.info("已超过最大重试次数!") return func(*args, **kwargs)
raise
return wrapper return wrapper
return decorator return decorator
class yuanshen: class yuanshen:
def __init__(self,cookie,apiurl) -> None: def __init__(self,cookie,apiurl) -> None:
self.biz = ['MzA4MjQ5NDMwNg==','MzI2OTA0NzQ5OA==','MzU4OTQ3MDc0Mg=='] self.biz = ['MzA4MjQ5NDMwNg==','MzI2OTA0NzQ5OA==','MzU4OTQ3MDc0Mg==']
@ -279,7 +284,7 @@ class yuanshen:
r = requests.post(url,json=data).json() r = requests.post(url,json=data).json()
logging.info(f"遇到检测文章:推送结果[{r}]") logging.info(f"遇到检测文章:推送结果[{r}]")
@retry_(max_retries=3, retry_delay=1) @retry()
def getreadurl(self): def getreadurl(self):
url = f"http://{self.baseurl}/index/mob/get_read_qr.html" url = f"http://{self.baseurl}/index/mob/get_read_qr.html"
r = requests.get(url,headers=self.headers,cookies=self.cookie).json() r = requests.get(url,headers=self.headers,cookies=self.cookie).json()
@ -309,7 +314,7 @@ class yuanshen:
else: else:
logging.warning(f"❌️未获取到阅读链接[{r}]") logging.warning(f"❌️未获取到阅读链接[{r}]")
return False return False
@retry_(max_retries=3, retry_delay=1) @retry()
def read(self): def read(self):
url = f"http://{self.domain}/index/index/get_article.html" url = f"http://{self.domain}/index/index/get_article.html"
url2 = f"http://{self.domain}/index/index/auth_record.html" url2 = f"http://{self.domain}/index/index/auth_record.html"
@ -466,14 +471,17 @@ class yuanshen:
def main(self): def main(self):
self.login() try:
if self.getreadurl(): self.login()
print("="*30) if self.getreadurl():
print("="*30)
time.sleep(random.randint(3,5))
self.read()
time.sleep(random.randint(3,5)) time.sleep(random.randint(3,5))
self.read() print("="*30)
time.sleep(random.randint(3,5)) self.userinfo()
print("="*30) except Exception as e:
self.userinfo() logging.error(f'发生错误:{e}')