|
@@ -18,7 +18,7 @@ headers = {"Content-Type": "application/json"}
|
|
|
|
|
|
|
|
@retry(**retry_desc)
|
|
@retry(**retry_desc)
|
|
|
def get_article_detail(
|
|
def get_article_detail(
|
|
|
- article_link: str, is_count: bool=False, is_cache: bool=True
|
|
|
|
|
|
|
+ article_link: str, is_count: bool = False, is_cache: bool = True
|
|
|
) -> dict | None:
|
|
) -> dict | None:
|
|
|
"""
|
|
"""
|
|
|
get official article detail
|
|
get official article detail
|
|
@@ -29,7 +29,7 @@ def get_article_detail(
|
|
|
"content_link": article_link,
|
|
"content_link": article_link,
|
|
|
"is_count": is_count,
|
|
"is_count": is_count,
|
|
|
"is_ad": False,
|
|
"is_ad": False,
|
|
|
- "is_cache": is_cache
|
|
|
|
|
|
|
+ "is_cache": is_cache,
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
try:
|
|
try:
|
|
@@ -43,29 +43,22 @@ def get_article_detail(
|
|
|
task="get_official_article_detail",
|
|
task="get_official_article_detail",
|
|
|
function="get_official_article_detail",
|
|
function="get_official_article_detail",
|
|
|
message=f"API请求失败: {e}",
|
|
message=f"API请求失败: {e}",
|
|
|
- data={"link": article_link}
|
|
|
|
|
|
|
+ data={"link": article_link},
|
|
|
)
|
|
)
|
|
|
except json.JSONDecodeError as e:
|
|
except json.JSONDecodeError as e:
|
|
|
log(
|
|
log(
|
|
|
task="get_official_article_detail",
|
|
task="get_official_article_detail",
|
|
|
function="get_official_article_detail",
|
|
function="get_official_article_detail",
|
|
|
message=f"响应解析失败: {e}",
|
|
message=f"响应解析失败: {e}",
|
|
|
- data={"link": article_link}
|
|
|
|
|
|
|
+ data={"link": article_link},
|
|
|
)
|
|
)
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
|
@retry(**retry_desc)
|
|
@retry(**retry_desc)
|
|
|
-def get_article_list_from_account(
|
|
|
|
|
- account_id: str, index=None
|
|
|
|
|
-) -> dict | None:
|
|
|
|
|
|
|
+def get_article_list_from_account(account_id: str, index=None) -> dict | None:
|
|
|
target_url = f"{base_url}/blogger"
|
|
target_url = f"{base_url}/blogger"
|
|
|
- payload = json.dumps(
|
|
|
|
|
- {
|
|
|
|
|
- "account_id": account_id,
|
|
|
|
|
- "cursor": index
|
|
|
|
|
- }
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ payload = json.dumps({"account_id": account_id, "cursor": index})
|
|
|
try:
|
|
try:
|
|
|
response = requests.post(
|
|
response = requests.post(
|
|
|
url=target_url, headers=headers, data=payload, timeout=120
|
|
url=target_url, headers=headers, data=payload, timeout=120
|
|
@@ -77,14 +70,14 @@ def get_article_list_from_account(
|
|
|
task="get_official_account_article_list",
|
|
task="get_official_account_article_list",
|
|
|
function="get_official_account_article_list",
|
|
function="get_official_account_article_list",
|
|
|
message=f"API请求失败: {e}",
|
|
message=f"API请求失败: {e}",
|
|
|
- data={"gh_id": account_id}
|
|
|
|
|
|
|
+ data={"gh_id": account_id},
|
|
|
)
|
|
)
|
|
|
except json.JSONDecodeError as e:
|
|
except json.JSONDecodeError as e:
|
|
|
log(
|
|
log(
|
|
|
task="get_official_account_article_list",
|
|
task="get_official_account_article_list",
|
|
|
function="get_official_account_article_list",
|
|
function="get_official_account_article_list",
|
|
|
message=f"响应解析失败: {e}",
|
|
message=f"响应解析失败: {e}",
|
|
|
- data={"gh_id": account_id}
|
|
|
|
|
|
|
+ data={"gh_id": account_id},
|
|
|
)
|
|
)
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
@@ -97,7 +90,11 @@ def get_source_account_from_article(article_link) -> dict | None:
|
|
|
:return:
|
|
:return:
|
|
|
"""
|
|
"""
|
|
|
try:
|
|
try:
|
|
|
- response = requests.get(url=article_link, headers={'User-Agent': FakeUserAgent().random}, timeout=120)
|
|
|
|
|
|
|
+ response = requests.get(
|
|
|
|
|
+ url=article_link,
|
|
|
|
|
+ headers={"User-Agent": FakeUserAgent().random},
|
|
|
|
|
+ timeout=120,
|
|
|
|
|
+ )
|
|
|
response.raise_for_status()
|
|
response.raise_for_status()
|
|
|
html_text = response.text
|
|
html_text = response.text
|
|
|
regex_nickname = r"hit_nickname:\s*'([^']+)'"
|
|
regex_nickname = r"hit_nickname:\s*'([^']+)'"
|
|
@@ -106,10 +103,7 @@ def get_source_account_from_article(article_link) -> dict | None:
|
|
|
username = re.search(regex_username, html_text)
|
|
username = re.search(regex_username, html_text)
|
|
|
# 输出提取的结果
|
|
# 输出提取的结果
|
|
|
if nickname and username:
|
|
if nickname and username:
|
|
|
- return {
|
|
|
|
|
- 'name': nickname.group(1),
|
|
|
|
|
- 'gh_id': username.group(1)
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ return {"name": nickname.group(1), "gh_id": username.group(1)}
|
|
|
else:
|
|
else:
|
|
|
return {}
|
|
return {}
|
|
|
except requests.exceptions.RequestException as e:
|
|
except requests.exceptions.RequestException as e:
|
|
@@ -117,13 +111,13 @@ def get_source_account_from_article(article_link) -> dict | None:
|
|
|
task="get_source_account_from_article",
|
|
task="get_source_account_from_article",
|
|
|
function="get_source_account_from_article",
|
|
function="get_source_account_from_article",
|
|
|
message=f"API请求失败: {e}",
|
|
message=f"API请求失败: {e}",
|
|
|
- data={"link": article_link}
|
|
|
|
|
|
|
+ data={"link": article_link},
|
|
|
)
|
|
)
|
|
|
except json.JSONDecodeError as e:
|
|
except json.JSONDecodeError as e:
|
|
|
log(
|
|
log(
|
|
|
task="get_source_account_from_article",
|
|
task="get_source_account_from_article",
|
|
|
function="get_source_account_from_article",
|
|
function="get_source_account_from_article",
|
|
|
message=f"响应解析失败: {e}",
|
|
message=f"响应解析失败: {e}",
|
|
|
- data={"link": article_link}
|
|
|
|
|
|
|
+ data={"link": article_link},
|
|
|
)
|
|
)
|
|
|
- return None
|
|
|
|
|
|
|
+ return None
|