feat(pixiv): surface user_id + url on listings (id-pairing polish)#1300
Merged
feat(pixiv): surface user_id + url on listings (id-pairing polish)#1300
Conversation
a0bae02 to
b69990f
Compare
While auditing instagram/facebook/pixiv coverage gaps, found that pixiv listings already extract `user_id` and construct `url` per row but drop both fields from the table view (`columns` doesn't list them). The data is in the row object — only the column projection was missing. Per the listing↔detail id pairing convention (#1297), surface them so: - `user_id` round-trips from `ranking` / `search` → `user` / `illusts` - `url` is the canonical share link for every illust / user record Changes: - `ranking`: + user_id, + url - `search`: + user_id, + url - `illusts`: + url (user_id is the arg, no need to repeat per row) - `user`: + url No behavior change beyond the table view — JSON output already had these fields, so existing scripts that consume `-f json` keep working.
b69990f to
16cacf8
Compare
jackwener
added a commit
that referenced
this pull request
May 4, 2026
…(sweep) (#1305) * feat(youtube/xiaohongshu/xiaoe): surface dropped ids/url on listings (sweep) Round 8 same silent-column-drop class as #1300/#1301/#1302 — row already emits the id/url field but `columns` array forgot to project it, so table view drops it and agent loses the chain into detail commands. - youtube/feed: rename row.videoId → video_id (snake_case convention), add to columns. youtube/video accepts both URL and id, so url-based round-trip already worked, but exposing the canonical id removes the url-parse step for chained calls. - xiaohongshu/feed: pipeline map already extracts `id` from the homefeed payload, columns now lists it. - xiaoe/catalog: pipeline map already projects `url`, columns now lists it. xiaoe/detail takes a positional url, so this completes the round-trip explicitly. Also fixes one camelCase column violation on youtube/feed (videoId vs the project's snake_case convention as in twitter `is_retweet`/`created_at`, douban `subject_id`/`photo_id`, hupu `thread_title`). CI gate `check:listing-id-pairing` ✓ (34 sites, 77 listings, 10 exempt). typecheck clean. 114 tests pass for youtube + xiaohongshu. * fix(youtube): keep feed continuation ids after rename
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
While doing instagram/facebook/pixiv coverage gap analysis, I found that pixiv listings already extract
user_idand constructurlper row but drop both from the column list — soopencli pixiv rankingandopencli pixiv searchshow table output without the IDs that would let an agent chain the result intopixiv user/pixiv illusts/pixiv detail.This is the same class of bug as PR #1284 / #1285 / #1288 / #1289 / #1291 / #1293 — listing emits the id internally but doesn't surface it. Per the listing↔detail id pairing convention (#1297), the
idcolumns should be visible on listings so they round-trip cleanly.Changes
pixiv rankinguser_id,urlpixiv searchuser_id,urlpixiv illustsurl(user_id is the arg)pixiv userurlThe row objects already contained these fields — only the
columnsarray projection was missing. JSON output (-f json) already exposed them, so existing scripts keep working.Round-trip examples (after this PR)
Test plan
npx vitest run clis/pixiv— 18/18 pass (existing tests usetoMatchObject, unchanged)npx tsx src/build-manifest.ts— 658 entries, columns delta only