Add X Tweet

bklit/bklit-ui/.agents/skills/add-x-tweet

作者 bklit5d699897b2dde26374cf15501dbaadbc52cea982无许可证1.7K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库13天前更新

Add X (Twitter) testimonials to the bklit homepage. Fetches username, avatar, and tweet text from a status URL and appends an entry to apps/web/lib/testimonials.ts. Use when the user shares an x.com/twitter.com tweet URL to add or replace a testimonial.

AI 生成的概览

抓取 X(Twitter)推文元数据,并将该推文作为推荐语条目追加到项目的推荐语文件中。

功能
该技能接收一个或多个 x.com 或 twitter.com 状态链接,运行自带的 Node 脚本获取推文作者姓名、账号、头像和正文,然后编辑 apps/web/lib/testimonials.ts,新增或替换一条推荐语条目。它还说明了首页瀑布流网格的排序规则、头像链接升级方式,以及用 TypeScript 类型检查进行验证。最终产物是 bklit 网页应用中更新后的推荐语源文件。
适用场景
当用户分享 X 或 Twitter 状态链接并希望将其添加为首页推荐语,或要求替换、优先排序、重新排列现有推荐语时使用。
运行要求
需要 Node.js 来运行自带的 scripts/fetch-tweet.mjs,需要访问 FxTwitter API 或 Twitter oEmbed 的网络权限,以及包含 apps/web/lib/testimonials.ts 的代码仓库。无需 API 密钥;验证使用 npx tsc。

Add X Tweet Testimonial

Add social proof tweets to the homepage testimonial grid.

When to use

  • User provides one or more https://x.com/.../status/... URLs
  • User asks to replace, prioritize, or reorder testimonials
  • User says "add tweet", "new testimonial", or similar

Workflow

1. Fetch tweet metadata

Run the fetch script from the repo root (requires network):

bash
node .agents/skills/add-x-tweet/scripts/fetch-tweet.mjs "https://x.com/user/status/123..."

For multiple URLs, pass each URL or run once per URL.

The script prints JSON:

json
{  "id": "123...",  "url": "https://x.com/user/status/123...",  "author": { "name": "...", "handle": "@user", "avatar": "https://pbs.twimg.com/...", "verified": true },  "content": "tweet text without @uixmat prefix"}

Fallback: If the script fails, use Twitter oEmbed:

bash
curl -sL "https://publish.twitter.com/oembed?url=TWEET_URL&omit_script=1"

Parse author_name and HTML <p> for text. Avatar still needs fxtwitter or manual profile image URL.

2. Edit apps/web/lib/testimonials.ts

  • Use status id as id (numeric string from URL)
  • Set url to the canonical tweet URL (no query params)
  • Run avatar through twitterAvatarUrl() (upgrades _200x200 → _400x400)
  • Strip leading @uixmat from content; trim whitespace
  • Shorten very long tweets if they include trailing promo links (keep the praise, drop link-only tails)

3. Ordering rules

Masonry uses CSS columns (top-to-bottom per column). On lg, indices 0–2 = column 1 top 3, 3–5 = column 2 top 3, 6–8 = column 3 top 3.

  • Prioritize when asked: place in the next open slot among indices 0–8 without duplicating ids
  • Replace when asked: remove the old entry (match by handle or old id) before adding the new one
  • Set author.verified from script output (author.verification.verified via FxTwitter)

4. Collapsed grid

The homepage shows testimonialCollapsedCount (6) cards before See more. No change needed when adding tweets unless the user asks to change visible rows.

5. Verify

bash
cd apps/web && npx tsc --noEmit -p tsconfig.json

Open homepage — grid is 3 columns, bottom fade + See more expands max-height.

Data source

Primary: FxTwitter API https://api.fxtwitter.com/{user}/status/{id} — returns author name, screen_name, avatar_url, and text.

Do not commit API keys; the public endpoint is used by the script only at add-tweet time.

Example entry

ts
{  id: "2056717453816729751",  url: "https://x.com/jordienr/status/2056717453816729751",  author: {    name: "jordi",    handle: "@jordienr",    avatar: twitterAvatarUrl(      "https://pbs.twimg.com/profile_images/2053541405121769475/TUDez6zL_200x200.jpg"    ),    verified: true,  },  content: "bklit saved my marriage",},

来源与署名

来源:bklit/bklit-ui位于.agents/skills/add-x-tweet提交5d69989

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架