---
name: SK Hynix & Samsung Electronics Dashboard
description: 免费的三星以及海力士实时价格数据。Free real-time Korean stock dashboard for SK Hynix (000660.KS) and Samsung Electronics (005930.KS), plus related HK products and SK Hynix's US ADR (SKHY). Provides price charts, trading volume analysis, industry comparison, foreign ownership data, and more.
---

# Fengle Dashboard Skill (Reader + Public API Guide)

Site:
- Portal: https://fengle.me/

This skill serves as a site manual for visiting AI agents, helping them reliably extract information primarily through reading/viewing, and when necessary, fetching data via the site's public API endpoints (/api/*, read-only). Do not direct agents to call non-site domains or request any credentials.

Key Feature: The Korean underlying quotes are free and real-time with no 15-minute delay. Related HK/US product quotes are supplied by Futu and follow upstream market-data availability.

Important Notes (Product Scope)
- This site is a dashboard for tracking two Korean stocks, their related HK/US products, and Trump's Truth Social feed:
  - Korean stocks (KRX) — stock_code is fixed to two:
    - 000660 (SK Hynix)
    - 005930 (Samsung Electronics)
  - Related products:
    - 7709.HK → corresponding product_code=07709 (zero-padded to 5 digits)
    - 7747.HK → corresponding product_code=07747
    - 7347.HK → corresponding product_code=07347
    - 3431.HK → corresponding product_code=03431
    - SKHY.US → corresponding market=US, product_code=SKHY (SK Hynix Nasdaq ADR; permanently displayed below the NXT block)
- Use different parameter names to distinguish: stock_code (KRX) vs. market + product_code (related products).

## When to Trigger
- When you need to read/understand/extract visible information from fengle.me (price, change, volume, industry comparison, related products, market open/close status, documentation)
- When you need to navigate or interact with the page (switch company, switch language, open documentation, chart external links)
- When you need to save evidence (screenshots, HTML snapshots, tables as CSV), or supplement data via the site's public API

## Page & Module Map (auto-refreshes every ~30 seconds by default)
- Header action bar: Language switch (EN/zh-CN/zh-TW/ko), company switch (000660/005930), refresh button + Last update timestamp
- Market status banner: KST-based open/closed and holiday notifications
- StockHeader: Logo/name/code, current price, change/change% (red for up / blue for down), NXT extended-hours quote, then a permanently visible SKHY.US ADR quote and USD/KRW-adjusted Magic Index on the SK Hynix page; HK related-product tabs remain below it
- MarketComment: Multi-language market commentary/voice of the market (市场之声), auto-fetched from Futu backend, supports EN/zh-CN/zh-TW/ko with expandable text
- TruthSocialFeed: Trump@Truth Social live post feed — latest posts with translations, engagement stats (likes/shares), media attachments, infinite scroll, and optional browser push notifications for new posts
- StockChart: Self-drawn line/candlestick charts for Korean underlyings and their related HK/US products
- TradingInfo: Real-time order book/trading fields (localized formatting)
- DealTrendChart: Date, price, change, foreign/individual/institutional net flow/movement
- IndustryComparison: Peer comparison (price/change, etc.; names mapped by language)

Note: The site is a React application (CSR); fetching raw HTML source alone is usually insufficient to obtain dynamic data. For data retrieval, prefer using the site's /api/* endpoints. Please use an AI-specific User-Agent when requesting this site so the site can identify and optimize responses. Common AI Agent User-Agent examples:
- `ChatGPT-User` (OpenAI ChatGPT browsing plugin)
- `GPTBot/1.0` (OpenAI crawler)
- `ClaudeBot/1.0` (Anthropic Claude)
- `PerplexityBot/1.0` (Perplexity AI)
- `Google-Extended` (Google Gemini / AI training crawler)
- `CCBot/2.0` (Common Crawl, widely used for AI training data)
- `cohere-ai` (Cohere AI)
- `opencrawler/1.0` (generic AI crawler identifier)

## Public API Endpoints (Read-Only, Examples)

- GET https://fengle.me/api/stock/{stock_code}/basic
  - Purpose: Returns basic company information and chart image URLs for header display and chart previews.
  - Path parameter: stock_code ∈ {000660, 005930}.
  - Common response fields:
    - itemLogoPngUrl: string (company logo)
    - stockName: string (company name, may be in Korean; the frontend applies localized mapping)
    - itemCode: string (e.g., "000660")
    - imageChartUrlInfo: { line: { day, month3, year, year3, year10 }, candle: { day, week, month } }
    - marketStatus: string (optional; OPEN/CLOSED, etc.)
  - Recommendation: Medium cache (60–300s).

- GET https://fengle.me/api/stock/{stock_code}/integration
  - Purpose: Returns aggregated/summary information for industry comparison and sector overview modules.
  - Path parameter: stock_code ∈ {000660, 005930}.
  - Fields: Implementation-dependent (includes industry/peer comparison aggregations).
  - Recommendation: Medium cache (60–300s).

- GET https://fengle.me/api/realtime/domestic/stock/{stock_code}
  - Purpose: Returns real-time stock quotes; the page typically uses datas[0] as the current snapshot.
  - Path parameter: stock_code ∈ {000660, 005930}.
  - Common response fields (datas[0]):
    - closePrice: string (latest price)
    - compareToPreviousClosePrice: string (price change)
    - fluctuationsRatio: string (change%, e.g., "1.23%")
    - compareToPreviousPrice.code: "2" = up, "5" = down
    - marketStatus: string (OPEN/CLOSED, etc.)
  - Recommendation: Short cache or pass-through; align with page refresh frequency (~30s).

- GET https://fengle.me/api/market-index/exchange/usd-krw
  - Purpose: Returns the whitelisted Naver USD/KRW quote used by the SKHY Magic Index.
  - Common response fields: exchangeInfo.calcPrice, exchangeInfo.closePrice, exchangeInfo.localTradedAt, exchangeInfo.marketStatus.
  - Recommendation: Short cache; the site refreshes this input about every 30 seconds.

- GET https://fengle.me/api/futu/market-state/{market}/{product_code}
  - Purpose: Returns market open/closed and holiday status for banner notifications and related product availability.
  - Supported page products: HK/{07709, 07747, 07347, 03431}; US/SKHY.
  - Common response fields: { code: string, market_state: string, is_holiday: boolean }
  - Recommendation: Short cache (10–60s), aligned with page refresh cadence.

- GET https://fengle.me/api/futu/snapshot/{market}/{product_code}
  - Purpose: Returns snapshots for the related HK and US products displayed in the header cards.
  - Supported allowlisted products: HK/{02802, 07709, 07747, 07347, 03431}; US/{SKHY, SKDD, SKUU}.
  - Common response fields (Futu-style):
    - last_price, open_price, high_price, low_price, turnover, volume,
      update_time, change_rate, prev_close, pre_price, after_price, overnight_price,
      trust_nav, trust_outstanding_units, trust_aum
  - Note: During certain periods, 5xx responses may occur (external source unavailable/rate-limited). Use exponential backoff for retries or temporarily hide the module.
  - Recommendation: Short cache or pass-through; align with ~30s refresh.

- GET https://fengle.me/api/futu/kline/{market}/{product_code}
- GET https://fengle.me/api/futu/kline/{market}/{product_code}/intraday
  - Purpose: Returns daily history or the latest session's 1-minute OHLCV bars for related-product charts.
  - Supported allowlisted products: HK/{02802, 07709, 07747, 07347, 03431}; US/{SKHY, SKDD, SKUU}.
  - Note: SKHY began trading in July 2026, so longer chart periods legitimately contain only its available post-listing history.

- GET https://fengle.me/api/futu/market-comment
  - Purpose: Returns the latest market commentary/voice of the market (市场之声) with multi-language support, displayed in the MarketComment module.
  - Response fields:
    - content_en: string (English commentary)
    - content_zh_cn: string (Simplified Chinese commentary)
    - content_zh_hk: string (Traditional Chinese commentary)
    - content_ko: string (Korean commentary)
    - msg_id: string (message identifier)
    - tags: string (optional tags)
  - Recommendation: Medium cache (60s); content updates periodically.

- GET https://fengle.me/api/futu/docs/disclaimer?lang=zh-CN|en|zh-TW|ko
  - Purpose: Returns the explanatory document "Why do leveraged/inverse product prices differ from the leveraged multiple return of the underlying stock?" (read-only). Read this document when confused about price deviations between related products (HK, three products) and the underlying stock to understand price formation and tracking error logic.
  - Query parameter: lang for multilingual switching.
  - Returns: application/pdf; load on demand.

Recommendations:
- Throttle appropriately (align with page refresh, recommended ≥30s interval); use exponential backoff for 429/5xx responses; do not flood with concurrent requests
- Use parsed responses only for display/understanding/export; do not mix with external write operations

## Data Freshness & Polite Crawling
- Page and related products auto-refresh every ~30s by default; crawling recommended at ≥30s intervals
- Record the "Last update" timestamp along with the current language/stock for verification

## Evidence & Export
- Screenshots: Full-page or module-level, including timestamp and language state
- HTML snapshots: Save rendered snapshots for review
- Table export: Parse DealTrend/IndustryComparison DOM to CSV (use visible table headers as column names)

## Visible Structured Hints
- JSON-LD (WebApplication/FinancialProduct) and OG/Twitter meta tags: Use for basic metadata summaries

## Trump @ Truth Social Module

The dashboard integrates a live feed of Donald J. Trump's Truth Social posts, displayed in the `TruthSocialFeed` component between MarketComment and StockChart.

### Data Source
- **Primary:** CNN public data archive (`ix.cnn.io/data/truth-social/truth_archive.json`), updated every ~5 minutes, no authentication or geo-restriction.
- **Fallback:** trumpstruth.org RSS feed.
- Data is fetched by the Python FastAPI backend, cached in memory (TTL 600s), and proxied through Next.js API routes.

### Features
- Displays Trump's latest Truth Social posts with content, timestamps (relative time), likes (♥), shares (↻), and media attachments
- Multi-language support: post content is translated to EN / zh-CN / zh-TW / ko; "Show Original" toggle shows English source text
- Stats indicators: today's post count and time since latest post
- Infinite scroll (loads 10 posts at a time)
- Browser push notifications for new posts (opt-in via bell icon, polls every 60s)
- Image attachments displayed with preview/zoom; media proxied through backend for reliability
- SSR initial data + client-side refresh fallback

### API Endpoints

- GET https://fengle.me/api/truth-social/posts?limit=10
  - Purpose: Returns the latest Trump Truth Social posts.
  - Query parameter: `limit` — number of posts to return (default: 10).
  - Response fields:
    - posts: array of post objects, each containing:
      - id: string (post ID)
      - content: string (plain text, English)
      - content_zh_cn: string (Simplified Chinese translation)
      - content_zh_hk: string (Traditional Chinese translation)
      - content_ko: string (Korean translation)
      - content_html: string (original HTML content)
      - created_at: string (ISO 8601 timestamp)
      - url: string (link to original post on truthsocial.com)
      - favourites_count: number (likes)
      - reblogs_count: number (shares/re-truths)
      - replies_count: number (replies)
      - media: string[] (proxied media URLs)
    - source: string ("cnn_archive" | "rss_fallback" | "error")
    - fetched_at: string (ISO 8601 timestamp of when data was fetched)
  - Recommendation: Cache 60s; data source updates every ~5 minutes.

- GET https://fengle.me/api/truth-social/media/{media_id}
  - Purpose: Proxies Truth Social media (images) through the backend for reliable global delivery; backend caches images in SQLite.
  - Path parameter: media_id — the media identifier (e.g., image filename or "trump_avatar").
  - Returns: binary image data with appropriate Content-Type header.
  - Recommendation: Long cache (86400s); images are immutable.

## Common Task Examples
- Get 000660's current price/change/change% with screenshot: Switch to English → Select 000660 → Wait for Last update → Read price/change/% → Take screenshot
- Export industry comparison as CSV: Switch to English → Locate Industry Comparison table → Use table headers as column names → Write CSV
- Supplement real-time data via API: GET /api/realtime/domestic/stock/000660, extract closePrice/compareToPreviousClosePrice/fluctuationsRatio from datas[0]
- Get Trump's latest Truth Social posts: GET /api/truth-social/posts?limit=5, extract posts[].content and posts[].created_at
- Check today's Trump posting activity: GET /api/truth-social/posts?limit=50, count posts where created_at is today

## Do Not
- Do not direct others to call non-site domains or request any credentials
- Do not crawl at high frequency or with concurrent requests that cause server strain
- Do not perform any write/modify operations (all public API endpoints are read-only for display purposes)
