Install
openclaw skills install douban-self-taste-skillCollect, refresh, normalize, and analyze the user's own Douban history for taste analysis and recommendation reasoning. Use when the task involves the user's...
openclaw skills install douban-self-taste-skillCollect the user's own Douban history, keep a local cache fresh, and analyze it carefully.
Use this skill only for the user's own Douban data, including:
Do not use this skill for public-user scraping, whole-site crawling, hidden/private data claims, or MCP-server design.
Use these paths unless the user explicitly asks for a different layout:
.local/douban-self-taste/cookies/douban_cookies.json.local/douban-self-taste/cache/collections/.local/douban-self-taste/analysis/Treat the cache as reusable local working data. Do not scatter generated files across the repo.
Read references/storage-layout.md for exact file naming conventions.
Follow this order.
Check whether local crawl cache already exists for the requested category.
fetched_at timestamp is older than 7 days, crawling is needed.Prefer the smallest sufficient refresh.
Check whether the cookie file exists and is plausibly usable.
Treat cookies as unavailable when:
If cookies are unavailable or expired, ask the user for fresh cookies before crawling.
Do not pretend a crawl succeeded when authentication failed.
When cookies are available, crawl the user's own Douban shelves and store the refreshed result in local JSON cache files.
Use scripts/crawl_douban_self_history.py for logged-in crawling.
Use scripts/extract_douban_self_history.py when the user already has saved HTML files.
After crawling:
fetched_atOnly start analysis after confirming that either:
Use scripts/build_taste_profile.py to build an analysis-ready summary when helpful.
Write the summary into .local/douban-self-taste/analysis/ when the user wants a reusable analysis artifact.
Always pay extra attention to:
For scripts/build_taste_profile.py, use these summary rules:
items array in the profile output; keep full records in the crawl cache.recent_items as the newest dated items sorted by date descending, capped at 20 items.high_rated_items as all items tied at the user's highest observed rating within the focused dataset; if there are more than 20, keep only the most recent 20 by date.low_rated_items as all items tied at the user's lowest observed rating within the focused dataset; if there are more than 20, keep only the most recent 20 by date.When the user asks about one category, analyze that category first.
Examples:
Separate:
Do not overfit from tiny samples.
Start with factual scope:
Then provide analysis. Keep generated profile files compact enough for downstream LLM analysis; prefer concise summaries over repeating the entire dataset.
references/storage-layout.md for local file locations.references/data-sources.md for cache/cookie refresh logic.references/output-schema.md for normalized JSON structure.references/analysis-rubric.md before writing conclusions.scripts/crawl_douban_self_history.py to refresh local cache from logged-in pages.scripts/extract_douban_self_history.py to convert saved HTML files into normalized JSON.scripts/build_taste_profile.py to generate category-aware summaries.