46 Commits
Author SHA1 Message Date
vosonandCursor 282029706b Add Baixi, Crystal Maiden, and Furion streamers to the web roster.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 09:32:14 +08:00
vosonandCursor 820c3fb1f1 Ship item nicknames, Tiny fear override, and ensure-match API.
Add 冰眼/蛇矛 aliases, correct Tiny fears to Hydra's Breath, and fix production match detail POST 405.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 04:05:48 +08:00
vosonandCursor cafd0651b1 Fix player sync empty overwrites and force CSS cache refresh.
Keep D1 recent/heroes/peers/rank when OpenDota is partial; bump site to 0.6.55 and shorten style.css cache so「我」layout is not stuck on stale CSS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 01:46:13 +08:00
vosonandCursor 41d272ba29 Add Pages Steam secret put helpers for climperor-relations.
Documents staging via keyzoo so production /api/auth/steam gets STEAM_API_KEY and SESSION_SECRET.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 01:32:17 +08:00
vosonandCursor f5b7011c45 Ship Steam login, D1 player sync, and cached「我」dashboard.
Players get a fast TTL-backed homepage (local profile / Cloudflare D1) with dense UI polish; login unlocks /home without blocking on every OpenDota refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 01:24:30 +08:00
vosonandCursor 4a61aeeb26 Add PC post-match player pages with opt-in public OSS sync.
Generate /players/{account_id}[/{match_id}] locally after POST_GAME via OpenDota; publish to OSS only when public_share is enabled.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 11:01:32 +08:00
vosonandCursor d6f7c3f0f5 Keep shop/item meta in git and fix category icon filenames.
Drop the accidental itemcat_*.png.png downloads by stripping the
existing .png suffix before download_icons appends one. Leave daily
leaderboards/streamers and ignored OpenDota/STRATZ caches uncommitted.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 10:36:26 +08:00
vosonandCursor 1e44c0eb9b Show recent item patch notes under the shop detail panel.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 10:18:17 +08:00
vosonandCursor 961574037e Rename patch sidebar to AI reading and drop the disclaimer.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 10:14:00 +08:00
vosonandCursor 3ee4ba7e84 Clarify 7.41e reading copy and call out Rapier vs Zeus Aghs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 10:09:29 +08:00
vosonandCursor 30218790ce Add 7.41e patch notes with a hand-authored reading sidebar.
Ship Climperor Web 0.6.13: latest-patch summary panel, icon/innate fallbacks, and layout/scroll fixes; keep shared ability badges in git.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 10:06:09 +08:00
vosonandCursor a257f96d94 v0.6.9: stop serving match-template crops as hero portraits.
Export and OSS upload require wide Heroes-page cards only; bump cache stamp to wide2 so clients drop polluted squares.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 23:24:42 +08:00
vosonandCursor ee180f3519 Skip slow proPlayers retries on watchlist pro-match runs.
Use a single fail-fast /proPlayers probe so rate-limited runners start the
15-pro refresh batch immediately from watchlist names.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 23:10:54 +08:00
vosonandCursor c5a342cb5d Survive OpenDota proPlayers 429 during watchlist pro refresh.
Continue with watchlist names when /proPlayers is rate-limited, and soft-fail
the pro-matches step so daily can still refresh leaderboards and streamers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 23:10:32 +08:00
vosonandCursor 76fa474b7d Fail fast on OpenDota 429 in hero_matches fetch.
Stop the long retry chain after three consecutive 429s and restore prior
hero cells so a burned IP no longer stalls the whole daily tier.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 23:06:45 +08:00
vosonandCursor f035e2c233 Soft-fail OpenDota hero stats/matches on daily rate limits.
Keep restored cache and continue the tier so a burned runner IP cannot
block leaderboards, pro-match rotation, or streamer refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 23:02:35 +08:00
vosonandCursor 0f7e7b68dd Rotate OpenDota pro-match refresh to stay under rate limits.
Daily now refreshes the 15 oldest watchlist pros, keeps prior cache for the
rest, fails fast on consecutive 429s, and still writes a partial result.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 22:59:34 +08:00
vosonandCursor 3b7d00b32b v0.6.8: add Emo and 奶绿 streamers; center items shop layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 20:34:05 +08:00
vosonandCursor 11dbb73b5c v0.6.7: narrow matches column so player filter stays visible.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 17:37:22 +08:00
vosonandCursor 43e8409c0e v0.6.6: size drawer from hero grid; drop skill video side bars.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 17:20:51 +08:00
vosonandCursor 22a9cf256d v0.6.5: size hero detail drawer from viewport; add PC post-lock item tips.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 17:08:32 +08:00
vosonandCursor fefd8c7823 v0.6.4: show match id on match cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 11:29:29 +08:00
vosonandCursor 79ce5cfd2e v0.6.3: hero detail bottom drawer that pushes role tags, matches page summary dedupe.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 09:18:31 +08:00
vosonandCursor aac4593cc5 v0.6.2: hero page site foot, dismiss detail on empty click, drop patches version footer.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 07:45:03 +08:00
vosonandCursor 1aa6710e39 v0.6.1: show hero English name and abbr on detail page.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 07:33:48 +08:00
vosonandCursor 7c9e54e5eb v0.6.0: mark Climperor Web shell and SEO milestone.
Brand title uses self-hosted Noto Serif SC; document minor vs patch SITE_VERSION bumps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 07:25:04 +08:00
vosonandCursor 544ea42d40 v0.5.115: add History routing and SEO prerender for Climperor Web.
Path URLs, crawlable hero/mechanics pages, and sitemap make the static site indexable while keeping SPA hydration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 04:55:33 +08:00
vosonandCursor 38f46ad2ea v0.5.114: add Douyu streamers with fan enrichment and live probe.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 02:42:47 +08:00
vosonandCursor fdd926e9bb v0.5.112: keep skill demos at 16:9 and harden web refresh deploy triggers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 01:48:01 +08:00
vosonandCursor 28858c0703 v0.5.111: sort streamers by live status then follower count.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 01:32:01 +08:00
vosonandCursor fe1b13b7c1 v0.5.110: stop carrying stale live badges; probe live status in local serve.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 01:11:13 +08:00
vosonandCursor d6212169af v0.5.109: hero role toolbar, skill side-by-side layout, taller detail panel.
Move role filters between grid and detail, fix skill video/text layout and detail height jump, unify item dividers, drop OpenDota matchup cross, sync docs and assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 00:48:07 +08:00
vosonandCursor 09f0a0b4a0 v0.5.87: fill ability loc tokens and tidy skill detail layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 20:32:37 +08:00
vosonandCursor ad7f5d0e1a v0.5.86: place matches summary below the pager.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 18:44:49 +08:00
vosonandCursor ef31e43d6c v0.5.85: move matches page summary next to pager.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 18:36:22 +08:00
vosonandCursor b01552ee6e v0.5.84: matches origin filter, mobile gate, refresh reliability.
Ship Web refresh cache/lock, mobile demand gate, matches 职业/国服 filter, and related site updates through 0.5.84.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 18:31:55 +08:00
vosonandCursor 7681fdb069 v0.5.72: lower default streamer unmute volume.
Avoid blasting to max when users unmute highlight clips; keep native slider control afterward.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 16:06:00 +08:00
vosonandCursor d2cfcd7461 v0.5.71: matches tab, streamer viewport video load, matchup cross-check.
Add pro watchlist matches page; load streamer clips by viewport tier with posters; harden STRATZ matchup refresh and OpenDota cross hints.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 16:03:49 +08:00
vosonandCursor d9c7b4b7b1 Add star-player matches tab and watchlist-driven fetch.
Ship top-level #/matches with pro watchlist defaults, bump site to 0.5.71, and document the flow in AGENTS/README.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 16:03:45 +08:00
vosonandCursor 9c5aa5b610 Reorganize repository into pc web shared monorepo
Separate the local recognition, web publishing, and shared data paths while preserving direct script execution and existing site content.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 14:29:08 +08:00
vosonandCursor 3ec8007077 v0.5.59: item counter evidence for fears, catch up Web features to site version.
Ship OpenDota counter-stats reordering for feared items, finalize SITE_VERSION/docs for rankings/streamers/trends/matches/mechanics and draft archetypes, and ignore regenerable Web data caches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 02:11:49 +08:00
vosonandCursor 9898dd39fb v0.4.2: host preview icons on OSS for slim Pages deploys.
Add STATIC_ASSET_BASE so Cloudflare Pages ships ~2MB HTML/JS/data; icons served from climperor OSS via _oss_static_assets.py. New machines can deploy without local fetch scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:28:01 +08:00
vosonandCursor 124bdbb7c7 v0.4.1: OSS skill videos, site version footer, and mail contact.
Host ability demos on Aliyun OSS instead of Pages bundles; add patches-page version label and top-right mailto link; improve spirit bear portrait export.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 20:26:30 +08:00
voson adb8f303c2 v0.4.0: Cloudflare Pages deploy tooling, items search in URL, spirit bear patch lookup 2026-07-27 16:28:31 +08:00
voson 1d0428b4a3 Add hash routing and Dota 2 logo to relations preview.
- New web/relations/router.js (parseHash/serializeHash/installRouter):
  top tabs, hero + detail sub-tab, item, patch version, tag filters and
  search query all sync to URL (#/heroes/axe/core, ?tags=...&q=...);
  pushState for discrete picks, replaceState for debounced search.
- export_relations_site.py copies router.js so static export deep-links.
- Header shows dota2_logo.png + title, served via /ui-icon/ whitelist.
- fetch_dota2_logo.py fetches the transparent emblem asset.
- Docs: CHANGELOG / README / DESIGN / AGENTS updated.
2026-07-27 13:09:14 +08:00
voson a91789b72f v0.2.0: relations preview, item shop, abilities, overlay recommend, GSI enhancements
- Add relations/item/abilities preview (serve_relations.py + web/relations/)
- Add fetch scripts: hero_items, item_shop, items_meta, hero_abilities,
  ability_videos, patches, stratz, matchups, portraits
- Add overlay.py (role tags + Top-3 cyan marks), recommend.py
- Add http_utils.py, loc_format.py, hero_tags.py, item_fears.py
- GSI: full payload JSONL dump, foreground window detection
- Drop real template library; CDN-only matching
- Update docs: CHANGELOG 0.2.0, DESIGN config table, AGENTS module table
- .gitignore: exclude large regenerable assets (icons/portraits/videos)
2026-07-27 11:56:51 +08:00