mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
67ed9e9c81
* feat(linkedin-learning): add search / trending / course read commands (#1021) Closes #1021. Adds a new linkedin-learning site adapter with three read-only commands against LinkedIn Learning's public learning-api REST surface. Shares cookie session with linkedin.com; Learning queries are not subject to the people-search CUL. Commands: - linkedin-learning search <keywords> searchV2?q=keywords - linkedin-learning trending feedRecommendationGroups?q=learner - linkedin-learning course <slug> courses?q=slug Endpoints were discovered via browser network capture on /learning/search and /learning/<slug> pages: searchV2 returns a flat list of courses/videos/paths keyed by entityType, headline.title.text holds the canonical title, length is a TimeSpan in seconds, and rating is averaged from ratingSum/ratingCount when averageRating is missing. trending walks the carousels array on each recommendation group, flattens cards across them, dedups by slug, and respects --limit. Group is labeled with the carousel title (e.g. "Top picks for you") or the upstream annotation tag (TOP_PICKS). course accepts either a bare slug or a full /learning/<slug> URL, then hits /learning-api/courses?q=slug. The detail endpoint omits rating fields even when search reports them; this is documented in the adapter doc rather than fixed via a second /reviews fetch to keep the PR scoped to one endpoint per command. CUL caveat: Learning's API has no per-month limit, so dev iterations can be much more aggressive than the people-search adapter (#1649). Three commands were live-verified against a logged-in account with 60s sleeps between calls (conservative for first-pass safety). Tests: 28 unit tests across search.test.js (12), trending.test.js (6), course.test.js (10) cover URL construction, limit validation, author join, duration / rating coercion, row mapping, carousel flattening and dedup, slug parsing from URL forms, and the standard auth / empty / fetch-failure error paths. Live verified: - search "AI agent" --limit 3: 3 rows with title/instructor/rating - trending --limit 3: 3 personalized course picks - course agentic-ai-build-your-first-agentic-ai-system: title, 3932s duration, 18 videos, release date 2026-03-27 * fix(linkedin-learning): harden read result boundaries * fix(linkedin-learning): require course title evidence --------- Co-authored-by: jackwener <jakevingoo@gmail.com>