feat: 首推与昨日冲突时改推并保证一月不重复
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -50,6 +50,7 @@ from daily.format_wecom import (
|
||||
from daily.agent_workflow import is_agent_mode, run_agent_workflow
|
||||
from daily.featured_pick import (
|
||||
apply_featured_pick,
|
||||
featured_identity_key,
|
||||
pick_command_from_featured,
|
||||
pick_why_from_featured,
|
||||
)
|
||||
@@ -638,7 +639,44 @@ def generate_report() -> tuple[str, str, Path, Path]:
|
||||
research_tech_items=wecom_tech_news if news_merged else None,
|
||||
boards_for_wecom=boards_for_wecom,
|
||||
)
|
||||
featured = apply_featured_pick(llm_input, date_str=date_str)
|
||||
pool_a: list[dict[str, Any]] = []
|
||||
pool_a_keys: set[str] = set()
|
||||
for board_name, items in boards_for_wecom.items():
|
||||
for item in items:
|
||||
keyed = dict(item)
|
||||
keyed["board"] = board_name
|
||||
pool_a.append(keyed)
|
||||
ik = featured_identity_key(keyed)
|
||||
if ik:
|
||||
pool_a_keys.add(ik)
|
||||
pool_b: list[dict[str, Any]] = []
|
||||
for board_name, raw_items, kind in (
|
||||
("skills_trending", trending, "skill"),
|
||||
("skills_hot", hot, "skill"),
|
||||
("github_trending", github_trending, "github"),
|
||||
("github_emerging", github_emerging, "github"),
|
||||
("github_topic", github_topic, "github"),
|
||||
):
|
||||
deep = board_select(
|
||||
board=board_name,
|
||||
items=raw_items,
|
||||
recent_keys=set(),
|
||||
limit=pool,
|
||||
pool_size=pool,
|
||||
kind=kind, # type: ignore[arg-type]
|
||||
)
|
||||
for item in deep:
|
||||
keyed = dict(item)
|
||||
keyed["board"] = board_name
|
||||
ik = featured_identity_key(keyed)
|
||||
if ik and ik not in pool_a_keys:
|
||||
pool_b.append(keyed)
|
||||
featured = apply_featured_pick(
|
||||
llm_input,
|
||||
date_str=date_str,
|
||||
pool_a=pool_a,
|
||||
pool_b=pool_b,
|
||||
)
|
||||
movement = llm_input["movement"]
|
||||
eff_mode = llm_input["effective_wecom_mode"]
|
||||
if news_merged:
|
||||
|
||||
Reference in New Issue
Block a user