fix: 使用正确的广场接口 /business/square/list
问题根因: - 一直用 /business/member/square/list(成员广场接口) - 该接口加了 isPlatformShow=true 和 isAdmin=false 过滤 - 导致大量文章(包括今日最新文章)被过滤掉,只剩124篇 - 正确接口 /business/square/list?type=1 有2504篇文章,今日文章可见 修改内容: 1. 接口地址改为 /business/square/list(4处) 2. 去掉 isPlatformShow 和 isAdmin 参数,只保留 type=1 3. _is_today 时间字段优先用 publishTime(新接口主要返回此字段) 4. 排序和热度权重计算也统一用 publishTime 优先
This commit is contained in:
@@ -401,9 +401,11 @@ class NewsPlatformService:
|
|||||||
} | news_service._invalid_ids_cache
|
} | news_service._invalid_ids_cache
|
||||||
|
|
||||||
def _build(page, size=50):
|
def _build(page, size=50):
|
||||||
|
# Use /business/square/list (not /business/square/list)
|
||||||
|
# Only type=1 filter — isPlatformShow/isAdmin exclude org-less articles
|
||||||
p = self._build_form({
|
p = self._build_form({
|
||||||
"pageNum": page, "pageSize": size,
|
"pageNum": page, "pageSize": size,
|
||||||
"type": "1", "isPlatformShow": "true", "isAdmin": "false",
|
"type": "1",
|
||||||
}, cfg)
|
}, cfg)
|
||||||
if org_id:
|
if org_id:
|
||||||
p["orgId"] = org_id
|
p["orgId"] = org_id
|
||||||
@@ -421,7 +423,8 @@ class NewsPlatformService:
|
|||||||
return items
|
return items
|
||||||
|
|
||||||
def _is_today(item):
|
def _is_today(item):
|
||||||
t = item.get("createTime") or item.get("publishTime") or ""
|
# API returns publishTime (not createTime) for /business/square/list
|
||||||
|
t = item.get("publishTime") or item.get("createTime") or item.get("pushTime") or ""
|
||||||
if not t:
|
if not t:
|
||||||
return False
|
return False
|
||||||
try:
|
try:
|
||||||
@@ -436,7 +439,7 @@ class NewsPlatformService:
|
|||||||
async with httpx.AsyncClient(timeout=12) as c:
|
async with httpx.AsyncClient(timeout=12) as c:
|
||||||
for page in range(1, 4): # 第1页最新,逐页往前
|
for page in range(1, 4): # 第1页最新,逐页往前
|
||||||
r = await c.get(
|
r = await c.get(
|
||||||
f"{biz}/business/member/square/list",
|
f"{biz}/business/square/list",
|
||||||
headers=self._bearer(token),
|
headers=self._bearer(token),
|
||||||
params=_build(page),
|
params=_build(page),
|
||||||
)
|
)
|
||||||
@@ -463,7 +466,7 @@ class NewsPlatformService:
|
|||||||
if today_articles:
|
if today_articles:
|
||||||
# 今日文章:从新到旧排序(createTime 降序)
|
# 今日文章:从新到旧排序(createTime 降序)
|
||||||
today_articles.sort(
|
today_articles.sort(
|
||||||
key=lambda x: x.get("createTime") or x.get("publishTime") or "",
|
key=lambda x: x.get("publishTime") or x.get("createTime") or x.get("pushTime") or "",
|
||||||
reverse=True
|
reverse=True
|
||||||
)
|
)
|
||||||
# 去重(按 recordId)
|
# 去重(按 recordId)
|
||||||
@@ -502,7 +505,7 @@ class NewsPlatformService:
|
|||||||
try:
|
try:
|
||||||
async with httpx.AsyncClient(timeout=10) as _c:
|
async with httpx.AsyncClient(timeout=10) as _c:
|
||||||
_r = await _c.get(
|
_r = await _c.get(
|
||||||
f"{biz}/business/member/square/list",
|
f"{biz}/business/square/list",
|
||||||
headers=self._bearer(token),
|
headers=self._bearer(token),
|
||||||
params=_build(1),
|
params=_build(1),
|
||||||
)
|
)
|
||||||
@@ -537,7 +540,7 @@ class NewsPlatformService:
|
|||||||
try:
|
try:
|
||||||
async with httpx.AsyncClient(timeout=15) as c:
|
async with httpx.AsyncClient(timeout=15) as c:
|
||||||
r = await c.get(
|
r = await c.get(
|
||||||
f"{biz}/business/member/square/list",
|
f"{biz}/business/square/list",
|
||||||
headers=self._bearer(token),
|
headers=self._bearer(token),
|
||||||
params=_build(page),
|
params=_build(page),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user