From b01552ee6e8f1e6c2a6e953b47025460aef6647b Mon Sep 17 00:00:00 2001 From: voson Date: Wed, 29 Jul 2026 18:31:55 +0800 Subject: [PATCH] v0.5.84: matches origin filter, mobile gate, refresh reliability. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ship Web refresh cache/lock, mobile demand gate, matches 职业/国服 filter, and related site updates through 0.5.84. Co-authored-by: Cursor --- .gitea/workflows/web-daily.yml | 23 + .gitea/workflows/web-patch.yml | 23 + .gitea/workflows/web-weekly.yml | 23 + .gitignore | 5 + AGENTS.md | 27 +- CHANGELOG.md | 98 +++ README.md | 20 +- shared/http_utils.py | 32 + web/assets/streamer_avatars/fatiao.jpg | Bin 0 -> 9484 bytes web/assets/streamer_avatars/huonv.jpg | Bin 0 -> 75001 bytes web/assets/streamer_avatars/huskar.jpg | Bin 0 -> 50338 bytes web/assets/streamer_avatars/kaer.jpg | Bin 0 -> 27531 bytes web/assets/streamer_avatars/lanmao.jpg | Bin 0 -> 39725 bytes web/assets/streamer_avatars/luna.jpg | Bin 0 -> 10487 bytes web/assets/streamer_avatars/qitiandasheng.jpg | Bin 0 -> 46122 bytes web/assets/streamer_avatars/tumao.jpg | Bin 0 -> 75716 bytes web/assets/streamer_avatars/wenyi.jpg | Bin 0 -> 64721 bytes web/assets/streamer_avatars/zhadan.jpg | Bin 0 -> 57316 bytes web/data/pro_player_watchlist.json | 590 ++++++++++++++++-- web/data/streamers.json | 226 ++++++- web/deploy_relations.py | 91 ++- web/export_relations_site.py | 22 +- web/fetch_hero_abilities.py | 23 +- web/fetch_hero_items.py | 15 +- web/fetch_hero_matches.py | 7 +- web/fetch_hero_stats.py | 16 +- web/fetch_item_counter_stats.py | 7 +- web/fetch_item_shop.py | 14 +- web/fetch_items_meta.py | 13 +- web/fetch_leaderboards.py | 14 +- web/fetch_patches.py | 14 +- web/fetch_pro_matches.py | 50 +- web/fetch_stratz_meta.py | 134 +++- web/fetch_streamer_live.py | 21 +- web/fetch_streamers.py | 7 +- web/frontend/_headers | 3 + web/frontend/app.js | 541 ++++++++++++---- web/frontend/config.js | 2 +- web/frontend/functions/api/live-status.js | 148 ++++- web/frontend/functions/api/mobile-demand.js | 70 +++ web/frontend/index.html | 27 +- web/frontend/mobile-gate.js | 98 +++ web/frontend/router.js | 28 +- web/frontend/style.css | 272 +++++++- web/item_fears.py | 8 +- web/notify_site_traffic.py | 349 ++++++++++- web/refresh_cache.py | 197 ++++++ web/refresh_web.py | 335 ++++++++-- web/serve_relations.py | 39 ++ web/tests/test_refresh_reliability.py | 261 ++++++++ 50 files changed, 3406 insertions(+), 487 deletions(-) create mode 100644 web/assets/streamer_avatars/fatiao.jpg create mode 100644 web/assets/streamer_avatars/huonv.jpg create mode 100644 web/assets/streamer_avatars/huskar.jpg create mode 100644 web/assets/streamer_avatars/kaer.jpg create mode 100644 web/assets/streamer_avatars/lanmao.jpg create mode 100644 web/assets/streamer_avatars/luna.jpg create mode 100644 web/assets/streamer_avatars/qitiandasheng.jpg create mode 100644 web/assets/streamer_avatars/tumao.jpg create mode 100644 web/assets/streamer_avatars/wenyi.jpg create mode 100644 web/assets/streamer_avatars/zhadan.jpg create mode 100644 web/frontend/functions/api/mobile-demand.js create mode 100644 web/frontend/mobile-gate.js create mode 100644 web/refresh_cache.py create mode 100644 web/tests/test_refresh_reliability.py diff --git a/.gitea/workflows/web-daily.yml b/.gitea/workflows/web-daily.yml index f9623f8..0aa4188 100644 --- a/.gitea/workflows/web-daily.yml +++ b/.gitea/workflows/web-daily.yml @@ -12,6 +12,10 @@ on: - cron: "0 22 * * *" workflow_dispatch: +concurrency: + group: climperor-web-full-refresh + cancel-in-progress: false + jobs: refresh: runs-on: self-hosted @@ -19,6 +23,15 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Restore refresh cache + uses: actions/cache@v4 + with: + path: web/.refresh-cache + key: web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}-${{ github.run_id }} + restore-keys: | + web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}- + web-refresh-${{ runner.os }}- + - name: Install deps run: | set -e @@ -29,6 +42,8 @@ jobs: - name: Refresh daily tier env: + REFRESH_CACHE_ENABLED: "1" + REFRESH_RUN_ID: ${{ github.run_id }} STRATZ_API_TOKEN: ${{ secrets.STRATZ_API_TOKEN }} CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }} CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }} @@ -39,3 +54,11 @@ jobs: PYTHON=python3 command -v python3 >/dev/null || PYTHON=python "$PYTHON" web/refresh_web.py --tier daily + + - name: Save refresh summary + if: always() + uses: actions/upload-artifact@v4 + with: + name: web-daily-refresh-${{ github.run_id }} + path: web/.refresh/summary.json + if-no-files-found: warn diff --git a/.gitea/workflows/web-patch.yml b/.gitea/workflows/web-patch.yml index 610f74f..a6f8033 100644 --- a/.gitea/workflows/web-patch.yml +++ b/.gitea/workflows/web-patch.yml @@ -11,6 +11,10 @@ on: - cron: "0 */6 * * *" workflow_dispatch: +concurrency: + group: climperor-web-patch-refresh + cancel-in-progress: false + jobs: refresh: runs-on: self-hosted @@ -18,6 +22,15 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Restore refresh cache + uses: actions/cache@v4 + with: + path: web/.refresh-cache + key: web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}-${{ github.run_id }} + restore-keys: | + web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}- + web-refresh-${{ runner.os }}- + - name: Install deps run: | set -e @@ -28,6 +41,8 @@ jobs: - name: Refresh patch tier env: + REFRESH_CACHE_ENABLED: "1" + REFRESH_RUN_ID: ${{ github.run_id }} CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }} CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }} OSS_ACCESS_KEY_ID: ${{ secrets.OSS_ACCESS_KEY_ID }} @@ -37,3 +52,11 @@ jobs: PYTHON=python3 command -v python3 >/dev/null || PYTHON=python "$PYTHON" web/refresh_web.py --tier patch + + - name: Save refresh summary + if: always() + uses: actions/upload-artifact@v4 + with: + name: web-patch-refresh-${{ github.run_id }} + path: web/.refresh/summary.json + if-no-files-found: warn diff --git a/.gitea/workflows/web-weekly.yml b/.gitea/workflows/web-weekly.yml index 38e056e..5b95830 100644 --- a/.gitea/workflows/web-weekly.yml +++ b/.gitea/workflows/web-weekly.yml @@ -10,6 +10,10 @@ on: - cron: "0 23 * * 1" workflow_dispatch: +concurrency: + group: climperor-web-full-refresh + cancel-in-progress: false + jobs: refresh: runs-on: self-hosted @@ -17,6 +21,15 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Restore refresh cache + uses: actions/cache@v4 + with: + path: web/.refresh-cache + key: web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}-${{ github.run_id }} + restore-keys: | + web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}- + web-refresh-${{ runner.os }}- + - name: Install deps run: | set -e @@ -27,6 +40,8 @@ jobs: - name: Refresh weekly tier env: + REFRESH_CACHE_ENABLED: "1" + REFRESH_RUN_ID: ${{ github.run_id }} STRATZ_API_TOKEN: ${{ secrets.STRATZ_API_TOKEN }} CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }} CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }} @@ -37,3 +52,11 @@ jobs: PYTHON=python3 command -v python3 >/dev/null || PYTHON=python "$PYTHON" web/refresh_web.py --tier weekly + + - name: Save refresh summary + if: always() + uses: actions/upload-artifact@v4 + with: + name: web-weekly-refresh-${{ github.run_id }} + path: web/.refresh/summary.json + if-no-files-found: warn diff --git a/.gitignore b/.gitignore index 301ca3a..267e454 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,8 @@ web/data/hero_matches.json web/data/pro_matches.json web/data/pro_builds.json web/data/_jugg_times_sample.json +web/.refresh/ +web/.refresh-cache/ # Large regenerable CDN media (fetch scripts) web/assets/ability_videos/ @@ -52,5 +54,8 @@ assets/streamer_videos/ # Static site export (export_relations_site.py) web/dist/ +# Local wrangler / Pages Functions runtime +.wrangler/ + # Local probes / one-off diagnostics _probe_item_fears_api.py diff --git a/AGENTS.md b/AGENTS.md index 1eef7f4..9661124 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -75,8 +75,9 @@ climperor/ | `web/serve_relations.py` | 上分帝 Web 本地开发服务(`web/frontend/`;改 `web/data/*.json` 后刷新;`/streamer-video/` 提供主播高光 mp4 与同名 JPG 封面,支持 HTTP Range) | | `web/export_relations_site.py` | 导出上分帝 Web 为纯静态站点 → `web/dist/relations/`(data.json 快照 + 前端 + 图片;`SITE_VERSION` 常量与 `web/frontend/config.js` 同步;`--ability-video-base` / `--static-asset-base` 写 `config.js` 指向 OSS;设 `--static-asset-base` 时不拷贝图标进 dist;`--with-videos` 可选本地拷贝技能/主播视频,生产部署勿用) | | `web/deploy_relations.py` | 一键部署上分帝 Web 静态站点到 Cloudflare Pages(导出 + 资产预检 + `wrangler` 直传 + 绑域名;默认 OSS base 指向 `climperor` 桶的视频与静态图;凭据经 keyzoo 注入或 env) | -| `web/refresh_web.py` | 上分帝 Web 数据分层刷新编排(`daily`/`weekly`/`patch`/`all`);摘要比对后有变更才 OSS upload + `deploy_relations.py`;`--dry-run` / `--skip-deploy` / `--skip-oss` / `--force-deploy`。`daily`:stats/排行/比赛/pro/主播/主播开播探测 + patch check;`weekly`:STRATZ meta + 物品;`patch`:仅 check,`has_new` 时详情 + abilities/商店/meta/fears | -| `web/notify_site_traffic.py` | 上分帝 Web 日报 → 飞书 webhook(访问估数 + Gitea `web-daily`/`weekly`/`patch` 运行结论 + Pages 当日生产部署;`--dry-run` 只打印卡片) | +| `web/refresh_web.py` | 上分帝 Web 数据分层刷新编排(`daily`/`weekly`/`patch`/`all`);忽略纯时间戳的业务摘要有变更才 OSS upload + `deploy_relations.py`;写 `web/.refresh/summary.json`(步骤/耗时/stale/部署);同 runner 文件锁串行发布,patch 遇全量刷新则延后;`--dry-run` / `--skip-deploy` / `--skip-oss` / `--force-deploy`。`daily`:stats/排行/比赛/pro/主播/主播开播探测 + patch check;`weekly`:STRATZ meta + 物品;`patch`:仅 check,`has_new` 时详情 + abilities/商店/meta/fears | +| `web/refresh_cache.py` | Gitea Actions 刷新状态缓存桥:文件锁内从 runner `~/.cache/climperor-web-refresh/` 恢复/保存,`web/.refresh-cache/` 供 Actions cache 冷启动备份;覆盖所有定时生成数据与 `patches.json`,主播只合并抓取字段,保留 git 中手工名单 | +| `web/notify_site_traffic.py` | 上分帝 Web 日报 → 飞书 webhook(访问估数 + Gitea `web-daily`/`weekly`/`patch` 运行结论/`REFRESH_SUMMARY` + Pages 当日生产部署 + 生产数据新鲜度与 live API 探针;`--dry-run` 只打印卡片) | | `.gitea/workflows/site-traffic-notify.yml` | 每日 09:00 CST 跑 `web/notify_site_traffic.py`;Secrets:`CLOUDFLARE_EMAIL` / `CLOUDFLARE_API_KEY` / `FEISHU_WEBHOOK_URL`;内置 `GITEA_TOKEN` 用于查询同仓 Actions | | `.gitea/workflows/web-daily.yml` | 每日 06:00 CST:`web/refresh_web.py --tier daily`(self-hosted;需 CF + OSS Secrets;STRATZ 可选) | | `.gitea/workflows/web-weekly.yml` | 周二 07:00 CST:`web/refresh_web.py --tier weekly`(需 `STRATZ_API_TOKEN` + CF + OSS) | @@ -87,11 +88,13 @@ climperor/ | `web/fetch_hero_items.py` | 拉取 OpenDota 热门装备 → `web/data/hero_items.json` + `web/assets/item_icons/` | | `web/fetch_hero_stats.py` | 拉取 OpenDota 各段位场次/胜场 → `web/data/hero_stats.json`(**仅上分帝 Web**;勿写入 relations/heroes,勿进 recommend) | | `web/fetch_hero_matches.py` | 拉取同英雄近期比赛 + 终局出装/加点 → `web/data/hero_matches.json`(`--source league\|public\|both`;合并后保留最近 N 场胜局,默认 10;天梯需传奇及以上;公开列表过滤 bot/Turbo、仅 ranked lobby;`--public-region china` 优先国服;`--workers` 详情并发 + 凑满即停;可选 `OPENDOTA_API_KEY`;增量补缺失/不足 N 场;`--enrich-item-times` 补购买时间;**仅上分帝 Web**;勿进 recommend) | -| `web/fetch_pro_matches.py` | 按明星名单拉近期联赛/锦标赛对局 → `web/data/pro_matches.json`(默认读 `web/data/pro_player_watchlist.json`;`--players` 覆盖;`--all-pros` 从 `/proPlayers` 盲抽;含终局出装/加点;进 `refresh_web` daily;**仅上分帝 Web「近期比赛」**;勿进 recommend) | +| `web/fetch_pro_matches.py` | 按明星名单拉近期联赛/锦标赛对局 → `web/data/pro_matches.json`(默认读 `web/data/pro_player_watchlist.json`;`--include-pubs` 另拉天梯 lobby 7;每种 lobby 各保留 `--limit` 场;`--players` 覆盖整文件;`--all-pros` 从 `/proPlayers` 盲抽;含终局出装/加点;进 `refresh_web` daily 且带 `--include-pubs`;**仅上分帝 Web「比赛」**;勿进 recommend) | | `web/fetch_leaderboards.py` | 拉取 Valve Immortal 四区榜 Top100 → `web/data/leaderboards.json`(**仅上分帝 Web「排行」**;无 MMR/account_id;勿进 recommend) | | `web/fetch_streamers.py` | 从抖音主页补全 `web/data/streamers.json` 的昵称/签名/关注粉丝获赞/头像(手工名单 + 直播间/主页 URL;支持 `v.douyin.com` 短链;失败保留旧值;**不**探测开播(由 `fetch_streamer_live.py` 负责);**仅上分帝 Web「主播」**;勿进 recommend;进 `refresh_web` daily) | | `web/fetch_streamer_live.py` | 探测主播真实在播状态回写 `web/data/streamers.json` 的 `is_live`/`live_probed_at`:抖音解析直播间 SSR 页 `roomStore.roomInfo.room.status`(2 在播 / 4 下播;预热 cookie + ~1s 间隔;web_rid 校验),B 站走 `Room/get_info`(`live_status==1` 在播,轮播算下播);软失败保留旧 `is_live`、始终 exit 0;`--ids a,b` 限范围、`--dry-run` 只打印;仅 Web;进 `refresh_web` daily | -| `web/frontend/functions/api/live-status.js` | Pages Function `GET /api/live-status`:访问触发的在播探测(逻辑同 `fetch_streamer_live.py`),Cache API 固定键合并请求(5 分钟新鲜窗口,**无 KV**、无需 wrangler 配置);抖音从数据中心 IP 失败属预期 → 单主播沿用旧缓存标 `stale`,全失败回陈旧快照(`stale-override`)或空表(`error`),永不 500;`context.waitUntil` 写缓存;导出时 `export_relations_site.py` 拷贝 `functions/` | +| `web/frontend/functions/api/live-status.js` | Pages Function `GET /api/live-status`:访问触发的在播探测(逻辑同 `fetch_streamer_live.py`),读 `data.json` 的 `streamers.streamers`;Cache API 固定键 + isolate 内 in-flight 合并(5 分钟新鲜窗口,**无 KV**);抖音从数据中心 IP 失败属预期 → 单主播沿用 edge 缓存/daily `is_live` 标 `stale`,全失败回陈旧快照(`stale-override`)或空表(`error`),永不 500;导出时拷贝 `functions/`;**部署须 `cwd=dist` 跑 wrangler**(Functions 相对 cwd 解析) | +| `web/frontend/functions/api/mobile-demand.js` | Pages Function `GET\|POST /api/mobile-demand`:移动端「催更」需求计数(Cache API 存 `count`,**无 KV**;边缘竞态/驱逐可能少计或重置);本机 `serve_relations.py` 写 `web/.refresh/mobile_demand.json`;前端 `mobile-gate.js` 用 UA 识别手机/平板并拦截,`localStorage` 同设备只 POST 一次 | +| `web/frontend/mobile-gate.js` | 移动端门禁(`` 早载):`html.mobile-client` + 催更按钮;设 `window.__CLIMPEROR_MOBILE__` 供 `app.js` 跳过桌面 boot | | `web/fetch_item_shop.py` | 官网商店 11 列目录(dota2.com.cn/itemscategory)+ 合成图 → `web/data/item_shop.json` + 图标 | | `web/fetch_items_meta.py` | Valve/OpenDota 装备描述 → 机制标签 → `web/data/items_meta.json`(`%token%` 用 special_values 填数;查询类 tags 共用 `mechanic_tags.py`) | | `web/mechanic_tags.py` | 上分帝 Web「机制」页共用标签(弱/强驱散、缠绕/缴械/沉默/锁闭/眩晕/妖术/破坏、睡眠/恐惧/嘲讽/致盲/束缚、隐身/虚无/吹风)+ 中文 labels;语义为「施加该效果」 | @@ -105,10 +108,10 @@ climperor/ | `web/data/hero_items.json` | 核心成品装备缓存(Web 站点只读;由 `fetch_hero_items.py` 生成) | | `web/data/hero_stats.json` | 英雄各段位 pick/win + `totals` + `window_*`(OpenDota **近约 7 天**;Web「走势」Tab:胜率/上场率/场次;冠绝与超凡样本合并展示;由 `fetch_hero_stats.py` 生成;**不**参与局内推荐) | | `web/data/hero_matches.json` | 同英雄近期比赛列表 + 终局出装/加点 + 可选购买时间(OpenDota;`--source league\|public\|both`;Web「近期比赛」Tab;由 `fetch_hero_matches.py` 生成;**不**参与局内推荐) | -| `web/data/pro_player_watchlist.json` | 明星选手 OpenDota `account_id` 手工名单(CN/EU 等);`fetch_pro_matches.py` 默认只拉此名单;队名可过期,以 id 为准;**不**进 recommend | -| `web/data/pro_matches.json` | 明星选手近期联赛/锦标赛对局(`by_pro`/`by_hero` + 终局出装/加点;由 `fetch_pro_matches.py` 生成;Web「近期比赛」与 `hero_matches` 合并展示;进 daily;**不**参与局内推荐) | +| `web/data/pro_player_watchlist.json` | 明星选手 OpenDota `account_id` 手工名单(对照 Dotabuff / Liquipedia;含现役战队席位与昔日国服明星;外号:查理斯→Chalice,Somnus 即 Maybe;CN/EU/SA 等);`fetch_pro_matches.py` 默认只拉此名单;队名可过期,以 id 为准;**不**进 recommend | +| `web/data/pro_matches.json` | 明星选手近期联赛/锦标赛(可选天梯)对局(`by_pro`/`by_hero` + 终局出装/加点 + `lobby_type`/`origin`;由 `fetch_pro_matches.py` 生成;Web 顶层「比赛」侧栏筛「全部 / 职业 / 国服」+ 选手,与英雄详情「近期比赛」合并展示;进 daily;**不**参与局内推荐) | | `web/data/leaderboards.json` | Valve Immortal 四区 Top100(`china`/`europe`/`americas`/`se_asia`;仅排名+昵称等;由 `fetch_leaderboards.py` 生成;Web「排行」选手榜只读;**不**参与局内推荐) | -| `web/data/streamers.json` | 主播目录(手工 `live_url`/profile URL + 常用英雄 + 可选精选视频 `video`/`video_title` + 可选 `video_poster`/`video_fit`/`video_crop`/`video_aspect`;抖音/B 站 profile 补全;`platform_meta`;Web 卡片视口分档滚播(远处不拉、近处 metadata、中部 `canplay` 且单路 `preload=auto`)+ 同名 JPG 封面占位;有 `live_url` 时点头像进直播间;**「直播」角标/动效只信 `is_live` 真实探测**(线上 `/api/live-status` 边缘缓存 5 分钟;`data.json` daily 兜底;`live_url` 仅作点击入口);由 `fetch_streamers.py` 补全;Web「主播」只读;**不**参与局内推荐) | +| `web/data/streamers.json` | 主播目录(手工 `live_url`/profile URL + 常用英雄 + 可选精选视频 `video`/`video_title` + 可选 `video_poster`/`video_fit`/`video_crop`/`video_aspect`;抖音/B 站 profile 补全;`platform_meta`;Web 卡片:头像行 = 头像 \| 昵称+账号/获赞粉丝 \|「关注」,签名(`signature`)独立全宽行(最长 3 行);在播时粉环 +「直播」角标叠在环底(抖音式 `bottom:-6px`,无间距);视口分档滚播(远处不拉、近处 metadata、中部 `canplay` 且单路 `preload=auto`)+ 同名 JPG 封面占位;有 `live_url` 时点头像进直播间;**「直播」角标/动效只信 `is_live` 真实探测**(线上 `/api/live-status` 边缘缓存 5 分钟;`data.json` daily 兜底;`live_url` 仅作点击入口);由 `fetch_streamers.py` 补全;Web「主播」只读;**不**参与局内推荐) | | `web/data/stratz_hero_meta.json` | STRATZ 各勋章段位近 N 周 pick/win(`weeks`/`latest`)+ **同段位最近 1 周分路**(`winWeek`+`positionIds`)+ `meta_board`(由 `fetch_stratz_meta.py` 生成;Web 英雄详情「走势」优先 + 顶层「走势」`#/trends` 近 N 周榜;**不**参与局内推荐) | | `web/data/stratz_matchup_tops.json` | STRATZ 对位/协同 Top(counters/countered/synergies;由 `fetch_stratz_meta.py` 生成;全局聚合 + `scope`/`stale`/`fetched_at`;Web「对位」Tab;与定性 `relations.json` 分开展示;**不**参与局内推荐) | | `web/data/item_shop.json` | 商店 11 列目录(官网 basic/upgrade;由 `fetch_item_shop.py` 生成;物品页只读) | @@ -119,8 +122,8 @@ climperor/ | `web/data/hero_abilities.json` | 英雄技能与机制汇总(由 `fetch_hero_abilities.py` 生成;含 ability `tags`) | | `web/data/item_counter_stats.json` | OpenDota 对阵装备观测证据缓存(对阵购买率/条件胜率减同装备全局基线;可再生成;不进 recommend / relations) | | `web/data/hero_item_fears.json` | 英雄怕的装备(规则推导;Web「怕」行) | -| `web/frontend/` | 上分帝 Web 前端静态资源(`index.html` / `config.js` / `app.js` / `style.css` / `router.js` / `functions/`);`config.js` 含 `SITE_VERSION`、`ABILITY_VIDEO_BASE`、`STATIC_ASSET_BASE`;版本页底部显示 `v{SITE_VERSION}` | -| `web/frontend/router.js` | Hash 路由:`parseHash` / `serializeHash` / `installRouter` / `syncStateToUrl`;状态↔URL 双向同步(顶层标签 `heroes\|rankings\|streamers\|matches\|trends\|mechanics\|items\|patches` / 英雄 + 子标签 `skills\|core\|fears\|trends\|matchups\|matches\|streamers\|patches` / Immortal 地区 `#/rankings[/region]` / 明星比赛 `#/matches[/account_id]` / 主播目录 `#/streamers` / 近 8 周走势榜 `#/trends[/bracket][?sort=pr]`(默认按胜率) / 机制查询 `#/mechanics[/{effect}]`(默认 `basic_dispel`) / 物品 / 版本 / 标签筛选 / 搜索;旧 `stats` / `#/rankings/meta` 别名兼容) | +| `web/frontend/` | 上分帝 Web 前端静态资源(`index.html` / `config.js` / `app.js` / `style.css` / `router.js` / `mobile-gate.js` / `functions/`);`config.js` 含 `SITE_VERSION`、`ABILITY_VIDEO_BASE`、`STATIC_ASSET_BASE`;版本页底部显示 `v{SITE_VERSION}`;移动端由 `mobile-gate.js` 拦截 | +| `web/frontend/router.js` | Hash 路由:`parseHash` / `serializeHash` / `installRouter` / `syncStateToUrl`;状态↔URL 双向同步(顶层标签 `heroes\|rankings\|streamers\|matches\|trends\|mechanics\|items\|patches` / 英雄 + 子标签 `skills\|core\|fears\|trends\|matchups\|matches\|streamers\|patches` / Immortal 地区 `#/rankings[/region]` / 明星比赛 `#/matches[/account_id][?origin=pro\|china][&page=N]`(默认全部类型、每页 20 场) / 主播目录 `#/streamers` / 近 8 周走势榜 `#/trends[/bracket][?sort=pr]`(默认按胜率) / 机制查询 `#/mechanics[/{effect}]`(默认 `basic_dispel`) / 物品 / 版本 / 标签筛选 / 搜索;旧 `stats` / `#/rankings/meta` 别名兼容) | | `web/assets/hero_portraits/` | 官网横版头像(上分帝 Web;默认 wide 面部构图,非匹配模板) | | `web/assets/attr_icons/` | 官网主属性图标(力量/敏捷/智力/全才,上分帝 Web 用) | | `web/assets/rank_icons/` | 天梯勋章图标(OpenDota `rank_icon_1..8` 先锋→冠绝;走势段位选择器) | @@ -169,7 +172,7 @@ Dota 2 GSI → pc/gsi_watch.py (:3223) - **坐标**:一律相对坐标(相对屏幕高 / 相对中心),勿写死像素分辨率。 - **宁可不认,不可乱认**:`min_score` + `min_margin` 双门控;不确定就 `null`。 - **平台**:面向 Windows;截屏依赖无边框/窗口模式。 -- **上分帝 Web 定时刷新**:Gitea Actions(self-hosted)跑 `web/refresh_web.py`;易变 STRATZ/stats/主播粉丝等 **不回写 git**(job 内现拉现部署)。数据-only 刷新不 bump `SITE_VERSION`。技能视频与手工 `relations.json` 不进定时。禁止把 STRATZ / hero_stats / matches / leaderboards / streamers 写入 recommend。 +- **上分帝 Web 定时刷新**:Gitea Actions(self-hosted)跑 `web/refresh_web.py`;易变 STRATZ/stats/主播粉丝等 **不回写 git**,由 `web/refresh_cache.py` 跨 checkout 保存增量状态。生成 JSON 必须原子替换;HTTP 200 空数据不得覆盖旧缓存;只有业务字段变化才部署,资产变化必须先成功同步 OSS。每轮 `REFRESH_SUMMARY` 作为 Actions artifact,飞书以 workflow + summary + 生产 freshness 三联校验。数据-only 刷新不 bump `SITE_VERSION`。技能视频与手工 `relations.json` 不进定时。禁止把 STRATZ / hero_stats / matches / leaderboards / streamers 写入 recommend。 ## 开发命令 @@ -183,7 +186,7 @@ python web/fetch_hero_items.py # OpenDota 热门装备缓存(上分帝 python web/fetch_hero_stats.py # OpenDota 各段位胜率/场次(上分帝 Web 走势兜底) python web/fetch_stratz_meta.py # STRATZ 周胜率/分路/对位 Top(走势/对位/Meta;需 token) python web/fetch_hero_matches.py # 同英雄近期比赛出装/加点(上分帝 Web;可 --heroes antimage;--workers 6;--enrich-item-times) -python web/fetch_pro_matches.py # 明星选手近期联赛对局(默认读 pro_player_watchlist.json;可 --players Ame,898754153) +python web/fetch_pro_matches.py # 明星选手近期联赛对局(默认 watchlist;--include-pubs 含天梯;可 --players Ame,898754153) python web/fetch_leaderboards.py # Valve Immortal 四区 Top100(排行页) python web/fetch_streamers.py # 抖音主播主页补全(主播页;手工名单;亦由 daily 定时软失败刷新) python web/fetch_streamer_live.py # 探测真实在播状态回写 is_live(主播页角标;daily;--dry-run 只打印) @@ -220,7 +223,7 @@ python pc/evaluate.py - 改 GSI cfg 时同步核对 `pc/gsi_setup.py` 与 Dota `gamestate_integration` 目录。 - 改 Web 路由形态(URL 段 / query 参数 / 默认值)时同步 `web/frontend/router.js`(`parseHash` / `serializeHash`)与 `app.js` 的 `applyPatch` 校验;新增可路由状态维度时在两处都加,并在 `syncStateToUrl` 调用点(含搜索 debounce)接好。Hash 路由不命中后端,`web/serve_relations.py` 无需改;`web/export_relations_site.py` 的导出文件列表须含 `router.js`。 - 改 `shared/data/heroes.json` 结构时同步 `shared/grid.py`(依赖 `attr` / `name_loc`);`roles` 供 `pc/overlay.py` 使用;`aliases` 为中文口语/俗称(勿与 `name_loc` 重复),重跑 `pc/fetch_cdn_templates.py` 会按 `key` 合并保留;`tags` 为中文定位(核心/辅助/…/幻象,由 `roles`+幻想系推导),上分帝 Web 筛选 + 局内 `draft_archetypes` 缺口/推进画像共用;基础属性/血蓝等数值字段供上分帝 Web 详情条,勿塞机制文案。 -- 发版上分帝 Web 时同步 bump `web/export_relations_site.py` 的 `SITE_VERSION`、`web/frontend/config.js` 的同名变量,以及 `index.html` 里 `style.css`/`config.js`/`router.js`/`app.js` 的 `?v=` 缓存戳;并写 `CHANGELOG.md`。 +- 发版上分帝 Web 时同步 bump `web/export_relations_site.py` 的 `SITE_VERSION`、`web/frontend/config.js` 的同名变量,以及 `index.html` 里 `style.css`/`mobile-gate.js`/`config.js`/`router.js`/`app.js` 的 `?v=` 缓存戳;并写 `CHANGELOG.md`。 - 不要重新引入 real 模板双层库、`cdn_penalty`、`build_library.py`。 ## 文档分工 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dbbf88..9091988 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,108 @@ ## [Unreleased] +## [0.5.84] - 2026-07-29 + +### Fixed + +- 「比赛」侧栏「全部 / 职业 / 国服」与选手按钮宽度对齐。 + +## [0.5.83] - 2026-07-29 + +### Added + +- 上分帝 Web「比赛」侧栏顶部增加「全部 / 职业 / 国服」筛选;选手列表随类型联动; + URL `#/matches[/account_id][?origin=pro|china][&page=N]`(默认全部、第 1 页省略参数)。 + +## [0.5.82] - 2026-07-29 + ### Changed - 仓库重组为 `pc/`(局内识别)、`web/`(上分帝 Web)与 `shared/`(共享包)三层 monorepo;保留脚本直跑方式,站点内容与 `SITE_VERSION` 不变。 +- 上分帝 Web 飞书日报卡片精简:去掉模块列表;地区/状态码并入「访问」; + 「刷新与部署」扁平展示版本、Actions、Pages。 +- 上分帝 Web 定时刷新增加跨档位并发锁与可恢复缓存;补丁详情、近期比赛、 + STRATZ 等增量数据不再因 checkout 清理而反复全量拉取。 +- 刷新部署改为按业务内容判定变化,并统一原子写 JSON;STRATZ 请求失败保留旧 + 数据并标记陈旧,OSS 未同步时阻止 Pages 发布。 +- 飞书日报新增刷新摘要、生产数据新鲜度和 `/api/live-status` 探针;Pages 发布后 + 自动验证数据快照与 Function,避免“任务绿色但线上未更新”。 + +## [0.5.81] - 2026-07-29 + +### Added + +- 上分帝 Web「比赛」页分页:每页 20 场,底栏页码;URL `#/matches[/account_id][?page=N]`。 +- 明星比赛可选拉取天梯(`lobby_type=7`,`--include-pubs`;daily 默认开启);卡片标 + 「职业 / 天梯 / 国服」。 + +### Changed + +- 明星名单对照 Dotabuff / Liquipedia 补全主要战队与国服昔日明星(如 Somnus/Maybe、 + Chalice/查理斯、YB、Falcons 缺席等);`fetch_pro_matches` 按每种 lobby 各保留 + `--limit` 场,避免联赛挤掉天梯。 +- 「比赛」卡片列宽统一(约 30 级技能条 + 余量),右侧「详情」对齐。 + +## [0.5.80] - 2026-07-29 + +### Changed + +- 上分帝 Web「主播」卡片资料区定稿:头像行 = 头像 \| 昵称 + 抖音号/获赞/粉丝 + (B 站为 UID/关注/粉丝)\|「关注」;签名(主页留言)独立全宽行(最长 3 行), + 不再夹在中间栏。 + +## [0.5.79] - 2026-07-29 + +### Changed + +- 上分帝 Web「主播」直播角标按抖音网页版实测对齐:`bottom: -6px` 叠在粉环底部 + (无间距)、粉渐变底、无描边阴影;粉环色改为 `rgb(254, 44, 85)`。 + +## [0.5.78] - 2026-07-29 + +### Added + +- 上分帝 Web:移动端拦截页(手机/平板提示改用 PC 访问)+ 「催更移动端」需求计数 + (`/api/mobile-demand`;同设备只计一次)。 + +## [0.5.77] - 2026-07-29 + +### Changed + +- 上分帝 Web「主播」资料行强化数值层级与分隔节奏。 + +## [0.5.76] - 2026-07-29 + +### Changed + +- 上分帝 Web「主播」取消头像悬浮窗;抖音号 / 获赞 / 粉丝与签名收进头像与「关注」 + 之间的中间栏;直播角标与粉环间距加大,避免贴边。 + +## [0.5.75] - 2026-07-29 + +### Changed + +- 上分帝 Web「主播」抖音号 / 获赞 / 粉丝改为头像悬停卡片展示(不再占卡片正文 + 一行);有直播间时附「直播中 · 点击进入」或「点击前往直播间」。 + +## [0.5.74] - 2026-07-29 + +### Fixed + +- 上分帝 Web `/api/live-status`:正确读取 `data.json` 的 `streamers.streamers` + 列表(此前读顶层数组导致探测目标为空);冷启动用 daily `is_live` 作软失败 + 兜底;同 isolate 并发请求合并探测。 +- 部署时从 `dist/` 目录跑 wrangler,确保 `functions/`(Pages Function)被编译 + 上传;此前从仓库根部署会漏掉 Function,线上接口回落到 `index.html`。 + +## [0.5.73] - 2026-07-29 + +### Changed + +- 上分帝 Web 时间展示统一为人性化混排:近时「刚刚 / N分钟前 / N小时前 / + 昨天 / N天前 / N周前」,更早显示「6/13 19:00」(跨年带年份);悬停可见完整 + 绝对时间。覆盖比赛开场、排行/主播/走势/对位「更新于」、版本日期等。 ## [0.5.72] - 2026-07-29 diff --git a/README.md b/README.md index 7b1be40..2237ba7 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,8 @@ python web/fetch_stratz_meta.py # STRATZ 周胜率/分路/对位 Top → web python web/fetch_hero_matches.py # 同英雄近期比赛出装/加点(含购买时间)→ web/data/hero_matches.json # 既有行补时间:python web/fetch_hero_matches.py --enrich-item-times [--heroes juggernaut] python web/fetch_pro_matches.py # 明星选手近期联赛/锦标赛 → web/data/pro_matches.json(默认 watchlist) -# 指定选手:python web/fetch_pro_matches.py --players Ame,Yatoro --limit 12 +# 含天梯:python web/fetch_pro_matches.py --include-pubs --limit 8 +# 指定选手(会整文件覆盖):python web/fetch_pro_matches.py --players Ame,Yatoro --limit 12 python web/fetch_item_shop.py # 官网商店 11 列目录 → web/data/item_shop.json python web/fetch_items_meta.py # 装备描述 + 机制标签 → web/data/items_meta.json python web/fetch_hero_abilities.py # 英雄技能 / 驱散汇总 → web/data/hero_abilities.json @@ -55,7 +56,7 @@ python web/fetch_streamer_live.py # 探测真实在播状态 → is_live/live_p python web/serve_relations.py # 本地开发服务 http://127.0.0.1:8765(改 JSON 后刷新) ``` -Web 站点带 **Hash 路由**:`#/heroes/axe/core`、`#/heroes/axe/trends`、`#/heroes/axe/matchups`、`#/heroes/axe/matches`、`#/trends/legend`、`#/rankings`、`#/matches`(明星比赛,可 `#/matches/898754153`)、`#/items/black_king_bar`、`#/patches/7.41`(`#/patches` = 最新,`#/rankings` = 中国区);英雄页的定位标签筛选与搜索框也进 URL(`?tags=核心&q=axe`)。刷新保状态、可分享 / 深度链接、浏览器前进后退还原。`python web/export_relations_site.py` 导出的静态站点同样支持深度链接(可部署 GitHub Pages 或 Cloudflare Pages)。 +Web 站点带 **Hash 路由**:`#/heroes/axe/core`、`#/heroes/axe/trends`、`#/heroes/axe/matchups`、`#/heroes/axe/matches`、`#/trends/legend`、`#/rankings`、`#/matches`(明星比赛,可 `#/matches/898754153`、`#/matches?origin=china`、`#/matches?page=2`)、`#/items/black_king_bar`、`#/patches/7.41`(`#/patches` = 最新,`#/rankings` = 中国区);英雄页的定位标签筛选与搜索框也进 URL(`?tags=核心&q=axe`)。刷新保状态、可分享 / 深度链接、浏览器前进后退还原。`python web/export_relations_site.py` 导出的静态站点同样支持深度链接(可部署 GitHub Pages 或 Cloudflare Pages)。 ### 部署到 Cloudflare Pages @@ -72,7 +73,7 @@ python web/_cf_status.py # 部署后只读核对(项目 / 部署 / 域名 ### 定时刷新(Gitea Actions) -仓库 [`.gitea/workflows/`](.gitea/workflows/) 在 **self-hosted** runner(与 `site-traffic-notify` 同一 Mac mini)上分层拉数;`web/refresh_web.py` 比对 JSON/图标摘要,**有变更才** `_oss_static_assets.py upload` + `deploy_relations.py`。数据-only 刷新**不** bump `SITE_VERSION`(`data.json` / `index.html` 已不缓存)。 +仓库 [`.gitea/workflows/`](.gitea/workflows/) 在 **self-hosted** runner(与 `site-traffic-notify` 同一 Mac mini)上分层拉数;`web/refresh_web.py` 对 JSON 做忽略纯时间戳的业务摘要,**有业务变更才** `_oss_static_assets.py upload` + `deploy_relations.py`。`web/refresh_cache.py` 在发布锁内通过 runner 持久目录恢复/保存全部定时数据与补丁状态,Actions cache 另作冷启动备份;daily/weekly 串行,patch 与全量刷新冲突时延后到下一轮。数据-only 刷新**不** bump `SITE_VERSION`(`data.json` / `index.html` 已不缓存)。 | Workflow | 时间(CST) | 档位 | 拉取内容 | |----------|-------------|------|----------| @@ -82,6 +83,13 @@ python web/_cf_status.py # 部署后只读核对(项目 / 部署 / 域名 **版本检测:** `--check` 只请求 Valve 版本列表,与本地 `web/data/patches.json` 的 `details` 比对,stdout 一行 JSON(`has_new` / `new_versions` / `latest`)。无新版本则跳过详情与部署。 +**可靠性与验收:** 每次刷新都会把 `REFRESH_SUMMARY` 写入 +`web/.refresh/summary.json` 并上传为 Actions artifact,记录步骤、耗时、变更、 +部署和 stale 状态。飞书日报同时校验 Actions 摘要、生产 `data.json` 新鲜度及 +`/api/live-status`;部署后会验证本次 `refresh_run_id`、英雄数据和 Pages +Function。STRATZ / OpenDota 异常空响应不会覆盖上一份有效缓存,OSS 资产未同步时 +也不会继续发布 Pages。 + **本机试跑:** ```powershell @@ -103,14 +111,14 @@ python web/refresh_web.py --tier patch --skip-deploy --skip-oss | `STRATZ_API_TOKEN` | `web-weekly`(及 daily 内若触发连带时不需要) | | `OSS_ACCESS_KEY_ID` / `OSS_ACCESS_KEY_SECRET` | 图标变更时上传 OSS | -手工数据(`shared/data/relations.json`、overrides)与技能视频(GB 级)**不**进定时;新英雄仍需本机 `pc/fetch_cdn_templates.py` + `web/fetch_hero_portraits.py`。冒烟:Gitea Actions 对 `web-patch` 点 **Run workflow**。 +手工数据(`shared/data/relations.json`、overrides)与技能视频(GB 级)**不**进定时;新英雄仍需本机 `pc/fetch_cdn_templates.py` + `web/fetch_hero_portraits.py`。冒烟:先对 `web-daily`、再对 `web-patch` 点 **Run workflow**;第二次无业务变化时应显示 `deployed=false`,且生产探针无超时项。 仿局内选将四列网格(图标来自 [dota2.com/heroes](https://www.dota2.com/heroes) 竖版裁切):点英雄高亮克制 / 被克制 / 搭档,下方显示定位,并以标签页切换 **技能**(可点选魔晶/神杖升级与天赋树)、**核心装备**、**被克装备**、**走势**(STRATZ 优先:勋章条 + 最近 1 周三卡 + 分路 + 近 8 周列表;OpenDota 兜底)、**对位**(STRATZ 克制/被克/搭档 Top)、**近期比赛**(终局出装/加点)、**主播**(常玩该英雄的收录主播)、**版本变更**(该英雄近一年各版本改动)。 英雄页上方网格固定高度;点选技能 / 核心装备 / 被克装备后,详情显示在下方(装备含合成,非弹窗)。 顶部另有 **排行** 页:Valve Immortal 四区榜各 Top 100(中国 / 欧洲 / 美洲 / 东南亚);数据来自 `web/data/leaderboards.json`(`python web/fetch_leaderboards.py`)。 -顶部另有 **主播** 页:手工收录直播间/主页(抖音 + B 站),抖音式卡片展示昵称、签名、关注/粉丝/获赞、常用英雄与可选精选高光视频(视口分档:远处不拉、近处 metadata、滚入中部 `canplay` 静音自动播放,同时仅 1 路全量缓冲;同名 JPG 封面作占位;有 `live_url` 时点头像进直播间;「直播」角标与动效只在真实探测在播时显示——线上由访客触发的 `/api/live-status` 边缘函数刷新,缓存 5 分钟合并请求;`data.json` 内 `fetch_streamer_live.py` daily 探测值兜底);数据来自 `web/data/streamers.json`(`python web/fetch_streamers.py` 补全;亦由 `web/refresh_web --tier daily` 每日软失败刷新)。视频与封面放 `web/assets/streamer_videos/`(gitignore),本地经 `/streamer-video/` 提供,部署前用 `web/_oss_static_assets.py upload` 同步至 OSS `streamer-video/`。 -顶部另有 **比赛** 页(`#/matches[/account_id]`):明星选手 watchlist 近期联赛/锦标赛对局(出装/加点);名单见 `web/data/pro_player_watchlist.json`,数据由 `python web/fetch_pro_matches.py` 拉取(亦进 daily)。 +顶部另有 **主播** 页:手工收录直播间/主页(抖音 + B 站);抖音式卡片布局为头像行(头像 \| 昵称 + 抖音号/获赞/粉丝或 B 站 UID/关注/粉丝 \|「关注」)+ 签名独立全宽行(最长 3 行)+ 常用英雄 + 可选精选高光视频(视口分档:远处不拉、近处 metadata、滚入中部 `canplay` 静音自动播放,同时仅 1 路全量缓冲;同名 JPG 封面作占位;有 `live_url` 时点头像进直播间;在播时粉环 +「直播」角标叠在环底、无间距——线上由访客触发的 `/api/live-status` 边缘函数刷新,缓存 5 分钟合并请求;`data.json` 内 `fetch_streamer_live.py` daily 探测值兜底);数据来自 `web/data/streamers.json`(`python web/fetch_streamers.py` 补全;亦由 `web/refresh_web --tier daily` 每日软失败刷新)。视频与封面放 `web/assets/streamer_videos/`(gitignore),本地经 `/streamer-video/` 提供,部署前用 `web/_oss_static_assets.py upload` 同步至 OSS `streamer-video/`。 +顶部另有 **比赛** 页(`#/matches[/account_id][?origin=pro|china][&page=N]`,默认全部类型、每页 20 场):侧栏可筛职业/国服与选手;明星选手 watchlist 近期联赛/锦标赛与天梯对局(出装/加点;卡片标职业/天梯/国服);名单见 `web/data/pro_player_watchlist.json`,数据由 `python web/fetch_pro_matches.py --include-pubs` 拉取(亦进 daily)。 顶部另有 **走势** 页:近 8 周各段位高胜率 / 上场率榜(`#/trends[/bracket]`;STRATZ 周胜率数据)。 顶部另有 **物品** 页:对齐 [官网商店物品](https://www.dota2.com.cn/items/index.htm) 的 **11 列竖排**(基础分类 5 列 + 合成分类 6 列),点选后详情显示在右侧(含合成组件)。目录来自 `web/data/item_shop.json`(`python web/fetch_item_shop.py`)。 顶部另有 **版本** 页:默认展示最新版本完整改动(综合 / 物品 / 中立物品 / 英雄),下拉切换近一年其它版本;数据来自 `web/data/patches.json`(`python web/fetch_patches.py`,近一年窗口可用 `--days` / `--since` 调)。 diff --git a/shared/http_utils.py b/shared/http_utils.py index 047a85f..6ce8ce7 100644 --- a/shared/http_utils.py +++ b/shared/http_utils.py @@ -7,6 +7,8 @@ timeout, and retry conventions live in exactly one place. from __future__ import annotations import json +import os +import tempfile import time import urllib.error import urllib.request @@ -22,6 +24,36 @@ HEROES_URL = "https://www.dota2.com/datafeed/herolist?language={lang}" ITEMLIST_URL = "https://www.dota2.com/datafeed/itemlist?language={lang}" +def write_json_atomic( + path: Path, + payload, + *, + indent: int | None = 2, + separators: tuple[str, str] | None = None, +) -> None: + """Atomically replace a UTF-8 JSON file after flushing it to disk.""" + path.parent.mkdir(parents=True, exist_ok=True) + text = json.dumps( + payload, + ensure_ascii=False, + indent=indent, + separators=separators, + ) + if indent is not None: + text += "\n" + fd, tmp_name = tempfile.mkstemp(prefix=f".{path.name}.", suffix=".tmp", dir=path.parent) + tmp = Path(tmp_name) + try: + with os.fdopen(fd, "w", encoding="utf-8", newline="\n") as f: + f.write(text) + f.flush() + os.fsync(f.fileno()) + os.replace(tmp, path) + except BaseException: + tmp.unlink(missing_ok=True) + raise + + def _http_open(url: str, *, timeout: int, retries: int, backoff: float): """urlopen with retries on 429 / 5xx / transient network errors.""" last_err: BaseException | None = None diff --git a/web/assets/streamer_avatars/fatiao.jpg b/web/assets/streamer_avatars/fatiao.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f3d55fb9cd9fbd2f1566d1b4acb663cda0bdc76 GIT binary patch literal 9484 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 Cbw1_* literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/huonv.jpg b/web/assets/streamer_avatars/huonv.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b45c549ff08f627c873700c4f576f77895f4694 GIT binary patch literal 75001 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 literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/huskar.jpg b/web/assets/streamer_avatars/huskar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ee1c98821eb572111dd329610620ebb97294423 GIT binary patch literal 50338 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

Xq*b!?O~ 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 TxpC>*vM^u#yc&e!zpwuX6|gR? literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/kaer.jpg b/web/assets/streamer_avatars/kaer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e09940eb381c620502735bb3f154bf204a10595 GIT binary patch literal 27531 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 F-vFXzRgwSz literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/lanmao.jpg b/web/assets/streamer_avatars/lanmao.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a63f25b4e037a1404e73d430a115eed36ec26e9 GIT binary patch literal 39725 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 Je)6B${{z$`+6e#v literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/tumao.jpg b/web/assets/streamer_avatars/tumao.jpg new file mode 100644 index 0000000000000000000000000000000000000000..464428bdf87377bb9a463837e4b456c83f70720d GIT binary patch literal 75716 zcmbTdc{Egi{69WpFvuQ7#yVpgDtj{+hKeECcj}FiEy>tTS;m$$4Py)MX^?HKMTE*b z!VD6!hcq>qkjj><{d~UP-}(K{`Th0#{hs&Sd+s^+b?&{7bI*M)kLTn0cls|AAZ%%7 zVFmyK0RZ6f2KYM*xCr3k<_2?f@qoc#US1wPelY?56DRm3MNbNeNuQCGkv;=~$idDj z%PFWsArO@ds_Gh=IyySC%19JK%kZ4Gj@JL&1jx(F%YTAjLO?)5OCBPx_5a!ab^=6r zI7T=|KtKfmhX@cP0{q(pkUf4+F5v$%!2fAL4iG07H<*W)@5J$f7GVGf5Cr1j1aWb3 zavraaJH8I!6yXw;*EHciY3B`Az=>%Q$fZ0`)5b1w`wzch+CE`PynLrlOGutkR8m$^ zh3n|*T|gl9FJ8KAW{$D2bZ~TXc5!uc$NJvz^A89N3Xh14ijIlJC#R&Q-Alipk)4y9 zm;b1su;@uyc|~Ovt-7Y^d2`E)*0%PSZ@YVX>5RVqfzh$?iOH$yk27DsvKAJX*x!~{ z);Bh{wtw&Z+1>jeTtEQmf5SRH{%>Ia4_qS0xHvdDL7d?K!3E@qKHfnhoLusn+@dCS zU~k+>1uX)Pm?^omv5Oa~ZU0N$C+q{?DVWX|#r6Mz_P>z*zXO)^{|njw1?>OEH3Q%W z0gpc(NCaREU~#iH!;9-}guTLtjGCv%f3N|9%{y_Qw29HHZbgkb7{^#((TAS zr$hkM`22SDb-B|}xouVvr<2#L1?(u&^2@IjZn>PlfYo~S2-Zwf1LkHLsASjt&zPz> z{dN*4hr~DiIMo3o zE6^VYh;V0g`6>B;AtqW53aH~sqgmKOOhU=zJuu^75xfyMS6zUSC zo64;sSy9Oa@d}Ok`a+C9LOM=O$R<>AZ*sw}Kcb%qlpU@;%sm)>!Kufl0_H1dz#}6-vLe_JRHyQ4ajOCaM6%B5IBC=rvHuL@|wj#a23{CHCeor|CTH-+svlH ztwU`T9<`S%Xq1E#eqJ5AgWLKGIFn1`^xt)e+Je8S09>*?Nf8=IDjV^s;OW__ij8Y4 z;c*hOP8=toc&lzPB&+p8ta4^0N_a4G(R)h;u0$YtcdU;osC_j!br||BFr)j*DcM*; z$$4q*tF{)y%B%KK!py0!T#+{S>d_l^Mh8fu7pzvrja>z#PoEXPtSH5~i z2xTJ5tc#Ncm5{Cmof#EO<_}L)-Bp$;U`fN(ZrXtXKNv`(%DTKx2~IxFR{5-5oG1gp zM>lN0ZJz)i9e3UJFo*LDA?v<}qN;Nhp2GI**ZPs)xC8%uE2}W}0;M8K)Gxw|RrvSM zBofCrUa~?gko`0~A4iWBqN-*;k|VM7q3c64W~c@NS#s@)G5#EyRVCI5He?y)F6C;{ znW*a24|r-Em)2X8M6rlfr^0sT#IREHnXGeK{YFUY5ZJVd}oA^a`osGVSnH#(3S)dyC?7TOn`A?HEoguby5)(f) zV*ts;mJ87`DQuZ-znR}2e!HP2N1`fc{G9;~L}n3tJMq*v!F`jXyxN;l=df;;;@EN7 zWjFV(_dCch0QPz%GWZ7jCUe~Zeh)&0pKJ1e+F|i3h#GEDn4KijDWPaCDQ0jwd@rK1 zFCO>9n4W5IAF?+Bx_C18(^b~MH~pyX692)~_Y&|b={OZ&;<`09wcKtTyI#5G6Nj_H zGzQGxa5%c-VlJ!ZIrxuy(o25=G|AMSgG!8?_rAIrd7WiwAPgn`s#H zc|qkarp<-wVZEs86q z|0Gbgmz_C)3Qq^Mr=*7~bUSa@wy9;t7a!umJ}P1mnT4=~GtWPhRI_OPM$_W*0Q`|7 zclV1#b9^Xs8#Ggh?w5;i=IS?dL(*MF%h8{^=L^aLhVYK-aonI&`{In`Fobn%aRTAsQM^FvGv`qC|KUxu)y>1v9`Q>oGkwAx>DZ=Ie;G^X{* z5t;ZSV-{vean0QA)yt*~-Wz^ScCCvbkZeUb>7xX4XXz>C*Pw+*uCh#9=RpuQ5LBO0g=K0U~~yMbQ`+4`^p@lqnF#&-n9)X`oj4$7yqs%WLRf z)h?){5yh{h?M2`d)ur6NF3_9FN%H+Y{ zO0W!zvajIIq)EWmhs9DH>R`q{l_PBHG1?_ z`hTv#XL^KxaqM~7@>FoWs!7FWfhDU2Udl)UjkW{UhGB6*N(jSDI)Tjfkq7`ktHMfG z-|$QXt}bI@x)28{9A95d%m~I=l;yMQF9aC!k3Yylg1)H$PnT3BhF%3=sl}ESzOG|; zvH+4wiQ2c#CQrOUvUA=$oS3bydR=c&C=mywefk*VF#NQFV~$+zYNpx#7x0l*FQc zqL>P}K{JC^on;}@`MY-EhaA@MYwcY1wF8mtP+UfqijnphN13uNlsF1+(540`l7Z8H zIUsOmP;u)vjeJ4$qD)(_jjiN6{&PU+Xf7RXoQCT)(!3vM5N<7EaDGU;7=PYdF|1l* z`Cyqyz(^XWx<#BIkBkSu_TAQX;ZVnATzh>Ow{kUw(CmA1TcN=t@I6#kn{;r-E5q|V zTtB+Hx1|fZb9ED7hGb3->Id_fXjU7QPiEARM?y8p8GMaHy%lp9vtNxu;V#TkJIvWM z=h^LKEO@Ux6jjkIL;z z1kFV6mp*ABwS=(_m7ilqEmC=BKTGs-K7f^lWg~u9ne|YG(5lHlL0cuV|7K2Q0AhDt zW$}{##s39dV43Xao*a;M2d1+)S;SEqD0$D8L3y?pZhg65vQmyNWo$Xq5^Be5^!V`M z4SlAs;6%`e={0mLXMACa-^71+d%;`vz_&C`wj^V-MguC`#3i9d9(Et+&9;;^HCX=( zn5yJS)A=N?Y~UD9{R=pHncMy)(}5m)bUn}eR{E@n1eQ{~`p0qYX2)3IKncS-m%l!# zEXx{4{w!^*O%y7vUTBSM@l5pGn4bvn$ezcRFeJKuOUR-TdrO7qFtgOEF^a8L5x+pm zFa58%{@|@z1@+Jph~S}si}860#%N+&is0+9+=K3t-&JA~{e}tftEsLFceYB%o%}~A zc+7Mvll11{rPGEG_GG0s&ta%G`a{^KEBwE8-yL9b-i>T6vIQc3#0gIS0e?Pwuv(w0 zIiyBi-^n&q#KCIYzZNOoJA8Du)p)1h+r$Pt5Y;5_4+~*|tBwAf;I)mB*8co-`Kt3K z?{d!W#J3Fu>U%(Ez%wj&SjwOhCWNwnInm}s=ZCLPI>P7v0=8?umd?IHacNEVh5`9-3@iVRt7pW0Y+4X+#h4V*orq=o zUB!5>7`b&!wA!FX0f<^j>+4}rwT#ca_~_Tq#J1SyuCKla=n96fT!lRn%v?;=r1&=k zSmyXN+7IwvPZ`lIhK!p4*oQ;E|aSBLa1jWj;T=#FkVWB@o->6P2qrYcehf$HC1C%b98-#X(VmA5!@6 zVdJjOvccv5ErF$JFQGAL^8t8|?e$yy`CoDqBK`vQR#cxv!d`31qb$S-rO&GRHzN%f zMz0~zz@H>l?O3Q;ZR!00U87&2MCnsewc#?!>D*;#FF zNsMF{Ip4Uf&H&hQ{+kHMA!PLa_iF#jnpJx4`j5CEk9TEqY823P^j`p9i3v=w@H-br zyTa2SRMYO{RB`Yd!%gR^!#Ru7GUZNoXgSbo2HEV6eNBF+xDM{NgoH9}r^Gja*i9g> zI)6dG=6?~pYL$MpQ2c7S*Fv&OVy(Y~Z&Z$C%Cm>Fav)6vErRYci)beNVR-x*z+(yV zp`bahV94(pKAY-ZSGPGcTvEbtkR+yXNYNJfE$|Va(Lm2OWCISH^PS^`2{x}5z6mXB zi20f&*&|Y1VV<05?*5oDfZqrtA@}(06^UO+LjPE1YYCI|A?vokVwK9R(Nax}Ov|er z(qSCpw|~kc438C2twLi!MIv*nfW^orI6HMp|2 zs=Gs!jV-ZpN5y%k6(6mceG|7B`urDgEuh>7VMmWH8XWUbiN;MfvtTum2ysk+Z7eXI z{j6Fn>*KKX_*?GpVfeoQ8@5$!iUpNh^Q8z?heI1IGi%&;ZC zBWccZ=Ru|W4^#@%TSMyIsf_GC+f-j z9jI_Lhgq0*5)Zq0-0_`+@~%%g2{tDr$pHMWega$^65xVaCd;&m_Z^sr{U_6$YIgn3 z2Zp^V^yD7-8rkza_v@Xn!6gY;;H%KsPjT8QvMe-}A?52ixH*DZDFr<`i zHtL>unT`h(t;ORsEHi#8<4f2yss^n&eD_Si{!#^FKy&(x>58AGGMUlge+@~bL_iLM z4ian0If*gi)=Q@%?ZLr5Nrh*;Hm5VPWCR6x3eauKCVk&j#OaxN&oQH?h7Elv+9Y}! zyrglq7l?cO?JQ~g#K2sWAZq0~65HuoUQ97mGweJ9c*oUMiN@i%(h0?xWS6u z^P>&WeFty=Jq7fZc^ITDnd`L$8K=xkF_qTt7JCA0_iyA85d(-do? zJGCSYl!m{KF%vWk#p5ShvijPOON4gWR1TH*#kvnft?&FU2SGvWPaIx4Gs5lZZPp)u z;H&~1uV!fG!`6><;ly9o;1-Qy1`#4VkR=!kmDV588YT815nrjoYY4-=QI-V6E6f-k zcG#Vqj26L|%Fo4so*lx|EQ|_%7CjH!z4c&ryXK4AGj7(F4&YaZ@!LvBoKRTv7l2xF z_Q!8!8DVrVh;wA%n|Yhry-MC6@LHoKw#-~aZT4S4EsT()>DD8P+8in3>_3jlt9BUt z26CyKYeOFkF2Zi$i$he}VcsYBBXkw$j`^#-C-NaV#X;fwUgswt5bb+O!niSsRV%$k z%|1_=!fNbH6~y;1KwQfzwhb2Eg=CAL73}_!rYlv@zSYH1R(Kkw0$pFK0BC$7M(d0v zEo>=dgBvBVyjSa{f7ez=y%M)DK98qO+t-1WlQTkriAdIeswGx0LpF@A+k^yhEdIO1 z9*GhcmO!j+Rr5f+aHRH1`MS77nen%1X>Aka4`aR%Ua=FnD#?E1dL1JnrQGBpwAfqR zP|WYjQ?f+Dd(Fg8#FN`qg42ffNMM@Dr)hg&D97(g8tBb3dUqC7VR^qf%&4FQeHy}| z*cwk_QK=YiN2UXMcNYY+)k`tsM<5uU4knQ8&MGAy<&c1`PQ;4pJ=3+9OP3+pKxN$y zZ;?|g`p&4LQ})wq%X=>7-ZE$VXUtKWM{$1vaA1&U8tU0@U@A%SYjmo&PaQtfsMaHPv2{OUg|dfP*%MI6Fb~%*Td^wt*|Z^DG39^u%CZ zkwX_FnW1;qucsf7?yX+;VC`%gI^C2!I^ii8=k}2E3RY$e-bH};9s;%_g_{!HIQxDc7xIf0vs$D*rebJRBnxKmFnyEDn49+|5xecET-u+}E#U#xlvZ zW+9VaIYxNo(v&GFU>Jl-`(g?jZ;(H~`P-KpkaaU;*>VIc-mA1S7xQDY{R-B3xU%>|$j= z*lqi9M~GhVfun69P89@Cf4fPFOVwo&%Wi;C`x%ODq;uMBq<4;$ud=PR#BIFCM>vMo zJ>(Sce?MKVOW8OboNcjYops}RKaycMeo53(WubVW;1boUzU`muEnvmOK90I;cWb~K zHNnvk!N<#TN-k20k$uwOMLRizs~GOHX5j11BRon4^6xgrTD=@hjx%zH-$dd%x_4g4 z{U&mF-2v0JKj+Xm%$;auD#&|yRYSx&6gSRp>xDm+Jc>v$v$kmggullK=j4p$rJXhm zw-S{LxtEa{xT2p?K+_o&oZ;rpheGGZ2Q5`Y*o2JW05g=0$>n!25|GRxN=dtfq;iG4kn3RP+Wf!T+53(ZLDa*mP##;ews|~xrj~*QJsmChtut>+ z&PS!)RGrJo=|5`mS&HT=lOt^PI`|>K1%hN^0Go^sSJS&KYzWTj0te69h*OSI-veK- z^AaVO6v0Jk7pxuA`Xn@@# zB)A0__O4j{lsW*K7~c^DRY9<6H09j>jpVWF$`JK35J-&QCGLj}*52dXa(HW^!MK;d zcogSMd*{1InOp%rj44pgAgY}C%$D26JzQ?{BD>f!MqY$+1Qz2@`qFu=`$==D}dLb8u;y%1U}y%7~!XV;p7q0(e}v~VLVIqsus`NyhvqZ z%eDwjYZFQKrdS>4&9?0!{csb+a@X(bax2;mT2m-+_zMPvUXhX>Uhp_u8D`3F-n9`HY=R-p8m#?bjA`r?|E&3WRU?PDivz3aAJ}pPi3?8qs z%ybXEl;vMq!Y^9iCDvoj(J$Md*gaW_-5`(6q`!maJ2+=3zCGpnL;8-b0(luzpB4AY zp?o=+U~6_FLV2E0j%;#SwWFjOF?A-G+;=R$uRJNfUHA%9w-TxPNgIq#+& z1UV5eNXp%MuP5G(qn10hu?CWpwD`7umzXu=mi#vf@d6zs@GUENZheXNuRg*7Py=o=V4~7X{KN<(hN!@3Y={%*UMP)h+;sOcxeOy-e z9P|GzGMm#V_XS!3i1FW5-$fcxizoAf`#}Jbek8=H*|s`oCw+OQ%CXNL+}Z-V98;eH zCE<4C#bLB{4L&oQi^quqf8u#m`%($t_xNBYR)AQH*|;qw@fYw#>+$2xfYNk$&S%b?y{QI^k@c|>ahA+k zhx5cpJwN_hg;MB8u-HkcmfHi>8xj%>tDHYh-jF6e%x=QRg+oOBoj8Lbu6$*#4`AmZ&ZWVb zK66U6UF#Vu6sdejp4+GJ`4iZIhT**X>64orwcohSQM+B0Y57&Ofs`%OA)Hb--3JT9 zPcUv@FLtkUdHhL3MJHegxsbD4l%6H{BLgA*-1*vthh_Qi{pPK*N*1&!6wor}>Iub8 zCqVUgkhyI3)-h%i;MnGWc>QIZ-jHnOP=JrDr z4M+$}pcfM%pxrZI+QCDEr4tMmdNNr8H>Ly79OHhR6w45Y;qrsyBTiIH*!Pg;C!{FF zi_SOr?xzNy{5e^A0{}dz&b`>VH-29v*srKR$;SP;aELImae<8Hp$SV008Bu9_69N)a=wD9^oq1r`Zx^o7Z4M5VDw*JYCT$cHq2f;cRMCc{HSa) z_j;+y#{i$?7ITNKihc-xQrvR6SE#{OIS4ROn0ei!1&X=o1rZ7|4dqyHjGY4_OQIE- zGzq!rW&5Ak%7|Y}`lOM@miVua?8!P<^@@8S3Vx!qhj{c~i!CH9ey8Q!Z~6&g8&90o zlXpmgRVt$Loifld3&5T)wV(T1^gT)z&-wA>-Je-DEUQpQ(&vjdYYgkRIXCe~5$UH8 zvr^*=9K3*tisGFnZGZAuW)Ssrx-V?Q#^!A)CMwYa-c2TC1hmvho#Ype;bg|esWz#A z7m>%i->7Q87XWRuu5m%JZD}sKfI$g+Uci}~iBgcg&G|Z=J3jNc zZl5woE)t%)M7ZFiX!-}{<=>!NN~Tezg;~c`8-?S zuh0c@&oFL2P|`HZ939vQVJDdd`3WSJHG(rPiI^qoSqv*R*ZYWS@L7xbPKaICBhUq} zhD^KXwtyiojN#nmkPnvhcR5+OgH^mCM2r(~Ivcq>)A)tc8}QB_F>JG0G)~xg^00H0 z#Fmhzx$`%3ON6XV7jKSMr6jVXFGQ}|e&-VG?)q7j5AE{ndb=a`b}>0kW`1k53fG0w z9}5d}3cajyS5;cWVEsJ@*5qyL6h*KDenn}p4IC}|)*3;B`P`En;+0sncW>Nm(g3hB ztyLeMIkNsLi_#~|*V8k2on=*NXX)I$owLP@4)=g2AnBJQc2J?0HCh1ilggYao&Dd8 zAA8(K+cQ?}kevP?qm-|O7gR0Ue1(s@5sre^JaTb3=S4YwW>}oQlN$ykWfo_#j0vE* zS=C6TaEAQsT74tmBMhlyCM#fb|vp&z)-HcaGnu=^mDGq%3&l|n(y^;(V z_7KZ|M{Xks8$QcQ$7zRv8s2>^XNM7Dg_dJ7kAv$Aw)Dis3wepcu@q znKc@Xp<}>Xbq}sps`7UA9rHMl__D2f8(z@4vgW&^I=48-T^VI5qB=CMF3XmNL+Er63VX zStcu_4+C~gI79Ahyq{}>_n0o@p)?5 zV;mjUn$C4=_d`da!T%JJ=Bu7nKXWCJ`>u617|2#=%l+cMX}X~pr7rQSgXecmW1gAh zwK=?laL+#l3mZZlX_dz>a{q zM5cwH3>=e1i2Q&cm_*kCWVHEV|BMkemp{q*ygZn41_&z(2;}YWWVaalQf+j)0^my4 zm|(2_%HKL;TT;OoPnhC84AIyZa2li@C(a)I*~5^?0Xdt>Gm zR6=<)QK7v+JJyT;yb>)H#ta|kr~p;NXwvVsv^(W|xA$x<)Nkf5ux9FLl6FMu{DhMS zKQD+>@Y9(|_TUUPhm3;sq@FQ2i6YMRLPI8MjmYJr_`Ia1Ff`O?`>sv8K9d>{Q2zdY z2qAYj#$+s+jzX=(D3b!NtBS#M2&BS>c*$rz{5oOHzGeD;*c@?zvbkp26=qQ;GVp=C zV*#0nH;enzS?dxL*mLjCxUffuV~A9}ok9~!8Tq@s6H0wT6%>$QXK?g*IacS;kvo+v zY3{h=NUg=-Amr3}oi{EJqrIBuuvXz*JMP}cjKd??^`MJUDV(HY_gW=a5@M^mK_Z0r zPjS#a802@klAI)y3AA=%=VUHk$(dSWSBVLlAy(03#X3KWPPs%I!-;-52W@~hL(*vC z6t(cBHH9sk=b1~0>I@&^()wU$TRtdmW{~L~o3ELz0g%3mS>1egq&;%pdnHJ!AYbiT z?TWEXbDBBAA=m@oDAcwl9hB%i3@ye{j+|njdGp6FL!m7uh9(|iPiQF3`NFfFi5%X_ z%E%$yp1q*v_d7+o=KI-N_=rk)2)u(kw#50_!x3TaS()+uyEtN&HBzV4T-pYu5466_ zn*~_zLUmMgD2EQ<*M@|+bDv*Oe9qt;uiAOBK7d5bSR*REA`S7GmY27bo9WjqBpHy1 zy46%QdC6~gCSLg%ekY|c$1eof`yp5G4$5H~?aa-eR*!O_)R^iEq9ughi|5Rc%NAn4 z_%$d6br$c7AU#Qr5CXg5jAwQ|cA1B10)EzCEB_#D$Z$ zI!TH5bS%I7nO)>5%5AVyF@sCgFG9OMZ{39WGO^0j&I^}gBy%=~&{c+7Y_-ihbkEkG*sfYI8a_QLsw#Fq`B7lHRTFWAv>=$CW( z7J9;2*<$>VZEs?{(}x(*vwP!JKRNk6GNv+?JiiYcQe)SyC3HU{?GcmgN0XBMJ^5u4 zjEwpCJRbiA+@|NYA}ag72n#11M)Y5i@KoJxq{juQup>_pbb9hx2w4-i=f(wJ%mMr& ztCPh@uLW_0q~t*$=Z$L*aGmr(Ab;^)rk6}^W~y!3vx>a`?qUh^rDv1c4Q1UqdQuKL zh4lzT2WySXn&r;HprL?sTISm&JXJY2!?ZsaB_|A)Z_lZY9&BV`pyTmk)gTKw1b7Jn zntU*A^*p%r95(l1cPQ&uz2uEeKEf;M_ODF~eyuY!fV@rc*9UIpoR1lNcxq_4<)Y|2 z{bzD<`i=o#{xS50U}u`$!+sr78@XXg`Ps2nNY#8&N9>0-eKKRrHSi-&OgJc3EL& zVDWQD+(6c``_4aMXg#!oIE2cb5?1b7nR$hjD(E^i?^gpoR@?*`Z5fh>cVt zDB#Ytem+6K{D$!}6cS^*bP=n|nWLrJx6U>%>}8#H0#lDCnH))Npv?>?nw8kf0d;C{?*l3I~jC{pxU|KvMaQOhfp#x0n@eH zUM+qhhlm?i7C&?Nee6DROQ$njpvJ_o*unI|pc#&ud+IEaOtx#0Q%^eX6Q22Zh_4L7 zYO!+@jIDM`lw61l04`)%o1+39laT$W#;aRvTT2xEW0jVLvUJQ&1^vS?QhK>OxpQ^e zZdN*wv_#4-nX6tVZtpo&d&G5VdKYL)?a_=Uo7Rp4HyZJI-@_4vK zZi_f}BWFBkQxs|JUXO1lJ_SL?<{LD3^|QmB&V{*vN{_jrJeH$ga=Z|}HuUF`AP3D* zuuA-v*a>BRAw2E7TjwxhH8UZ|C-^dFPfwDIbf6xE>9tfv1oXy&s85O;9T(0cRxN+~ z+|U*HO~ir?$FmzgYH^$Vw6F2XpUuQ8+G0N^Mip1cEA$q8<|I?+G6xDw`jxjTXN~%u zn$W?ZKjS;HuO3OrTXf3g4t#S&vIAyL)dlg%zzX#>Adcq>VMKq3|72awqp>JLK9N;y zGPXPBqjE_r*=S)rSjaHhS&VBKX_Wh^WPypB;;s-IU`iLj5gc_~1FV@MFk&dKCQ^zp z6x3iLGg6{~Qe}p09|UR>*4C_3A83A}V5`OWdT10@i(8WD2F(Ys5}(^+w@P+7Yb*TS zqJP(XtV7QI^ar#w7sh9vN1&NSV}sUdn~5mAL;Q%zjq5C_%pgDm)DFI;jEXg8Z`8+W z7J5E{0VzpFzZkcxTKr8~FjgF&;<0;0W6k_DC^HN2mJJr`f?m63nZmgcDpg&nw`i~T z=$-#mCcVtd70@O}Dm-fbZNX0q-$5g{N=o-#AHRRK$($%C3DaY;P}&*9bCZU@?#PZd zpUv`4v&M^9U1UDUlWPFiTQ?rek;kgnOu5jea001C;h8A&m}WY11bUg zt=S0V!vq2SOL<7Hjytk!bgPJ2uLKe{mh4rWEBHB8ho~7AhEhG5Wm6A=z6w2k+!v%j zU-)JnGyIgh?wW>ATuoh}GWD^!w2EZc-7Dlrms*IT7pw=nQKqFUM)lVtgT6SDv?(0s zyMF;n9co_x1ZAjMLyo=3=N;6u^{^+m-iu~ZZ_wKnCiF28|mh) z_+>+>&`JCkLY7Db)egCc+f?0wVAm^NwWc95Kcj8lWlOO44uj5f(|6)kFW8j^oGpz! zXMVN&#O}f8Jg&2n-%f&!?D+wn{zO8r;Y)RE4CfXnDLjKLtSQL^O-ZlRs-6UX`)n!T zmiDgDC}c37%H0Dq2Q<%tNkUpbvFjvA(6CeQFP#% zOVP(^Y~V7HY;{N3@!j2aqh^ry;}e>+`>?g0+WL@aNW`{MSvIQ1I(Cg3AfC}FtC7gF z^|krQr8IS_D;uOsZ5QQVA69ArQpFa0{Rml>;qr)|8EK+Uk5SLINQ`7=H2%&K7U#qu=RWDv-mkCriFiW%d{qunayo7EN*n+amhBS=E(~q zhj9og=s@v?h}I!9ihNMRcjIPy81FxCmRB8xQ1~73%E199gs@7=b6*mUk6>KC>@H&4 z<||XORedtWR;q+1Xaa7nfMX38NS~Io-F)u8#@1hE++`!n`|Yx0WVSv{OWFt{RT#s0K>YK+gVC=^x9`w64f!yyHj8c-Kmp#AeaD_^@zR{&WK_-IBj8_vQP6{=6x^Q?A*E)&z@isTN9#a8 z=0tz`vFaoSd#u@lIqQgW7D}O3<{ojCBc%mhiY}kz2oq{CJeffhY1@knGU0h#|$*MxEoP!E?>(;&+U`J`u>WfM(<< zC)4A40ft>~AHK_BbZ8H#bs3H&H@&zJeza!ff>l#^BzET+LpaA{WZS0~e2RK<60xNiO_-YjZZOwt4;e}fOeNjz+E8I8qPLN=Bc zeS_Y7I~OX5_oJmsD*s}#bjx-kzONS_bvQsM5)Gj;NxLf&QZY;9FZyJq;_9RSLr;S*01uWNsJwCi|+GdpLo`Y5Tc zrxfPdhFzULQ<*YfagOuh#!eT&UW-JW?qlhqz6Mjs#FII8t)Rv0D6Y$lu$N|Ht;*3I zh?5i`VM@-S928|1cFeP{+Wz6wOD3`ao0mH|WL8uM;zMv-Vnj`%e}}ve4}w{Qb~o?# zYEZNO%#AqqM!I>TKSQ<0H*CD;Unn?P>n)P>XtmbN{udP1WSR*iHU765j>4CdT^iFb z9S1-CsWtlw|K^mAsL_dNw=0n9qhFG+1o&8MpIw_CkQK|&y_TqG3lTg{pmPQXZb6Qv zns}^PITD~s->{LW-tp(d48s=gOnT*_Gn`0K+1B`?k>{Vo!~O**-unc>b#+#SHMpvz z0GRp1(9t^jz`q$Z2tGmIH$NQK^j_(U$aNq%d8&A*`trG5YpJmF7b*Uq=WLa3&S3nn zn^u1VEN3+9(W7=4Mpg4otl|NnC3%hLSAL~F`|g_fTZ}i6hfzFG z@ciTNSheS)-|tGF&A4QbsQkPG3~!F^?;QRbvwC&XXH2JH{_FQoxz2*mo(|k#I35dA zG^~grQ0YY2*QTxE^a~>cPreQfvB;0Ej$Du_wQ$%KRLgxc{MJ2Se;kH*`OgPwl@pCbq7 z-t@cSS<#riq^&NMR2pLH$%B^kL%5%pv9(it$mWIGO zd`lf2B{QQ4LGZ6K?t@Z9IJ?XM#@O+ z2I=(Z^NQT(Ta2m}(K*BNQ?Nb1+Sm6=4pm?Y1)4wLJvMZy0cM(i@XmLi?OOLhnCw-Tx*sk^j(@r!x?0O< zlo|N0!-H>vy^g_cJ{o|Z&S(8MDg_=gByJqFT%HZ=hvm$QeSmT}F8JqM&AD@C^xBCu z1(gj({?>cV)|$02O)3~q`qXM_ZiPRCL+;+Obuq1b_RH@hZ?78n0=n{e% z60%!1f#MH&4pfj`!vIGUQq=G5?Fz;4DPwnlefUp1DgYz~;iu#bn^+kVGXUYo=i^y( z>KL<83uGUHmdGi+i`desqn%ESuS}Gg@-geF#jJ0ZW)|vCY;LD_{)VbO$aie?<8h@NP+8=I8ObHNdli(DfD)_XuIA?K$>^ z=@ZAi?uRd1+8oDK9lu;bbNofcjm|B0W#CsOY~D=VbE|V00F$|0A<)vwC9qv`PVKTB zq)K}I{rOTBlve$<&1`jJY%v4rQ8~3OmY9m0!VTf=^Evs2!|h)73-3N!9G-_{2yyyL zf`|@W?TY_7|4;zzzkLDAy*p68fuBS@-?eE|!i^bDv^@TWV7CuDnBK^5r3-;^(2{DS z_po&SRIH5|J+7wdllZr?6|M_wyp*Q+q#Tnl`kY4|8-!rZ*T4_jpt5!pCt8D#_cMXA zHiaiM<=Gezbp315$R)Ds4LL79x0tS3>fBgfQV)movD4FNmRF zmW^*WaBk1GOp>v&imAE#ftUmytG{?+n)K`3ID(DP6|W_$a+&mXy?4*o!Uk{7Ip5U| z#wEA;k5wR^k;9jA;4GO3B+ad=0?GKVEHKp2LFVvdQ)$e$Qf+^S;aJ$HWO7|Us`s3Y z@fW)^qd>bc@w5C{&u(ynz6 zAjs)o>qons_%Sndl`!-86x79wm!S-*Hy8fM3#vZ6dC?^A!ihBgSqYW53pv9!11SWl z$?KP>6o6CX``Vfh~U=AZHor;I(>C|r`-WvoZD#k|7m zv)l!l@SmS60s@7*WBr>O&z{h+0ynZ&G%h2RM|3XVDLd(5)^wS_FCq0lQex%KILFWc zX4>4F(~A_v!F#ahJeMz=nMIo&7iizxw0oe39)8WaN<0=QuWr?S8n9Nf8&y{#zkY{# z;$%NdE)dqw=8mUslfx_i^%?D43aMW#{_k{aV?)=i5279^Abja^C(~CbX!vECPGVhV z>yF#mEtxlj_nvy=?s{Ri)=$uNkdt#eo%Jz&ioAf6bj&i@ZEs=OH_1)m@|^9ZwJvpx zy3hz@PiUwvu&JX*@>3RqtL>*_ihIOv{5rUuv1*l*O#O7P!fKBATbHvWE4-KMY`SlE z86-klP3cdQxe~8HYZ5}CrQq>ne9^#vyN_;1mG@*StP_*2;^TUR#kHxiv##qj;ENIn z8#Fdre{)JUXyPeErm6YnABYoT>Lw``a!RH}omBn@CVD#1n=lj#cl5puoav4V&s#el z2%v$|KBY1MLiB&t|8=3!A*KPKQ#Q1`Kls+=k2R< zFW#Btl7pM?{Brx{x0RDgdCN!K=~ZcGE$klUyMd+SgZ;O3Zbl_cr5mAE-Zq^B{Resd4vpgQ8D_d5%zKU zbIV1jKpTT)-zGIIjpwVy1(s z0vJQQYm;?^p*T3tG`BifT&pdNQFSrnUg^btuQrxUp7nBiF5w72F_=uw$<}l_=dzP- zgL|*TiKCh*7Zu_&>R+9p9tORAdGy+W3?phWLC30?O)FFH|DvFr$KwUt6QOhK&bhv% zKTN#iEKOX7+Xtd1Y|cq~W9b{@nC19G`r-cp8A0a0Zrc^QgY0rKQU+mvOm_Fj@~rvo z+)B#hY>IG2G{K>k+#h38y5MG@3elgKV>GhMl>qe~^u!?`_0HcxRi$tkj)U{3F(pX^ zkD;pbWDrTo$216xk(^`LQkUeNqt}s2vF81cMA1@sZ6yZlBC% zW+##{+XT~OK2`cMWp{y*>DrZ@ihGu>qw?ovVYGvfT8ID-Cmx2b-Nsxj#Qe^rdbk260Uo=}rV@m=9i0wlhduBWWU&cGK6BQL#D6{OA!jFe*iz z<8U_?9moFwUZ4^UxW+wbW4PoTP%`q}qOc)Yd-26NqKaiKgb$}eew9T*JRZKHq*lTC zSo@H1PQxWIO1(iK4x*lf?fHn$(wHS?To?I$&S~gNWP0>9JwoHqyW|Ajj=8Cp-P@LM zJ+V(vBN!bAV^bp*PikRuraZU95(w_SDnQ%HfJQ**Kc!3|GM%6j-FW^Qf=HSf0|dhk z#(|>Jj5Y^OK+o2pz>Yu&>A?fg)5MDDy+>Z7+*B`zA&v(DPCrUdP`;(i5PJ3YrHtX+ zlabeouFULJNg#p;29qHj!EAzX20G%Bj)2)|n-THY_pF&WB(0E6ILNDH(LFYG@xe4Jx23xb-76GM$``ah_?2ZqQr;;7~qSIBbLIngIDhCz0Bi z|&L>)x6N)8(ciZNXnS?^a_gf_l)#i#l{+(Zq;4fzqtlkKD4qA2I%P zT1Bxpe|zTS)X|07c<+KUQ*aDnixa@9VwZC`$n~fQP2E8qj(XEXo?90=`9ba4t!z(H z&^z!u9)7eycVUiCzpwaJ1fD|Y$swcK6p{TZ(!1>gAa@*41(lb{-MN8n#3?7QCm+tW zbZt;+%j5`Sk`a*pWT7`NeW&}|fIo#}*+y(JtwA49fJ7hMGr>9(1LG7NH08#0Xb+AvN*?0Z(ui{h(izq*Z-!x4whP)x3TII z_=iZBMxJ+06&QsM+zxpleE>Cysra8pyGFN$>@nMkHv*?_c*ra3o;a=p zQNB~8BWDcvXajD~MPvRI7xw++){t4nKG>04Xai{{(q(leNAt8N_D@{;*}d?fKow@2@FPmELRh(>XXd^!7~CQ0i(e^dKTxo#%lin z!`tGT_Mv27_flId=%=V4jN|ZOO8SW&ks!w&p7mYVa*xigA_q9*=}tDRSLIN6#(gT8 zOvsT)TnutCk9x_R=IS)`Ki0Y{l-R7Spg27<(AO)dxQ08cg*!x1JA!&}q|zO%cy9J- zBX_|rT1G!sCap;val;u#Ex$Z^41fBnlCa*Ye}Xj!p8o*k)v2@PL^#R}XYv043YKNm z6~@mnla2h0`+xeXq^!~$A{Jxvs;?&`@CUgk^Qk10F`{RIf_}Bwd_C~Qnx*IVl%s4A zu~lJYqub#d3-dO{#KRu{afHAtaqtaIO7m z(v+NUBS`Em+^DvsIXPjR4yL)=`4mj$8SoDqh7V6_)3{<^85j$@C#7QDM>NtiARu<< z{PS0Pgqaw)Zp?m$r;g;t56Y+5ipq6;!B`M^;Qs)PSdGsi*Cd0`&?H?FMghx}BlvOD zdsTa=lmvBPz?04g9D0H8OUoVs9V#giz`@7^rcE-6&KG9DGr$!RFBs{~S}>A#G061) z0PEBTlg0qg7@@5SM1d7>4tD3Lrz8>vEQ(}7{7cS8d-_ux{Hh0RRFFAFJe>OGm4HQJ zbLx2_n{$C05!c$M;YlBO^f;uM5#a%M%~+0n403T&#+jn$3ruGp ze1jON5kO=@ll>ftpHVgi8k@a9<^%5 z5WvkR5iefZKmBTrEuQM}VvqR7Sf0Rl{*>)X<}_8aw~nrFI|hb*k|WPXzh_R+2V$=L6V(T4azgJr^X@Y?2lPW*Cd z00oIZjwuWkdXhN<98%|Rxu>d-e(0gTT(JOy+)yE*h#3G6QP@(4z&^dIBI6hXp2Sja zZ|{C4m=mm=bs5b}Bt0@lKhIjKxo$bz?@z-jjGw?#8Z@Dp$gEqp6=F8zeBUi+S~gkK zu_WM()}&B|$0zwx81P8QUIFXxQK<#VI3N?8@lz`XZJ>e2rB~W!n4>WOla43|i*G6O z-^q-XI4#d!e@?WAmuzDhs|bQ9@g7G)NIa46ii!Xk&hfZ)pj}7Vf@j@~;4$Or{xuBB z>5@^781x-$Le4O5WNp9zy#T>EsPz$tk85WrIi@$co5)PJ2R@Y3%VZ7(NsXXmBOZdI zX2#*4&X9pvo-=_?Cwd%aqhGsAS1QJCtHwb{oKHcfa0Qo@!JWnk5 z%9vq=01R2V~7*L=rPycrLnYa zS5S{nvvs(-kYyw0IEDsEXCov5*8}mcnp;C-pj&Q`i>sH06>s*K7Gsm>qa1Y2bC<&6 z$56PRPjPQ~6oC?0I4BM}9{B^OPANg%YE+_@#IRYsR~I^T%8Pa88+jCh8A#g1sOyXz z1L%F~`h{I~`ZZONl5Z|QV5$@kPg=^e@g2?o0En$`FQY+sXA{Em#+fp)4X~cr1dg3K z_Ng?DLMSz@(=m9YV7u7o3{Fd6{qA@m_BrcRE{AI!ia~GZNF_46e(V(=CJ){m#U2r*)Mf%DH?t7#d#ciq`(}K2*3bi=09B4t<}wrxf>f>yQr=+AVZDQGCIO&Q@-!m-?9Ae@f8b@n`eT4&ke`DM6( z$}m}AcOyCO#B+~fjPX&;E>*X#HW9(+ZzuDmUpLKvFpyh6F+KSI0PA~xRe`!HYb+Yd z)po|4uNaVtjkt(l0r>Ryts5;J9^M%x8xGv{!5s2MJ*`pV(`0j$X>LzH!U7=2(bjM-FKRU=;iL}jH*6!Y8 z9MAyXYK-Fp2P3#6f;)=od{;fatnyj;u*fnF#F<>D0G>hVl75D{!*uqsTixtKG)|HT z&q6~3&(sg+OQ{E<=$GCtO-j;B@oNRG?1hpW=|agO;2qGY8R6_YLMaIf1tcmDWhdV}*I(lZ zj8j8%6CA;J6Db`5+RERb9D7zXsMPF@DXwkK;t62XaWqZ3DUS6Ah8$pmJx3nBE06Kz zxzfBfs-75|ZK}j$8=NnGryO8b--hunoI`&F!+BtJ10aA8=6@Q+_>VL)cs}>-S1iR@ z3~W%G5W^Wb;2fU4@y$#z4Zc=X<72`Z6ka-!^Dj}32l$GfMKTqM7c58|aZpQjx<2A!te-GDUxKIU@AmPn2XBfDcCt!*hNtFxTWT^d{K_^mBLH&Zx{B?BWQ zb5fSz!!s&D430`51hEP`C>vKb=He=>r=EuV67c>Hr+xS5@<*o*@B0e+^K`YooF1^d}T=+a?K zj7t!NDQq%OcH_A|m7g@FPs&IgI``(UT#~5H z3FvDv<6<`C4(C71>sN6QJ~4s!eZN|KcISB{1_1NLAdD-i&svnR2nI%ftpy?2iAQk5 zu@w!$J94d@`_Ng)U^!f8twSMYPzO&;W||u#W*7jR`&0w1IFfqyrmjd7!6DL~l;z+N z?fq#VzvWI(lyw8W1114V^yopRImaH9D*!ppX{>Yj&;(L*)4fG58zYR4hNh9Y&mOqP zTBcn0^`K3I9=RNj-n6l?2AqlY2)sf+_Kz zGoZi&pK1o1Mbq;z0E%pqEMSEgCp8(6pu(Pe;-MrCv<1hzWkDo!*FE{DnDgmLp8oWQ z9+U`1at9ortudQw^ZFW7jGB@KN4Q3mk1aVP8O<;zVlI}L z*2(1nah&w%MIbV!4`Gv$ z$^LXIGaQc8k@Fz~ft=N-Vq!^EBxkVBC>k&5tA%kO`A!HK?^-vJiJ%1!-Q{u6gVwWb zr)yPmgFJ)u$LU&5q8v)E@-X2^=sIGfsYYyQP!N6p04h(WD&@puX6X7KZl2Xyc)_da zO9Vzgd*u}%PzN7OnrJ-w(C3ki&;!dHW2e0|4Z!1pK=-F)_B4bvLmo4dPuCR#qa)xP zf_TkZ&j1sjttRYH1Z#!pc=XR&8IJv<<~_-xLA2#hT4J^i3HiObpb729*2%y<1}j?L zWn8J``wGcFCJEpZijo_KR^Wg?*`N)imNk`*NY72canIJN%XJXDb^x-I!Bc>0#8wY1 zVdR%?@twPJaoep&-hbbT+p~l%{m@p)PW z0An2~B5=qs52sGGp`};(33IhM3LLb z&nGCVGGEwYx|n<)XJ9<*tILa-cll7Qv{{HZ7!2+Ajz7E7w6qIo&4gvueETU3PZ|&l zob#sm0ITZ=qqu^UH}>VeYy(jZSTv6FvT=0AsYn9LbyFh zAbMw|ak}2G9G*V1ONRZ$mS$k>)qwd4^c$OY4`mch+9gw0W`~FhN8%km*NvKel(Us5 z0bTHe^#1@F=B!jpscPrT6FhMW%Jg;lok%$EcvuWuaj6~u-F2_&Zn zmi`>%=OAGBtSgK4nWRAy#;=pKFHgX99V!%UxUP=AOSo*HYg?<`uZ^-SIs4=<-fVl02Y=42z|B4BjeN;& zW;s*C(j(CpZBN8k zdey;0<=9xWTfk5EUl?p>-<));-A7K6ZC2XSHCf8rvx5mNpE1wN{p?`#+=J~&XL+L8 zGJT@j;bn+|4&-nSKZKrh#{}T^>sloAB2QB#1c`hyr!z+S(xYq(dUP}Lg+ zaZ*6%8TC90yAa;G9S?$?KjA3Sbh4nL8?z&k{;}E@8TJ4u1M{x)Uw3U5IX5mv)Fq1$ zFnK@M+PIw%Y5xG){{U;#Vw%?CHE8^R!bpscj=4t8N)=aCb(++Xxg5SQ?BsHm93qZARCsD3`XmJdj4aN-D9_Bmg#SN0?f4}L!{ui;)!CQ@}CrgZs9 ziT%uyzA$*pdUvcHS6{WTv)P53=HW4GY)2b9Z*V#%r>}1Hnd1)|*l6)I8;sJBNQDkr zhx1s=NW~(z>viE3SEwDcqy0 zT3l(F*3HlF8f-M;KtzP|z#n*VjkxKK1z6IW=TXyA^~7jgZYWMp3Hg5>3Hp62mGNhZ zX7LsLXrwK?V-UoLDx0`CJ$?TYrzH$#Sh4r$3L+R@rX0Rw}D0|a-^%g4XHdUKkl zkU}>+{zQD70!Uy0+s5v3kLOg~S!Hx7w2l~e2E8&(1|e+%##Awx+d0TN$i{w{9@wrg zQ`6=b6I@GgaTpHAC2@c_8UA#s)lx0S$2&L6CfxH#(kie4L2PwB>RaFgfEyz`bJnZn z0tp-G(zX)Zkq9nx!N91eU`9C}^xgjeGO%Jes3mqe$p<|-p)eXw9D+I?wAJfNyCKd- zbHJoi#~o_Q9gLCRnvrAU9MVRkYn*%YP5_aBqd!d00|@DZ$4r_>;kXpZ9I3`R`evgt z?mhniDg@n#s95PyA~%T z_Re!a8gHfVh{%#AI5^1T)~HEl>mWwJ0ZGaBt20~@7z2QFfsWNx=5`#mX&@llLG7OS zrk2G^y8@tdlT0o>UpVxu5M8`ao~xf;l}|X%Xx=l^>M4lmt>w46T!1%^y`BlCN|VDN zDVAUEo_|Wkj#rJrMj-muyc&u+1eg_J#&O6009vNSZd`)(P?dE!VYRmoDhsSe$7Fz~ zQQz>W-bkFDop>PjsF?h?9I2*+Ob!M~`G1uSAl^nt9C1)bcN=9&l*gwvD=y*)Iq!kq zsew3RNfh9E=lRuNIX40r5Pj-&%O2RNuoA||A2I^Vj+p3bEc1b!b{*;LRYxS}=~bRa zEyoIJg~zjn$2n@2EU4VWZhB;Os;8&9tB6OGptn5;JWvIQS9t?z8;%A?f30iUSjTR6 z%E9FwGxtZhtidpL17-;wk9xBW+>x%&yrcMAx6-6$n@&JD&$%_9adxhRBRd@R1mhpp znKi;(fK)!w*}Hxf7B>(+WAvinIWK2GOm0-;86AIGXPJ)&69=nZOcu*!hw*(CEYK-Wa1UrQz2bxKW z!aI_<$;VDj5duo|B=LjKr9KOHm4d30F@st;gb7jNp3Ub?;p?z83pcx~y_w88@)UJ9z4Qd!NUe)VA=2yo ziY?>7M*GE%IT-cks>}@CKF>_ImMI~)iU}hJbe9XY--GiOIZ@nT4xRH|99ku%&BPK| z+(SIk5hR8ZHlqIk2nGYsX@6uZt8Zfu*b0A%!J4n#R0Kgpe@6x%gOHevLif)u0kl#ibg3cJJ z#tz~;@tT(NTDZN7?DjX1*+k35yedZF$I4svKb3Qu^`*o*G*>MGtJ}&09AK~@_2c~J ziCKglndmmYBh#AF+UoA@oU)HH2%{yp1BMwq0i2wU#A1^3$2L*ND=wKN{9-t+N`y>$ z5I1w*B-aC>%JYV@j~JMlA!Z}*h0o+y^%Zh`8u&2^jLVLxme02o)6h~@CDlG5>sLgC zcJkQ{uV4Cm=wy^vsw z<|`{oS@GP1{uMIRsA;KYGv;T4s>F=@Q}@Pzg8u+}l2r0@SEJD{o)re(RdAy_p>LPJ zTz{NZYpZD>Vy>&RAgv+ ze)iM%Ty{Q$ene)ouFshs;5L=xF?;pO?jIKqr{ zHKP@`k*0}SJW9mAeY#`$)>Ju5h`?RPe;&jiPW9T~*`nw+?j2=NyVgWG3^#NiPMr7a zK+#W3l27dGRZ+c~1XKWJi*)0^rEOVRT-n^u9l>9 zrKz>flfxR4+UU|u^WsFl4kJO!5SUSqPK2MWasDIoWz{E?xp^)Lc4B_4J@x_-4#(XwXlk5tnpLb1UR+vN;4eYmcv z)J1OS7q@tO;C$^ zj1{Ahf=6{@&+D}QCcNHB8bP;lZZLD$dwN&7Lehe0l6zG%Uc!rw?85|}3C|qY)3F7L z8)!tiSn#Y!#?YW(eqdM4z8Kg%NvFJk6prC!BRB_dJ$|^aZ->M}?@yL#1To3x6kVjU zs^dF`dYu0NI>!^Mv9&XRrz#P|gW#Crv9NLbfG=DwB{&=|FK*J5(eqdsfZwIZ` zrRCcgp=H{Q7SgK9F`hd%Jvctby(p~?er-=YF*-z(6<`iN_kQ@PP{S@uv#SmVaBH;j zUVtqvwGF!*M=~-xjAQpr(0xZr;U6*J4sqUwS_vZC#(I9W5Cw7AVy(FjNzQvzF262& z0qadjEHF>y^u`FL8Hpb@c{%qKmm7S}gBbpm82OZw!Kzw{dDwQr?-ZQigPk*HYPR6`)S*wrq6>M}ZM3+&^ke0}dIRtjBV|yw4p+Ndm4b-ep z&Sqvp^*A&LLn+B8ucvBep~bvJAG|Zuq2i9C9@M&l4QB%`a6VJVL&p@y z(9ey8WR_gxrD?*^$cV_GDDUcPC@6AC=A?$;!JbH7hl&X_C6JcFkC^^-PV7RU<;iSd z0x``;E%y8fmuh!C^Hf}ybBvN{06TAQml^e`?X6Uj@*dm|T4LLjUD?U25wuZc5%Qj! zO);cak@q>l$mvj?xTha#ZbyEmf<$A*M8}$Yb-r zF^T{KFvbr~m3#%4=I5HE22D(?(dQh4`cMR)D9(D0c&00EbPb#q0Gf=p;0ZkA6&R3$ zG1&1=gEr8tow71Os#46-aDOcHs;itF@O`ORe8!ZQ3I`$BeLB`u z^ZlWSz)%PPdedAS5V-*L#}q7hRc67*KU3IKNLM>Q3qxykyDn7=HUQry+>&v@>Bk=R z)J3J6SwGR`M@cvY5P0j4QT6YN^FQa`KjALbzvYCB894j7 zEP1UhGsN2TcPIp=IVWBfN1Kp(F4LU$@1Lzwku3I0jVj*ckoM8Zo~+$-&8g3ke7DGL%j?%Z-D|h7 z)UD@%FP!ZxyDm0z0|CQhxEbxv54Amx?JgmPc}Bkv0zE}^rwr3MBVcd(6Bie<3HA_=}oi4gc1A8ONLYJhRFR5H>0>k zU0C!BNz+oE<|A-jpgUP4EX|U5{-(Ll7eNiRxQRgXnT|-o10B7)epO-(V(`U2`BV=q zx<$KcvlD^09T?}o_kHW0)bFO2HZv!d_#ueuPfghO=~}j$F-JQ%{o!1U5rdz`ona;x zNQuGDM;$5&-MPUB1duWL)Kf~rz1Ml%F^lt#Ssk=Xa+(x@vQ9FW_FbDlHb`c<@%q>!_Gq@fwcX1PPAH*I| z2sXtooF!HE%AB5^ao&~YzEosga>>y_z!q|@bL@InGCnO~D69)F@iFx|sUsH=9nBl6 z@Bt?@nSBlY8Vk$4Lh4uX1)a2zDz@jfVzL}?0M2;&9@Uk7d3}DD4SJEt#o9>bfSsc} z6)Jhh0~IWHX4Wh594F3@#CIN{La#rGs*3EwP0PZ4@TY({&ObbUH2M%%1zi?497ENc zrqlC(TF$$Q>gEWX&qB2V4>}`euuP z*;t^C$xxO82vIUe@fFGaNv?ZYMia*STL5)Fqd6brT@8Zt65$?4yd{VT^* z1R`Z2PBRM@_<4+0(r>nN^IJ$Vht~tK zAY&u-uHKe0c0I28&f8e9okX!YF&PO)2P6VNu5ZZi%ItPBw!#P?$N098RW6tsaifg#}v^M9)sz~rcR_p9+}M@4M<{O zNy_{4QJm+IgN~E{^^w!udJ|HYM~{*|hl;K~V~peLN8vyQGt#EmCb47~+^xKW$6hKh zIP1+eDZH65*~i^)p)|tgbVP|tmBtP^G)$uh*Etntc(&bdQ^S8cuQ3_gIiN*jyLLNz z)1q8_-A`(fAuW@%oDOg^N`xy7!zw*Z07&juJRWoHRU}=*t!O$Ujl%#`GQ|`?G|#n9 zPUrHVE>Rq|593K7!Q-_(M_lzi=w zI5-Cw`X8-Ok|vGXGo0ff`qczvDzyqNqinc90q6CGu=W64)9`%bd-AQm- z7}`fb3G%^knJ4BvdgGp-O3~AG#<$-b#LAWZ|9jDZBR4A724gggOGlPsGCT#FB?Uzmgkl@T%9D(56}03#oj7h=$T<-u^vz~EuAfDZ#d;%hekX#D8}DyR#5fDR8BC-K2Q zh@$3vA2T46$PLr+_N*(Lwv@08aCj%X4^Lt3K*hO}&5)9M9y#sBO=Eo4&xRz%!{!}w zJ0HTc!)KrCPUTl{JZFPR>NM=l_qv65{`3=qFsC^G01B&btTnpd#IbG{1z&4&6}I62 z03d522>`M-7-NA`MmIRY##ElPx)rVNjds-TCS0tgRzNo<(T4iejeNda4UWX*5b{)NiEY{>ivZ*XEs(9(?O!D@O?#LV;O0#Pt9oD$W zkYIa}&M5&_3xf{jBXn$jWzYG+tvKTbA#oG#Kybv274*$z%O95b9S`!PisD;Ix5W6! z+R8`D>*#3#vtyTrFi$E-1-)}ug9VZB+xmROV0}RTr~d%ehi|Dz3~HWSfb=C>x3x%h zc*X)ofqVK573`yp02m+2t0ayI>{#8=`?kKI=(gzYs>^%8Y<#_%DJ;$l& zPfuE*aeXAMAw#uf#^Ij0;|KgIxFqwEPjYCnEDka;&(gO1J8sFUeWCtMkhxRTbs;j#jO_s9w;WYlwcV#&25*?CIQ8To&mZTS#Uo4H zwKd6a3hA51{{Svo5b=URQTY#-udZv1knYr-$&T+kGrapn;T{lggm+b~(WZT`H zk3WY4@UBABRkxDRwZy8io4KSR7dZK_81^R}tB!T$<7t(TS24=s=Gq2P@3 zkJh%U8?#8hhNyH)2&3M7#!cA(yF@zgZS5=TI#oP%LT>F`pFLU zDv<>{P6!K+P^XOhoY!(n);Xnp%evpgZ7m`aSlrJWZOMs>oxo!x5(W?HoOG@u#C{Ld z^kf&2#cYMUcYU}ZnUnqw;*{J>Jk>>C;9v8G8Ph3Auw zlL2 z)z2>^;{<1eM4J;CZhbRR%sUkGAU(A=;3Fe~Z_-s$hj-(+7;^tb#-;2Rxs^Qv^kD!*0>WPfuJA@v5hG0VAKK zNj#aIS3CjhQGKRS^6tPN?EBLPu%E;YOMt|W#-TS76dy1rlh9P6<@X<-pa-C!LY3O5 zjQ15@NL;o;F<$4TSZjwWRLIi64snv>(am^u$y$wA9c~lQtd{*x(;TItE ztxIhw;r-+N{(~K;5oB9Rw!!e+3=%4Z;s!+yImZX7?OK-i^4iX0k#a#DM-Dye9Yot) zp_KFwUX$iejFR^_CIOH@P~j(P!}4_cWO z5e#GP1~(WCYP|OByO%#G>G@U3*W?6(3X-RS5969-pS+D6{p?`tDuB9+aN0Qa#RU;ayPE)D=eVfjCpaAU z997F--b&cWBalzlp}2)$oa3f*k3mBap$0j}(-kUwymb0g3HeDR^rS}0kb3mykPu%S z_dE>o-l9ec9(MtQ$@ivROz7k{LNIaIRF-Fah*iRrVB4|Nnihh-rlb>1q{7Jqyf;#h z-%A^iz#fT^atCrLl3zUVgLr<>7b*+jND1kN$4!<>s81XNidO`LySaHCzHgC_<~s_iNj(SaigPx4`r?}yFCYUr z&JG4h9=PvMa1bl*=m)(_h~-<1uYN06OVcf`=3+qLl2 zbFN`@RFE>OGn0ewjz`l1`aw>+S|Oh@IXVSnIfmo zgl*5U^shm^)-~-7VY0Qk&bG` zwb-_1^C3y%BO6_?SKUuzQO+TGOt8cfK812l4Im)K2TYGzZwH^}Qtimj1}Qf4(EUlK z9Z2vpPBZva*0!@=O3~XwWMy5=jslNXW5SPfLdCs;5sy>oJJqX;`_szUt zD!KJ+b^Lwk0^Kj{}Zf-pUD_$SwZb4#XplTos^mfpr|dtV|mAeK8=#E;KUFoJviaaM11yUj?6 zwVhgfrXU|Laemnca~u!ARYa~`E@NmHT4Xv-u@Eer$gGh$V0Uwz_4Lo@Tb>gC0FR63 zIRGRfvHU}lMP*UAMYKejp=ID(O)lkUxJH>AVSMtfwYu;C;GV~*9^{(sZ7uwmLl~2P z0e(@CJw1n|Qd{|DP>vMyyDi25=nv;wD<_{5Hqg24oc{p&tH`Z6%i;)}PmVQpv$={1 znd5mf$ug-Z000Ky5=!pidiSqB)UPchi6XbTXGlia*UDrH4lqDJk6QGv8`wdA;n}5| zWPfJ;;gfFSI3wi)zIKmV@p%h;xNns9&wuc*R|#oTO%iKpfO*o$8)zH@^*{Y@*1C1t zb_OL#J#p(;8Wd(Lc-@EIe=`8~0Aum%TJInZqj$Cf}4^1IwdV^uEiv_?PL;3)o8m8r=O_T16izwTfw0=VQI zg9X3fO}N!lM9G>OTYZXXZ{vww?YNo(2=iiLh5-7E{Xro5*1oZMBnuIRi>$G%h)Cu0 zlBAEO593_yPRguCK{-*A`F(3)+kTC2I?Rj=4ZDt4=f>amxd8q?)wRe-)zP(i;k%VA z)=9x~er=@SKjYi*p}UPlud0P|tf&CUSqkx!fzRbs3I$0e0B0(r1E*8`hwD~myOQDl zcv3Ne#9)EPPyYa2K_rFrpXSH&p_tEWMm{a~050)}H2kBIadxJ0-;0jR0fztwlhdC-~ zHeh;>b4vPv;&UG3+qZ5FSVt`wa1L>tb*jjlw>2SMJgSZQ3TI6iL# z91LgcP#zD=*~LpfH?Yaz{nJo|`x-gd78IL%5e?l)7GSt1I^Km?F`{VOgBaq|6fQr}z_INr=#oRiR1 zFm}dB9k`|;k~U-~Iqggmg*oMqVc1g{fi%qibXY^>o=Hwy81|@%Iq6DUoC*~kjsl#~ zVF|eRrQNr!N#udc9w`9F0P*T6phE+6Jl58R>g_57CQvd6#U3%b^R(xC6Wi< z8|`7x=LVBk8g^#%#zOx9z7i849JnBp>&;ae0md`m2el$<(#RDq8E23FnhcTnj2g0v zl7FjJ1JfrUdQ#g$@2ON^ZSHDEJaBu{Sy5$VM$c}08eC;T2emRqRwD-_A7;foF(Z;s z9ORQw<2-xjrBKHMsh}9$pD`mD`c;HqlXf$Y;$g)}6a=c4UVRTWdKg{!W(uRZIQ%IB zD#0NVahxJQt3yIAxENX=RMR53=&5=KejZ3KQfs72El%cR1G?Osycq{haB>2ZM4fv%{E9S0Zg%glWob2_f^D__mbzzWtlB5b^Tbz4u zL;J;LCy-AW9<;#OuER{VwbtQ=%ov+u<)Jy;fM6B}&;k!%uS#aO;E`uLE}3;L$VS8Y zv3X7SsW|oLJk?mn`ka=1sqsh^xz5wq6g*74FlF{CN8|LU!j<6T@T5DIVTeh9T@$d~ z$Low$^8hbF(7t1D3`R+xfKTxZ6X{ujlpF#^X>*JMagLl&1oAqZh|vO{Y_a@JF+e;X zxIME?UC!H8GEYE*C-AGW*gPk7((FN;1J2?Gaqsw0!D`Ko8b2#cxVgvAG@e)>e+rD8 zeM=9@pLiLYoT=Z6y}dT<%qjq&QL-4&>(p-v{Yjz4&We>vks& zk{;N=2P5;X#FNUm)KU&!GG&ENaDHrlL{^d99>%54tpv96SZW$q_I%h4Z!$<_EXO=c zoC2rSK-*66fB|mX$}VTZ4l}fkr#Sp^S=yE0yAa$VP_ruVxxnd>$tTyTt8*?2V?%%sQ&;O_svQcmNKZ0tl#XC54WXxhl%YVSYeFiw@l2%zVK{+_4-$*f}ONv zHK~ng;ww0@kGP$ca_ zyO$pEZH$u{0BE6Rh+yQ(epJWMlHc$e!-?I)5J_-Lh9keFJ5h5b!yw2|2R^)Df1i3- zLaYFiasdY)m1vcb4_0W}$V_hTR4-Qb7(f2Han>ZYGC>lsHc+?N^K{o=j;wF8hW035fR%tyA+ z1y}NJZXyy)97T+Wl#sl7e}EK*Kx1?`Jvj#>0;a&8qo3}M2Rzh79C!D{KX=N%N+jc- z<@KQ!H)54IIVEvgAy7n0;PJuDXRpe+^#Ih!e*@c$P{PHxEI``F(13c=tz!~4&B&+w z(sUo;QHEX2IdzCpQSfDTa_dZ!j7QFAQ5trs-I9Z`kd0qDap$oDx}ijbGJC+s`=6t z$UO8UinN7xEz^T140?2`=s7*eBzjYcVsJ>sHJjx)Cp`sFT#;B{o^UcnRgsvGNj*Jk zK_OAJkC&x3RK^Z7o}WrVavTP3^(1-wt;jqI0`u=r0|%{D#5IOMZk>qtrb>qy6**j~ z$9hIn<(>%?hPEmM$F?b@PSOw5WYpp@$E_nEE7SF$3hWq+_WFNXX55fEXTBH~)})PgvD|n(a5_@7k;FErIqnG+UQ35=2g*GK z1z5Vq-ZP0ydgC;~JOen46Weho`qcsJ-kuMwJ6IWO&rI-%^u-~WNATz9Dz{#=;h*84 zmP{vNF|^~j%}W&QppfMcvF57v>q-=!pUQyPxc4nAfPr23)=miLn!Rk> zkY}!aDGahYbJB>MM%f_$09<=ebB4t%X}go0k4i2Eyf@H5m=QCu=vxAyxV?Es-h;Wv z^s1|k-31Lm#{<)!rA)1y4E6P@>T&?)r%Z(7kHf714%kvfSc!Jv5uah#H2_%J)=A#x z6;Y9}zF3}^$7)MWSxb3Q+o3Lac?ri}2?MSuen5I(hjg2J9WgI1aI;AGw`0y&ADMvf zkGeYaHPcVyJ3D1Xm40SrR#2sz1c8&z2h^N#USjt%&m?l(%4V2G6-hYSfN-h@00YM! zxiz{i(inse(fNccft=uDBO5cmR?zQsYqM{t!R0w!%E0bc9;)3BzoF}1%i&)V9TQX8iZprk|<6Y5d>V&o#{4}b$ z2b^G1;BCpr*A&mhkD;anfMBlN0pFa{$;tNgsKev0Pij%~fO0cH5+u&M^4v&1Y@RdM z{QYXgYD*2=Azb9uX;8#e7V0uFP7^U358`v2k58olbvksLY~x{&1>8TD#;td2d9E3j zcx~T>dEPJ5K3t2B#%nHrrV^~7?qu4JZ=k~Px<^k>!KbJR?u5iB|r{KT77J zo_kB3kjlsb+kkR2(>}-0)^Mn&u(dl$?d)_L7|TGh7U%c8nLiGv^d6OuWix8J!m>uj zC_$Nv0lAe2Kmg+>00HYbm`^85gou`=}|;W0;;>b)+z>Zk$?qlTtXHH zSCBCs8Ak+m$M|Bfk)h0ZhiHP*Z!9S;bByPwtz6RXlt~k@`|v1io}~#>`faTJdADiS zhm3|Jk6aP`DVl7+z@sPka11}tm_Wo7U=@+8X#@27) z*!du5YX&$!TygK3;jb>Fjℜ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

@2R`KG>-`5-ANZAw6lQgHjQL zO(PN;<4y-Aty^1%UF3idb4fgLsleLII+YzL8%26m zBoIe#X%EVJgG~o_dLDu&GLpC?bRwW*^I(2-rMqUCle>(5bPbjZT5UKak~_cu09uf= z1&-4n=1o-cuy9DtAo9p3XV4QJdaQ=VgoN7Dnv*v({UbS9_`Rl z{iK36C_|j)fJCAQpaqnT`T1MYp_qc$#~y~5WGAjkJx{GLjyija0I?W5kJ6sG-P1JG zKQYZXaO0jR0vXUU6~ND6Yb|7Gob5Ou;F{VXGVCYZ8qb=>MSnD9(6CJ7xf~Cz7XprO zG1yY8ZuHh%MHKRV8r|UDaT3%YLfv^m+c`>;h zVM*x2&=a1=t#UhXFb6yg{xxs&AQ9a~AS?jj zWlszT^cW(WHP(f5Gb_#{!sB%C?FDhrlbj!~=4&a^jJg5Srk|neOSSie=rV>aA@va8)J>KVG7=)_)M` z5+%fUUu*z@hDM2q9Wcwm@6)k0gQHS9(_mm<_!nESAczdePX$KS?bz^t0&67cx6vtc zXK)j{c|>&lImLQ)x5TLtztgNHw@}$~zdDhOVT$#u-{+k7>pY(wH#)gumTBH@UiYO4RS@ToY4zfJcI7;|wS4=w zEd9aI`$m=JaZ&cdJ3SEP?a)-85M3WX|8Ka|m?`2CybtrSC9diDF3WeBia~f%4nx+) z#8GvE)LDru%O!SeS zi|PJDr7Hz8(mA?NTBV=d0hZE~c@{sH`EnfCo`?$J0vZO14VC~x9aDzM&Lp$?IDXQNnChVmh-**;28vrks{8QRhXfPyQ&RvfU_0-yR!ynEi zfMFNj!9jd#?+elC-C5{eBShGnWk&2cmCe6avB?y3VoG2{Rnayash#f%I~=vTtXyN;KmIafSggQ^{a7f$THId=`cyY}n`cGo!$hg+;REpV>E z^XdO)Fpl%R7Y5tf(|TavHubJ9_*#TA@g*iBG}{t(vhfqv=hD0{afqC#`IVRT`gaW1 zJ`eTr+uYnY&TirUD?x17+dQ-%v;$fRE;NY!9aB5$pJB;TZz4zhb#myQ(WZU|mPKr3 zHQ*TJ9@F(RDiSYWNCctIpJb9tMQ@X!?MV^Lv9om+$!2lCU_Rc}8ffri6u#k*753bv( zJN3O;npEqhtO7JqIKR;H`L>L7s2v^aZ+!t+s5^|m@)ss8FhYuXw=A#WzB^YVJ$600 zRM5#`xO2{|hxOrqAh`vo*m=l_!FOH)<6RsHE1zZ~5`gTez0=pdT(Ip)a^D-So zJJqNgtu(>j%OANvk3Z~wS9Nl+rNUt=A`C5T;fdn3&2(yGm6z3q>2eU4#Od;HV4u6Z z>CHG(*%(MQ*o**r%5=xirGJt3GcvbV%ihbpX`osTWiF}TtiB{2RY&sv=`rp8XP2Nm zLE=Ain493+UH@xPRY$bk7q-p)Ep{(~I_pd99Gki|bjjxE6n0wYI8_$u=w}Ykdm?e7 zZfmq+RCZr1D7;^Oq96~xV}GN5{#MBTJj&Bz5@ZOu+&$K;URHl?_&)cbXrNcVpyY!Y zK+|$__?Bs{$S7ynwcJ#}A>-NA6er0T0Aa6Svgam8>$vJe%xWd0wIJ-LwM_E15^{1C zTgjYoD#dG2KSeX}*IMx8J|&sh$RPT9!EDm0CH8W{WYrL>C!jfSTes!{7)FzT^o)x3 zxB;-RJ^FWoOruKGWAH`c`Td{2Zil@#lmGI!|K~4**P;RUUR+(N{+&oU1miS151#Z~ zDRrfkc=0;FJeu`M=Xy$fA$IvEtcr6PgIga8j9M?Q9PaIFST{7Y3@zL*qFpu9sX*@L z2hbax*+Wln!#d)_aihpZC7ROF^Y5Uo(_wlV^7^|Ud&%$*m5BFmp4#*2Fi0*s)8CxC z-?h`RjDJ-3OnOG~8eufgXgMcg!1G52Es`g!l=eqX%sJnmvd6CyDd&6~(wzqaeb~x0 zUZ4w48cemD8%LsqOjhNbN&7;qZqb8*>c?VAQlZjjqWcR_X%thOI}4clR+k<=jT_Oj$UvKnqqR`E!6^AqP^0jZRdM4o3zd__w_^!7s$3o zD~0mc%q%e}!J0X2j?Ax4FgGRrd0)yD7=Pm7$bB=WeLHxSpRvi(Ydah&sAX zs0;KKO}NGVt;1ifqz<}j$04dP*UG&DPVdhfPw39&#!k61sv#kpNHuJqWSVtK!R5vw zzbIox6>$Pq`4Z2feSRPR;RS}N!O2KKD28+Q%BJGsFDSE1wA;8Bfyeo6&^gX%L}e-_ z3l|qNQ-`%_f2ec*1?m&3Au}Nku$?t*FF*IZyJkpxnM+B81P}cOGMyUzYny)%J$#~! zJpML<6sdWQ^{eFGsd&~bCGotyFAO0&^R;VK>xaRTpUz#5uV4FuZnHd?1s%df^*XL^$i4gQ=wo2dy| z6TO(K#`g40o9l6Dy9Ga>8EkQQn!y+q7r^-WWu2rGd}lpOEcFcz78Fcyp3yGf!1!WQ zY?&lu?Ow9qV>7UQGM1ks#~K$ylU>z4%Kn__H+mdZ^n<0YRRWD8aWe&0Xnt%24p zq$w8UeD|5Fh#S{(GLNy3_^C;g1^FpSI_?XfBRdHifGCp*K#Df{7)0&V4Jv(G7I_aw zXZN;cG=X~ip4lG~QYcac7SSxF8<>yh}Hg(iSLbl@;(p2>b zCxDbhGbdF#qvLITl`ibx@I^c6%!WD8j=x`iBOiBHSS3(?u1Y{PVx(@$lKQnnNDkRE z4NO5{`q45za}cfig2R%Au8Dc3Wy_wfdQp(7TizSV zbLDw*dr>e&Ic`WV`BmSAJ2(pVxrF{Q{}0p@)uU9HA%hAzH3@T|E%wqNJyOOm>r&dw zSr9CH!FM7{B!>)RY?xB6L)L`EKrvfgHBwV5E8Y5ro7nUsASZpOm9%sGW#Gg>=y}pi z4F>ZWoJy<$rzxgMt}IGTQ^w8qL;*R+JSbZObK>!W7R6Omyz6dH)&TK=mBVMrQu>fE zfS2rxexOgBy}JK~p>@eai6r@sHV~8f*owm8{ilbTE2G@rR!s3{x4q1K4fj7M>1%f+LhyGPeUSz3(3Px(wRcXNN;=l- z@f!cEaa!Xr7P-{NjcJrxTEYhmvZR(rzOKIWsl41TQ-=q*$%_QnXR;ih0g`S4+T*^7 z$DXS=fX0ZavlqBO0OY~$wPYOWkB&{YRq}a7@F>vs*HMxMu#$~gmw`A4 z>ev;lmo)qtm<7^;dmhoCor3;~3jgW;xScXxEEzxjasll&2i;^aM{zZ^Ri{F$SO6lj zi9qO=_zxuUAhi=}?9HXcGdNh}(KX~xFTbI`=lfKhYL13jCb3@sW=W&)RfSTC@X;vm z%gQ*0^)!i<6mlT%EGJ0W@l!k9*i8e^yq8b5n$DZU#rGmjoI>`%jR#9iR zQDu1?yki9zNNxycdXrn)cv?+_vRAAlsC?zLUNesOAQF7n@%#UQ80FBXJ~4L;zLIsv zGThYBCjPRe-0s<}=ler;#dE zvuw1CxT5lsyw=Cn@Q`Yy{Ja#5<#BA6Oz}$`J^J_&OjJ>O*g&eTH z?kk!C$KXBQAvTw_x`Ev;m5HA`n{P+exJxr-f5qNnGCWdtyZ2ED-QM~m?UNsL%d#u; zaX3@n4=!~74PIcS4IA9kJv8<{He_{VF`{uNzly0N{6e(w3)yvZpI zs?M6A*$N~6a{hj>!XFG@a(}U1LtKeOr+D&Rb&64UjyV#8%l>8&R8Cg?kM3yS4-wve z(ytk<67@PrMN{feoo>i=#~>8djli8J|AD%?M%P_*$42r7yLcM<6xTJ#D`shje=YUh zA9b8M-eZX#_V6hieH3js)Zz+|H)P`eUUObSvM6tf%|6_*A)LJ!636VS&2acdgnIs~ zt-JR$ZJ;+Yr{+qmwXKQij?+3C1b?pvS5VMIehhGEiZ z3-i2wCZAo+kL2qmgN4-b6#8Pw=ywL+E_fbR%-2;cbL^B7d95^UZ=R-C9g(;BxmC$L ztaRRa)FD&hms@#IB%MgBO}I6&>b8|uSY}WXX6`*UAgGnJE_)#76`&rV2EFR^M5YGq zXbMneRcOqU31m=v@R=T8yv_O9`yzMZzUN^fe=lykUp*H&-gX%uT6V@y)} zq~6LWW+&u)z!$+*Y^ur*Up+`6YIvMasb|v>xew!}n@!)Sy3MrIYO1oEcP#-T0=_c+ zIIy~Y#0J|l#N$if1d|Z`?O4WN7E)d*-0QV!?(9{dE2Z8wEh^xLk_2_K+r}z@Mi$Vf zIUz-lPLhbuDb~|TGXmepq~l-~nGyTOL$?>qci`!Joo|Gg4 zp`ICdWxT|39|#c=%FW2&+?*`RPkEMZ?sPuIM7C#JTVGRD;M6HfRT?tx;T>#_f_x3D z&>*{063)5<+sH3}A0ySq*B38_4~!~es|LSM0UREZcKm#QN@tl$z2C}pVJ|wp z5+g8~xyk39uSFK%$DYKm0k1!5>?19Sn7)Vbfs5GC4E&le3zNNlvQSr10Iy*m7FKz4Q}b zq^8xht=Npl__I|ouOIF=R~fl5p`ThfLT%#78-t4_g;|3ir(Kq($C`Z0dpA z>{h{hWcqeI+SLZ;ufuIq_`HdHC`sf86aXAONsa2x>0WWI!yei$KU=Yp@7=rF%({3> zrcwPLNG4D-?m}Yi;8z0gnk7ONZ&7)Jvh*VNc62BvId=2A<3d}|{abj(sL@A5)d`zF zRj}OobXAsI#q2~!$7ealI~o%||K4q=?9LIUkF+lvlxjNKF{NW3S`3)g>gsdw@)B;m zcC73OO9@{|K=|HE9oU=%K|8y4%s}-TQ__O8rYo*wulwN?-P9?k&@;q zX3_!>bLwklrU~q$B+KUPG1CS!-Wj*o6_6BM0ki=q1nK$d5`>C4E`0rCzv>}nry%@G z+*2#O&O(_6ZI$C=aS7bjuAcE5$9)QGzhs1@$NSBY;_7Kp+UMiV-CwJtLV0Ri8FF#y z1JMV>bGw^}>X9{lY7@R!^`l3%5C?xzpHeYQ6bC!|PIA_uPPiCkoy+lYV z(Bjf_68Zm4Ta}kGh&617G-_*XXBdDA8UC#$QZOo}(5Efffvf!LfBI1>i+p5q`fy!@ zmKq)N0#elPTbI6EeJQ(YI?#fqoU=*e;vL>Z5O}9>;UO*9+Np20dIertK5$8z5k|Gi z@v@htpj_C=mY^a9ISF`tNLMk z|3`mHjXaZC2NazasGb1ca%jOmutFKPCg1Ac`79M-z?WAPA}4$kOr@j19t1SOn}Q!N z$v0(;Cp_f7-fnvl^_6Uw%7Fj$e46#-n!ZMRQkSLNdx?QZt`QNbHnB8rlY-u*^TPgI zU%|zEq>05?-b5P==pRPsrHw}$dzyklh5zx$mWqh>Yis(zFF$`KZ|vG!4L6TwmbE~Y z+t`o#!`WVIG>jNGX0kseYaM|>STjb@ikJCuaPnK}|JL55<~ZsA+3)HJ!iv^@%)v7{ zXaJV8gp>Gh=H+(_Lw2jdQBzB<*=BY2WkVEMmn`6Fvj|V_@vWCsJDhv|jAhw&?g#ln z*ytz8_bpa~6dnafnPWyYm>}HBtxO`mzF)G*|LaO43zu+~RVPerE7@Fugi9YPvM9hrBOP-!Y4}nR(Lr%A&DbP4l$oy))?+T0tOrQe99NR< zH&Qq-zw|_H1_Xp@Tq!>?ou{u=!f7P4z8e(nr#Q?Ae`}$_Edd*tKU%-=LlH4T5;{6r zrx4AR30LoDwfD?r{CNgkSyZ3QohjyqxwouEDa}lZ%l)_3m3%bisf3!YvZr$=wD~L0A`0IW9v6vAB>Ytlr8~N{p z7g5P|q;$Blk+4ELzVKL|UJCE@>llVAq{P?kbh+KLQGzRv0Pr%#FSva+2$17liR zN-<<&E!@C48Dz`HPwb>uJR6Vc8lZSQkuFvRD+1MFl5w!E!L_G4Jwjy;z@e72{-^2z zwUI`EK0?ZUWK%4jnfQXA#FI{%D@inH%}PimY*NYJeoP}nE!mgo9Br`V%Z+m`$E6=` zrA&pRU}uk0tTI}k*{i=0s?cJT5b+{%Yz-?JShB1(j`H}BAo=bI9Dvbo=eGfnw{?6Z8V-N z3$Stnb0hPx)2g-i?JczTn+p&<0Wx&52FsGwsg!XX}b-iMmIP65T8Lpjj-8sU?mTI&0Q5m?wo*wU(zGWrM(e;G8>s z-SYEm&Zugk{kN8e+o%KdZ=+&4P$}rdu~Zjs=TP`!)%<h^wfr-$+{WB}1awn6{)V1(M z6}-yA-YxksdAL?vF8{Ay>Nck-%MBQEJ%7aK$=NOAm6QHmP^JGWpRYj70>=wLd}`mM z7cwXmq6VHRT)&;0>b-r@3*~n{>eJZR4A4o7kTkic>EM+|A3U&Q>-n16{P}{X)Cqi(ezK>JYuel~jhG|ZbQQ9ZK`LCK4 zRE~(Y7H738+8H!_a+f}}RNKcq6lL7&ySRzzW`1vft1p3!RDt@`C#N;80GhbvrA@Rn z3dJB+C0ckQ@5QSdGvAPcPrJa93Wv%XKefH5q3nH#_GoQM8#ydSxFA>*GEPA84AH2A?ih57$;wI5|mXU0_rWp#NHlhZU|1jZ`@p zHAK(Zy!q9EnRJdte<*w-*=ex0*qTkp<~Y!V-Xv{oU^(j&b``FnQ{?|;{_|OlHwZc$!WIoKTKvJuuGqN35H7s2Ex~J zLF*U5k`6Oh;>a`vaVaUG=_&^-4_6_-G<-bKoMgL|)tZ5%x8iX2VlBb}eV^rb9;Bm} zaOhFFpbs_jwIqw6JA`EF-*xHpThV_hc(9m(In!x>%d-1t$IrGnMuS@IxbY7i%5H2Y zMOzBj)0BS1EFAHTJTu8vW!g$L_N%r|Grfm0fp(agUd7c0e}*dQc1)s*1By#NAlsb- zoI@`Z9c?vPzm?^~MV?cR=!T0pT}ZV|Gz}=VhZ?>y^bqDL)*>!J?v8YPMajSpddHbJ zza*(%9~d#fT>6bZxvL@NQ6=-4PEyIdXi%022LBm6scUrXOp~G!_Tg~Tax@t1SI<;G zVL$HLbHM~2{0z^3-TPR;rkA;G4unwL#TNdlB76&7cgMHAT;Kj`bX0ym)v0fI?_;>Y zowvlRbHr$iW{zd2`z@Z|Wuxq+76sYV<_bQTVR6d^e-Q0!nLusfNYUr90xpIe=i=+i zA#`xOmk&z)Sh>utLI^a{hxrL93zBn~(<+L-6TPeFC6S$z!miXgORg|HBkZO8xqRb6 zP202Q!HahB7w5M5a(Z0u@Fmw~hxi#p8#iOyY0axPyF1T6M&_{MJ`O))uQM115;||~ zJ}OBEFy-i7@x~RRntha&lNDGS+^IoO?cdl*nXuX$l|pp^Ncz*7nu*rkz#IAA(JV1Z z93&ow`$OY8HA7}%8L-jL;M3=8u>)m+p&l2ufr{DxB#7CE>yGQYM_dMOR_lF|GIk6!#dzB=l&v zRO;gGwZ~|#Gn}&tSE%@`@PDApC^d8pLDISoJ<}|VQ+gsdC^Vx)9UHz|`o##NNX75= zN@%~*F{j#dK3Vw)0Q16 z$;CV`GEw9DSogf|#I{lz;a2Jt;;cE?G2Dr)JUd#hXkY<~YNosHuIX;LF^rl%s9YF~ zAE6mQ>~ERQA4US46pq!EK!YvQgDzOt`dry4_en|0x)Lal2;La85`_#2WBS!5(k(HT z0YkSud>}&e<>Fu!9p{xltgiG^&qFT9R?@KN6Pz?A0O=UA$D(FktkFcP7_+w+&1?T~ z@VHM2WgeHcGc4fN1Pb3WCl&2!UBCKyQ)e&zHjy=eMUbfW|Hs993TrFpB@A{De>ylh;3O4j_H6zvLjnd$ii-((c4(0kjU|jiU(tq zZ`?UV1~ofq!F?lY*er8{L+%WDOESV$Hb`+tN8e~y-lk+wSk{PVx+Xd@yS1yIN+SBt zUvL0?&+snt>a9Ptj2#ir&&wVW5hxj^Q)fs4MD@dLG`_9*+YnauNqBVM9g9aPG$Qwp ziF~g?8Z2Eo;AG#_;R4?ujo-ETZ}aK)&6ikGI{y zSwAV=**fV}cHjbSaU&qlVc)5nz+h0{q~khaeMH8AbUgSC&aOTg%!S0b6@1rHRP6#2#|Nc>qEV0 zo5DlAh{}%m(_;Y2`bZ-yj_CUwta7gtbQY*GX4u1+cySeMv*)O?z_&WOIHCopQc2e3 z8AFMo0%=ZLTh=DV6$u)=@bVJ0@1uw|QOnXD80@5`x=XhmWq5VX+H{qj>;O04@@vCP zRqqA+0@Pyc+x@31<|?uJ5`~I-lj9uUX1G3LQ>@(|zT|nEpxn z$tV&QzhnLe6Fcps!TTwIO2K#Gy&_+S`~-+G=T*DNdx*vu!|ZRRvu)FcVa)yF93$CG zg=#!6?O}T5(P_2SX5ejq8#Jr))vkOKcw35*Z<%B|Aq6e;#EHGNLj^|&nqL)J?rYMg8HYB{Aa`m{KPGwNUU{_$bY@2^5YZc;n5Gh zyngn2Gw4yDeA+kSm%rBi`rwy$w}6o8yW5Lq7fp};{hktFJ{Zp3*s_f7miDM32M`3A zk+nvx2_h&OAmKGYGuX8=-M&XQt2_6k1(13xt*Y{tX>mt-DR;}mMFz##Ha<}&i6t%} z0XW~K)>Te|sBJkU;@7`0-S?nZcP40iD*4h;%~isNf_`7hJwMn=%E@Pqp$o@fl~i60 zKP?}>(;#rvZ*au-8gnJHAM(nh^3MF1^1-0#_e$C>4{__>Vr1dm$9pl!``#15z6!bh z5xri$FBmk28;u*ezA(oN2Z>D?z<3UfHl;?NSk%>3V^-#%vfY}@+9RYiBg7zSzWKr5 zo_G1 z_ic$xOG9qSG^5k%yFOgM=R&k zs&g-GOn&9zp9&rK+5NMuu0sU|knR1MUb~mb(G8lA{2Xb8&`eo;xWt$*KQas{Ag zNS25D>r0tzGdpF>D89+Mp!;HrQ8^i^{<@}ZH)v3#3%q$7EETM@4fSmb+UOzsxNy9oa8hYa7})T`pn^s2M1JXbgceN?g-&pjdToQ9rZ+gxP6^NHs@ z-Hac1RL6EycSot~wfqw#t<#yKOs47&lY5v#XRq@aQTe&N-1W!hMj{Du($AP(zg9@= z-++L5J0a^X^6y-XRG$ThO-<^`mI)XdqD}Fzr3iO-F5dB=>2U(@?WCaxx(6rZtbKs2VMog zUY6*7Lx%SdgI_fp-yx)J@9yOvMZY!UbEGK~;;E9%pzV+&I%cbaLblAu*OBREq7*yw z8S#U3i#cT!Cv%d_-Q$m!Gp=iNn?cgC&DT7*QyvbELfEvm2eyu@1?m$E)X;MY(aplE zG3#9Eyi`@r8}oU-xR)bV!Brp_)-} zzAtk~sISL$p_ox@Ao;bNa*x=r6BcAZVmD7rknHBsoOOp$(#r0=T=~M4(9sj12%ld7`dZ9>ks;L_~1P&77(dWTZ`V^Xk~wb zcZy4aRJ?Q*Ea2iR*t+Wj`Y}KQ6Z-9~klH4>enqKmj*4>hlYA;xsHM0V&7}EQ^YN3T z>vz8Q7M=q5C&yPQ=n-+vDJ?VZ2C~D_^@8#AKUJoGR1NC@8f9I{g=Eo^)nv@1`Pi<# zg5wTIdOrQm*Ti!x6TR>Hh^}G90C0-=eMmHe6m`h&Kv0SoLJrwqp1Sjba!IVM$Neo- ziJk>{4MjL9SASvpF$77P1K>-I5^Qvx1%V$9Jr?g?HS2?T&?pxD4m@8Eay++7*H|T_ zcWJ%-|8t^N3xL!#dw6-?aMBvHCf61E+sDpQzVHWu7I-pid$UdJWVaBh)P9Wz1#$6F zh2EV}3h<$>>q;P4Lhw3d0$L&3%$qGA25N|z?BAiE1^1$0<}7Zu3q{8-aJ zwP%yDs$wEekWSIDZPf&%{Dr(pBLW2(&yFrx(|9})DyFA#mEGkW9a%7WFHr8bKrjTC z?3-T-uYtxTj%(pmM_lJ!z z7|}}(>1(445~4+(LwMd(+FNQAA(PyTnB^d={c8WLGX4Y6l#&HTTJ2&ZgER4mGlETz z_@V>lI2$dpUA+zac+Vy!n5tR6pL zCa`a!rwiG=TQ%aQ>loha-@?TrC98xjg(8*#ZC}vaR%nLokFHhhq+TPjR(a)sD8!)= z3#&9OAic9N?s-Uq9!lV5wh;y+9@`{j$RU!Bw`@@G{;-XFKW+J^=;_z79_QEzGsg^Q zcEOYmzmnz2hy)Gai)N4vc?PFA2rgE3(-&Uk9t~`3{!q86EDJj`xVLkVUsOASbj%ox ziB&K#HK!Ps9m5bd!`I$^P@Fg}e)()=9f28UCnm3?->snWM++Tx+o_)iQjd>)x8M8 zAhAhvR8$PsH2CU6c(dQ762JMJ>2Ux8V{mag#f3 zcKe^!B?J8*vb>$H(@^2`4f9OxLE$k7x2L(1{fFkZcIZl_dx`K0?QyM;c~hcUiqta- z`Tjb!hXNq@g#pRMtMrF~|5st#9=AwS&%>FYf9n1N8BWUtJ@>SxQ=&C}*KzhB1!dC0 zjSqnMBe|ulPI7N4H9xdm^9xbXLo;L+ci|k!K$w;g1$3bnq&7VJtL8T$Vs!g#9YnhT zep2_UH&WrbqY=yWxZx?e#{5f@j86lMQ(}nlE$5zU8ZNvFX^>;|mo9%%O?0iG<`U~Q zT!vcVcyU`sdrGCVxC>*1--Ex{zxL0+zqx+0&b}BGE{lEAiB2E8Hs0_~hzWkD*l2*f zS<6aDBiUGS)YQV7%oy@$!w3b+9R^V_FXrekQ&On9^}#{soEdHW6gOQYHUs5nkY#fC zIIV{zLhvHGNPi}Afrt&2pswX2mw*)p;&d%I18EGhUtZAa4_m=bZd|tm6rSf~Ce#b1 zH$lOgO=m02qJUDyHKdf{hW(x5Fpbm7r-dp86Uhk<3So$d#}?FQE!>Z-$i29Ck*^It zmOpsUJom=CyWBV$%1Y)xrzJq*7_8U@a|kK3m8NpbBub4u=AP=$%VEa{6V3o(PzXPT zXKatsQ)sQx$ulYl-k8MR53A(pEDy`@joV4EWZS9lT$rRinJiI zehU@LS>1JS8&TAvOOXfArdWR?gv2K_Li=Kaq7@;T!4kKLbi@|)Mm9t7kD=2ExO7%B z&94Piz)3fU^^7F1rojg|7KlQsIYD`GlldO<|A9o~AO0lv8J1zb@C`-lit6)#E;euA zM#aFtCD%EY*0)gNsZ$1P5^Q553qJ-+rOhyoeD`mS;S8s>(%7MO-ohWGj|ekXR!3Gd ze|W?XjV=c;ixG} z#rt1W5yA=UTY9l;&o^uAR%bia$gCH4jWqW?{sWO$8mB#u@TLvWry(_yx3X;Xt98z@>W{uEAoXFYNE#Bvzxx|>krQpyBRFQ}T_fW1nU zEM{WAGHEnwI;(>9sYb&hjaV9fA}89P5o$WA{;63IhcBE-cDDu1yCe0Ko=~|$ItCv455!~ z>bfnv#Akfz18{}<1)qM%md-zw0?Ty8XY$D}|4f^}&EF&;4VuUMoLBx~= zGfMaSQi}cB#ou4of7j~FDzJL%Z~h&k2B*K`B=Cs_xJ}*! z&;S~)$*$mWJS9jrY>87LLP8GW3#E##-~QZs;nQtLfyqw?k6Gp1QjrrU*G5)e`dnex z#gdx(g2o*_l~+^iZa>&1PF z@Z&N!#^sCyAG9F|n#DuJNN z5g5>Zmf(XfeZB_HZuH61Pym&KSUzZ^b(GIh&lLiz@`sG*tM6MR^{Zd85*`>fG6Ge{ zs=8K>muAP5b+Uqj_QmFkJCnYd(9{Om{pmm_%!I z?^xjDHtbxaE53A%qNbenAt?DhYk?9VQIOZORz(pZht@6eadg$2y`N94lQ09YCi(i_ zWDv(F9-p@g;TvWH{N_?gfFTrA!m(b)dqmmC!@yb^R6)6ZHYOi^4S0blDXw7tjn?NH zkG@t*8F6Sbg4jS`p|u#eL$(aY3)9p&eMSTHKw|z)jIYH>6|5!6APBhNHV6Ar>8KL( zFu7ZS1QxTU#oL4(6PClPvI+9ytsgUPdnMz-z%W>ed#bwkopN&VIaA(NQbpBr6UoVm z>%R3Pg#)t=tuv1!utpZJCZ^V(pdZYv_^GRu5|Y;JwL@JUFNEgnR%{BXB42I5?e2;w zxHghIRq^A!F8)n^dW>&pG0j{0pbr59Geeu&!h7u*hF`=9C!@zo38rFSsljP4`)()R zaQ&1m&Fv);=*N2MUka$A^e;c%{oD^!!w&CR^rdw9rNfm*CZorXi^wp?72KBK7;Qu) z$iuiK9LybjAyERa!s!$v4z=joAsiJ+qhvr+?tj&p1gg9IkRL?ekF5ES{bbJ4s)|&bE@32D~E670~fL!H&(< z3l1F(5}Oqa=Hv@&1>7N~w5dI+wD8i`$wEImcKM;kREj$&xt#f|!g0LNf}t?lz?{8k ze+Q*MKp>)~ZtU-{55g**Y{G7hqD^0=yMr{RxIUpMFi29uV;(pc%eKJJ&SJ!T~O$4iEdPv71=-S5-{+c%r_D$o)9aGC}?l1dzC{;h6-dA zfb~r zs_l$6U}JQAA+5$qzVenZ<95NIZw+kahF1Fu*$xp$FtNRpsjHuXV+q;Yo~|TA;WY$# z`R|k6`J^W=>2SGrkf`an{!Z}Kx^ai>)aaY!TMhOS{%Qq3Hntur^5t@H{Vp&2r@L^q zpAf+)5&wGsuz@!|6$EoIg-En~{@P{vJfK8I$pnx{j2={eSURde^gHJm+7m0;$je!$UZo$q zV)H%2e`&)tn;6)JR#pI;qMdlx{@=+RI&#B-6JIw=nnm>xj*AWIfNVod))As=(ak(; z0nu6+{~7M=F^-EdmoM;1LT40`kY>hOrLnC07T5aO`T8?h)b7V*<+}BdL&l4<;#$$b zW{#}dxIZH;E)&TKdgjT$o@^UHqJa9^rBDtC9ad5=SuKFpq9Is|P3-yjwLXv-))H!E z6bB4^%RpJf%^P=q~Z7%$SuidM#F8+-9>x zvuMo5EKt%8^rVA3wDKgi({LCh-w&nWbYmZYUjWlXgb(|ee8HP+7TD;L_Y&@We90r- zkxJCNbi-sinpU$3YHWI_EqE!;+u@!SP{hIjz5)8jX>mSom6gDwSO6qpmgYqyje5}2 zwYqeMMqNw$fVn(DiPul|mIuP;*K-z#xujM*7vKA;9=BKLK-(TKN)qV02MQ$``{fwc zcF|=q$;3=o53Evkg+v3VuNHk<-q0DxoaXP7RFmJlu7K6Ev1fUVb3PKgvr(#9!Z) z%aDqO43FM5j(?HDgaMdlFMB}x-wO04-TwnA?Bh&n6(ygkg5xf#YIff;UdaE!n zK{eZf)N}>y-f*!Hg9+A?drUk1W)o!w`9(KiJd)i-2sGa2&cbr30u1C&nl-0*x{u%FOeU$$~-Cl zNU(Krr(mt7tvxP;v7Te#Ud5n$k5B=?){hr1;A|;)HXMBXR;ChuUtnNVi-~@{>VFlT zi$7EUAIHxOLvm}1%qHZPD?@S#b4|Wut|`sTWp1S?6`>|E zl1nD3kPIV97`cCc=l2(!^El^oKJU-_bzZOMyW-!3ZoTtQo$v5$%M)?>QUA;!e2ZUr zWPb2UP(x#*L_Nb>0(WPHQ_Kc_=$l|0x7?hT>_Yvv5kDv+tiw`H+*VRpVVcayPU5L~ zILVUiw{_%=u0a9X)?gGh#3e3Yyq&hJ%SU75^?dDTq?Z_^jhn%^%~d(k_{|!p5OF)x z#7QGzd3PH$JsvY}I~tZ<42tw8mJ$j*=lZ>^8{wl&F8qySW4<1K&V?2XON<0nJ>+$1 zsc0i9@fecdq0VKK;Rh179I2I$Nls_M+*xz?V9@k)hifX!s`v%Z_5+w+?r zD)wtgn=Cqnx=dScx*rFpDQN4(yuYAeG~NjPRrT5Uu14iDTQrd{F_a{Y(bj${nc%Z* z;=HZ|Hri?ez{4t2*3uoE z)*xh^IUL5=g1GX7Wc~v(oZ2m!40okVMss*$14^;a0RDRrsa4z}-XWs^`l}au(B8DD z`UlX>HN9~UqJgRv@%MS(OR$c>)oQhk2*@B5<%Da;X}95PU1WQABr`>{`Z zJ;!$Un#vFD!h`n=gxOH-jn6~TbE~GW!BSwlQ*PjOZTFAw@7{C8N>klh6Ev{>d>))r zUXBcNWFQ;H-uS^2sj7^fz+N>tG7p#_huHC*deI6*Gz*Hs>VAvrj}An9Nc-TR;DYW8 zi~*{|#bbjm{lU%5_hd_R5iy==BRUwRNjB?fY*{y;v$52xUtqAU#=&K{eO-wbP`?}u^n|!Q^uHr=+S6bAY`vHj5+k$ zUb(6#ydp~>cf*~iQEO=brPaU~(nqFN(gqWWejB{&G{06IZ43)`%oUu8!nnr$=7#v) zp$vy;jg6o;DK39n`2DJS4npy2#XeK@gZU4QzU$ieJB7`8IzD&Gc2Ris8-yY63szf2 zM3{axED>eI$PeEWAj@-|N8cb6Og>W&8ja@>%pvPM!+5EXKQVBKT9$7JxkuYlx9S67 zk*K^@&biYi(I@k5VK`5b>p%$V_FlDQ$mfDUI42IqMlO^IiF7~Y&=?mR*hlmhMGheY`NNr|2?>^)>EtOP zt58P)PC_=g4JKs5B$?)u$!2x9P^FAA8i)0cLcb?d#LL_QojV4fCcdQ1g5x z>iJQ18kG0>*`sNKMhx21<5Z)6((T_k!OFuplGg;2;tU;0PxqE}O2?~;sm4}e11;Tw zK3z}8@Hu-LZ7}D!kOiYj15stMwz8&WgH(h#zmIap@gHk!kf{o$!bm@6GLuE1!7sg1 zCqGy?;yd-6EtT>lDP?hyDCUPc1_RgBH#wT`M6n-Hrfg`}43fnN?!;D~(jHC~ZT@`% zfY>uK!wRjQYiRCzm`M9ZuzeBhKA@WJDSug7qS_>jXtu}rXQy#sox*;r^g02CV* zfn#e8+8R@=A@}GOXX);?$hD3G%wl%HfFZF|k2b4s4R8RCIRW7)b!mZWyZ4K;F zJ%`h~5Z-U_DvJd(SxUd)H*Y(QmDo-(d*T1jb|56BzSx_5g_ovw4V7=m@XN(NIHbwU zD~WH>C7`#4N~nme_)~T)FH)t_%)Po=Cx0Jb-R(J={o*iH1A45_g4{F|fMZP+0K*3djY<46MYd1mEd54uARCb_IGY{S zn4J-MR|ENJGVme7=W>zY*{I=Y3{QDE)CAm*?E1)@pDNC>i7zMbShz#t=H~2(or#W! z_p2-?2VFY{9l5*)lB-4LRPmjm>fhcaih8lbEJ>ByC55b%vq3;3LG2*P+`uV#DbH4K%Yz)1Bk6r_7ZmufyMWg z*#nn+Wb90HL>#N%J?Uj!qCaw|HvX0{*WvKa#e}CUc%^l}E0$af1b;_w?&f_K1JEn> z%xDr4)2kH-`80X^-oW4tbw8u@UI#`;{P~ zFCK&~kg7y8Sh3NbBc-E}8mN57EI9v3_6B#j{J0bR1}A&2BPc4y!ymdjA(iTCzP4S} z3^hu!YlFdQZ^w-Ho-6RbsXTMv^02Md_SOe2=&9^Z$~x(p@%iz)NzBN#ax6wr2wX?2 zL05Z0szNua2R_CLftlVvB*dk$Ua6a{zuf!3;$C5y6~`u+OawO9VM@L z$<52D$qxbUNq#z1o5W&H@RGaQMUO%#RR2|2VcfeV-YogVr4WfZ-c?+YfuJANmvA$; z{}kP?@RTI>-V$7x-Pkp;Dlk*KYqdq)gyI!xS1Ofvbd&wT@dJ;J2(k~%l6UQMi}hv0 zTxO-m8cJ;b+S-S6qI5#$2%p2t>dUNxNOSW-b{p5>ZtWi`(A)5Pge}gXviaNlu-ooO zGh3op%lmX$%!c5_9q_S(CW%UMtP#O8QDB;mSnFnqjYj(k*&FpAUQMVo(g;&iAm|e@ z!Q2inoj5hE5O*c_=g^|QuV1V4^h!RI?yW49n~)XnU|?*78X8P-|3VKVPF>rx!IRWn zzRztvAV*8LLxfL-xo!CP=jJYuZd>(>M$6*^Z(c&#uq3Rj(cPPqNz>wOVy(SiJ8irA zU~YQvAws4E9e1mA!t$+#p(pwbX97XC~f}-?08-X zX5+2vE(wErK+05cQ1qyrVNYXp=2Ocu(-z^4Z(cacyvJ0=`Fu`rLz{Y2mtbUIA$tho zBys*o8)9uHH{BMdIkoS*u3{RTLn>2Njcdpo-(6J)qA?%?W<@jeAZXlhb`y?T^}J3saFjR>Wdk6& zIZrkkFHlluk4Gc231ai7lcr#UG+Kb^7(W=Mxs(oET90qAbk&C6xG24ucC^{{3Nhl^Mu zUGf8vqljzsPTJF5!j98Z^<&HylE~StpP~~JkZh-;FD`t^GFdI};_hASHH*qK{4T+g zycGH_6g_+Lt{GIm4>riwu04CS*YLpeR#+h!182!JNKFvRp{=5%P>TU0;pN;2JRAsw zgvxrmj+B447$An|K*mDIe3cr*7~@Lw zXWzTT`wWtl^KR$7`)b^Xt!v<4cBO6{`FX_cLfWx+6Dwcf@Mo$h)Gxj3(8CMA)(N-x zi;%*4vE)HUm5(ebp6$Iye(S;AA7PFwr|obBpj4YbB8e<)pYc7J^h!Y5NqO=bA$8*{ zuR_rQvOBm!ihXz%wfvLtQ!ZeI9ifh^Yn;NNfaGjH}7p#*-Zd+q$Fr0ZRE++9h*~F3WW#kEuvz!^_{-idc%zr|ztrh^5rUGG>* z!YL7MR>r#!lO0*`>6Yppz@!8wcmVPy_v3mP-Zjz-9v zt{N*cPeJ`Un6`L%zPJ*;1_Xq9+C^W_5zJ^$|A>uCEEW}eEVzox_x5F_paXuuu6myp zc@R-y%g0iLW|5!nTybvCP7Jv+1le^Ddnk7k0`#|U%e-5yVid({4+8z9d4 z_>G&><7GOrVBFj%wE`gmit2_5_Bk-s9r7ns8f!|}sh4aRFrMPGDiBs8b&ER)ezbow zF{peKWGP#AeuI~`w_EVF6*#S;3cfGAy(KSw;+K7S8w=PXh4qnf2md6R0MtM@|Ex=L5Upiw;h%TH0EL=R4B+DV{iJv6 zD3^S5uZPg9qpW3#5`X>Uw>vE$-urVN=v*)Avg>8$6>&OaB52FT*lN&u^8D!@uZtF? ze)U~f3^61-r{AL2A2i7w@l8SAS+ow6YK5(`PMW9Z^OZyqL+3-HCaWaNuIV`n=15Ua zQ3y&0UNIDdslLH!gh98{vweKbSC4Yzy>ojT@lwqJU@~^N>dh_MRj0KXrav9H>rre~ zs4sDFW}5zvTkNaz_rFQMD`Sf~ahpTKk#x`p)_1njTEPV>q8m3U3%?8x({2+JErU2`bX%8 zI^s8%m0JK+Vl(}|N>P&q$dM8=Y%Uej_#ZIav&+bo&O*15i7jaHaEbn3HMVayt9J8! z{?JQ$X@;2cV42(-y5D7w9SKzsyW)U(`K+a{P1 z{wUrMC~ww^3p9}4amsM7JvJIZ){poJFU5V`^~BAJ%@xnWi!hb=BI|QwE2+4&n!5eo z(_0eUV4#YY8N1i;NYaX3<0j432a>2vAIy3Hi!clg`(k!^59N8-0wA43fGVDi(bbgw z$ToaC6}B;x`q0G3$13=Nrf)|9aDBTuF5lt&kK0l;W!SvBp>NKIrJc^-dYd-kxas?=6>7x;hvN}~Smq7vAJRp{N8 zZN;9es+0Z7OK>`-Jv`h*$W&~tv2M&J0|V$Hb`=?Uxfe$PW?S+_su~( z5OO_4H(t+(mtfVU%o5+>cXu4K;;z3>qJ?d^CxVpmajHtM!F#&93zX_&VmlDsC_oRsFXt^vg68Y@J3iJDDXqb#`cqi5u2czWbgL_ z`vfn$@i?&0JYJ6u8+gAl0PTY1_8wC5p~jnEjnA8iDKu(cf8`ChShev@CtFt8f1(#1 zvlsD_oP}IMd&%5_i>8cj8S-lpaN?1o9^#mbZ~zKj@td=KU5Uo5vS3*y2|oyBzU~Pd z!M%2k`&Er)(QFQMeh#nDpm!i{`*}sQyQ^q7rqkl!1&**>6+|j+XuzgbVXbGgW^B>( z#LIjj&h)hjes70TWgNT&?4z1vXFp@f9g*`^a9|WNo<}1k6q1@);_`T9wnlD;+D6nO zUJAC+YpH`^pn`l)3Y)>|IqxdE^CXuR0`%#f)}STzgKm=$m|EO5^D$Ai3XYxAiaqP7 zom4%?x}0f2S^qG9-v5?=Oa@Er?Np-4my-EfwvF>qu8Y`N-EW5CpY?(n~mR)aFK z>Z`1DqEdkNZ4lhWCK-QrRx$XXuwT^iH-&3$F28Zc)=oo1wL|>WJpFY}MnZGp-lv^@ zY6;+cMevqlK9D``hY%ah6y9>AvV4N43zp_xIBJ&xYRAo&MlOV9jFfDvhRFKo_Bq=7 zm6G;D%5%eaWR{zM#U+*#M)(r1&cKH_lviPb!9X9Kzt$*(5@rch1?EuYQC zXH~!apm1D4D~vZY<∨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 literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/wenyi.jpg b/web/assets/streamer_avatars/wenyi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77a95ff0a3885763f5c212307db57cbc026b783d GIT binary patch literal 64721 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
I#%o?usZ#hV`8r`j?7~9}UcK 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 NCsVB>E&ezE{{W^%^osxh literal 0 HcmV?d00001 diff --git a/web/assets/streamer_avatars/zhadan.jpg b/web/assets/streamer_avatars/zhadan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9b67ecae0b73c8a2dc2c30a4c4e5c2f6c003766 GIT binary patch literal 57316 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 XLYvjQT6K;{)62Es+*4%Um;V0%aHX-( literal 0 HcmV?d00001 diff --git a/web/data/pro_player_watchlist.json b/web/data/pro_player_watchlist.json index 0a98f75..0dea83f 100644 --- a/web/data/pro_player_watchlist.json +++ b/web/data/pro_player_watchlist.json @@ -1,49 +1,555 @@ { "meta": { - "note_zh": "手工维护的明星选手 OpenDota account_id;fetch_pro_matches.py 默认只拉此名单。队名/昵称可随转会过期,以 account_id 为准。", - "source": "opendota/proPlayers", + "note_zh": "手工维护的明星选手 OpenDota account_id;fetch_pro_matches.py 默认只拉此名单。队名/昵称可随转会过期,以 account_id 为准。对照 Dotabuff / Liquipedia playerid。外号:查理斯→Chalice;Somnus 即 Maybe(路垚);Faith_bian 现常用 Bach。", + "source": "opendota/proPlayers + dotabuff.com/players", "updated_at": "2026-07-29" }, "players": [ - {"account_id": 898754153, "name": "Ame", "team_tag": "XG", "region": "cn"}, - {"account_id": 173978074, "name": "NothingToSay", "team_tag": "XG", "region": "cn"}, - {"account_id": 94296097, "name": "xNova", "team_tag": "XG", "region": "cn"}, - {"account_id": 129958758, "name": "Xxs", "team_tag": "XG", "region": "cn"}, - {"account_id": 101695162, "name": "fy", "team_tag": "XG", "region": "cn"}, - {"account_id": 157475523, "name": "XinQ", "team_tag": "VG", "region": "cn"}, - {"account_id": 320252024, "name": "shiro", "team_tag": "VG", "region": "cn"}, - {"account_id": 148215639, "name": "Monet", "team_tag": "", "region": "cn"}, - {"account_id": 854671154, "name": "XM", "team_tag": "", "region": "cn"}, - {"account_id": 292921272, "name": "Wisper", "team_tag": "LGD", "region": "cn"}, - - {"account_id": 321580662, "name": "Yatoro", "team_tag": "TSpirit", "region": "eu"}, - {"account_id": 302214028, "name": "Collapse", "team_tag": "TSpirit", "region": "eu"}, - {"account_id": 106305042, "name": "Larl", "team_tag": "TSpirit", "region": "eu"}, - {"account_id": 113331514, "name": "Miposhka", "team_tag": "TSpirit", "region": "eu"}, - - {"account_id": 100058342, "name": "skiter", "team_tag": "FLCN", "region": "eu"}, - {"account_id": 183719386, "name": "AMMAR_THE_F", "team_tag": "FLCN", "region": "eu"}, - {"account_id": 898455820, "name": "Malr1ne", "team_tag": "FLCN", "region": "eu"}, - {"account_id": 10366616, "name": "Sneyking", "team_tag": "FLCN", "region": "eu"}, - - {"account_id": 201358612, "name": "Nisha", "team_tag": "Liquid", "region": "eu"}, - {"account_id": 77490514, "name": "Boxi", "team_tag": "Liquid", "region": "eu"}, - {"account_id": 16497807, "name": "tOfu", "team_tag": "Liquid", "region": "eu"}, - {"account_id": 54580962, "name": "Insania", "team_tag": "Liquid", "region": "eu"}, - - {"account_id": 93618577, "name": "bzm", "team_tag": "1w", "region": "eu"}, - {"account_id": 331855530, "name": "Pure", "team_tag": "1w", "region": "eu"}, - {"account_id": 86698277, "name": "33", "team_tag": "1w", "region": "eu"}, - {"account_id": 136829091, "name": "Whitemon", "team_tag": "1w", "region": "eu"}, - - {"account_id": 124801257, "name": "Nightfall", "team_tag": "Aurora", "region": "eu"}, - {"account_id": 858106446, "name": "kiyotaka", "team_tag": "Aurora", "region": "eu"}, - {"account_id": 480412663, "name": "gpk~", "team_tag": "BB", "region": "eu"}, - {"account_id": 196878136, "name": "Kataomi`", "team_tag": "BB", "region": "eu"}, - {"account_id": 1044002267, "name": "Satanic", "team_tag": "VSN", "region": "eu"}, - {"account_id": 127617979, "name": "Crystallis", "team_tag": "MOUZ", "region": "eu"}, - {"account_id": 431770905, "name": "TORONTOTOKYO", "team_tag": "OG", "region": "eu"}, - {"account_id": 111620041, "name": "SumaiL-", "team_tag": "NGX", "region": "eu"}, - {"account_id": 103735745, "name": "Saksa", "team_tag": "TY", "region": "eu"} + { + "account_id": 130416036, + "name": "Agressif", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 94738847, + "name": "Chalice", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 140613225, + "name": "Cty", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 143693439, + "name": "Dy", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 88585077, + "name": "Ferrari_430", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 148215639, + "name": "Monet", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 134276083, + "name": "old eLeVeN", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 137193239, + "name": "Paparazi灬", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 138543123, + "name": "Pyw", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 149486894, + "name": "Sccc", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 106863163, + "name": "Somnus/Maybe", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 108382060, + "name": "Sylar", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 98887913, + "name": "xiao8", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 854671154, + "name": "XM", + "team_tag": "", + "region": "cn" + }, + { + "account_id": 107803494, + "name": "Ori", + "team_tag": "AR", + "region": "cn" + }, + { + "account_id": 118134220, + "name": "Bach", + "team_tag": "VG", + "region": "cn" + }, + { + "account_id": 320252024, + "name": "shiro", + "team_tag": "VG", + "region": "cn" + }, + { + "account_id": 157475523, + "name": "XinQ", + "team_tag": "VG", + "region": "cn" + }, + { + "account_id": 137129583, + "name": "Xm", + "team_tag": "VG", + "region": "cn" + }, + { + "account_id": 111114687, + "name": "y`", + "team_tag": "VG", + "region": "cn" + }, + { + "account_id": 898754153, + "name": "Ame", + "team_tag": "XG", + "region": "cn" + }, + { + "account_id": 101695162, + "name": "fy", + "team_tag": "XG", + "region": "cn" + }, + { + "account_id": 173978074, + "name": "NothingToSay", + "team_tag": "XG", + "region": "cn" + }, + { + "account_id": 94296097, + "name": "xNova", + "team_tag": "XG", + "region": "cn" + }, + { + "account_id": 129958758, + "name": "Xxs", + "team_tag": "XG", + "region": "cn" + }, + { + "account_id": 207829314, + "name": "BoBoKa", + "team_tag": "YB", + "region": "cn" + }, + { + "account_id": 202217968, + "name": "Emo", + "team_tag": "YB", + "region": "cn" + }, + { + "account_id": 185908355, + "name": "Lou", + "team_tag": "YB", + "region": "cn" + }, + { + "account_id": 139822354, + "name": "Setsu", + "team_tag": "YB", + "region": "cn" + }, + { + "account_id": 147767183, + "name": "Zeal", + "team_tag": "YB", + "region": "cn" + }, + { + "account_id": 158847773, + "name": "天命", + "team_tag": "YB", + "region": "cn" + }, + { + "account_id": 86698277, + "name": "33", + "team_tag": "1w", + "region": "eu" + }, + { + "account_id": 346412363, + "name": "Ari", + "team_tag": "1w", + "region": "eu" + }, + { + "account_id": 93618577, + "name": "bzm", + "team_tag": "1w", + "region": "eu" + }, + { + "account_id": 331855530, + "name": "Pure", + "team_tag": "1w", + "region": "eu" + }, + { + "account_id": 136829091, + "name": "Whitemon", + "team_tag": "1w", + "region": "eu" + }, + { + "account_id": 320219866, + "name": "kaori", + "team_tag": "Aurora", + "region": "eu" + }, + { + "account_id": 858106446, + "name": "kiyotaka", + "team_tag": "Aurora", + "region": "eu" + }, + { + "account_id": 256156323, + "name": "Mira", + "team_tag": "Aurora", + "region": "eu" + }, + { + "account_id": 124801257, + "name": "Nightfall", + "team_tag": "Aurora", + "region": "eu" + }, + { + "account_id": 126842529, + "name": "Ws`", + "team_tag": "Aurora", + "region": "eu" + }, + { + "account_id": 480412663, + "name": "gpk~", + "team_tag": "BB", + "region": "eu" + }, + { + "account_id": 196878136, + "name": "Kataomi`", + "team_tag": "BB", + "region": "eu" + }, + { + "account_id": 172099728, + "name": "Kiritych~", + "team_tag": "BB", + "region": "eu" + }, + { + "account_id": 165564598, + "name": "MieRo", + "team_tag": "BB", + "region": "eu" + }, + { + "account_id": 317880638, + "name": "Save-", + "team_tag": "BB", + "region": "eu" + }, + { + "account_id": 183719386, + "name": "AMMAR_THE_F", + "team_tag": "FLCN", + "region": "eu" + }, + { + "account_id": 25907144, + "name": "Cr1t-", + "team_tag": "FLCN", + "region": "eu" + }, + { + "account_id": 898455820, + "name": "Malr1ne", + "team_tag": "FLCN", + "region": "eu" + }, + { + "account_id": 100058342, + "name": "skiter", + "team_tag": "FLCN", + "region": "eu" + }, + { + "account_id": 10366616, + "name": "Sneyking", + "team_tag": "FLCN", + "region": "eu" + }, + { + "account_id": 97590558, + "name": "Ace ♠", + "team_tag": "Liquid", + "region": "eu" + }, + { + "account_id": 77490514, + "name": "Boxi", + "team_tag": "Liquid", + "region": "eu" + }, + { + "account_id": 54580962, + "name": "Insania", + "team_tag": "Liquid", + "region": "eu" + }, + { + "account_id": 152962063, + "name": "m1CKe", + "team_tag": "Liquid", + "region": "eu" + }, + { + "account_id": 201358612, + "name": "Nisha", + "team_tag": "Liquid", + "region": "eu" + }, + { + "account_id": 16497807, + "name": "tOfu", + "team_tag": "Liquid", + "region": "eu" + }, + { + "account_id": 190826739, + "name": "BOOM", + "team_tag": "MOUZ", + "region": "eu" + }, + { + "account_id": 127617979, + "name": "Crystallis", + "team_tag": "MOUZ", + "region": "eu" + }, + { + "account_id": 116585378, + "name": "MidOne", + "team_tag": "MOUZ", + "region": "eu" + }, + { + "account_id": 108958769, + "name": "panto", + "team_tag": "MOUZ", + "region": "eu" + }, + { + "account_id": 9403474, + "name": "yamich", + "team_tag": "MOUZ", + "region": "eu" + }, + { + "account_id": 101356886, + "name": "GH", + "team_tag": "NGX", + "region": "eu" + }, + { + "account_id": 140297552, + "name": "No!ob™", + "team_tag": "NGX", + "region": "eu" + }, + { + "account_id": 152168157, + "name": "OmaR", + "team_tag": "NGX", + "region": "eu" + }, + { + "account_id": 111620041, + "name": "SumaiL-", + "team_tag": "NGX", + "region": "eu" + }, + { + "account_id": 355168766, + "name": "Natsumi", + "team_tag": "OG", + "region": "eu" + }, + { + "account_id": 100594231, + "name": "skem", + "team_tag": "OG", + "region": "eu" + }, + { + "account_id": 155494381, + "name": "TIMS", + "team_tag": "OG", + "region": "eu" + }, + { + "account_id": 431770905, + "name": "TORONTOTOKYO", + "team_tag": "OG", + "region": "eu" + }, + { + "account_id": 324277900, + "name": "Yopaj-", + "team_tag": "OG", + "region": "eu" + }, + { + "account_id": 302214028, + "name": "Collapse", + "team_tag": "TSpirit", + "region": "eu" + }, + { + "account_id": 106305042, + "name": "Larl", + "team_tag": "TSpirit", + "region": "eu" + }, + { + "account_id": 113331514, + "name": "Miposhka", + "team_tag": "TSpirit", + "region": "eu" + }, + { + "account_id": 847565596, + "name": "rue", + "team_tag": "TSpirit", + "region": "eu" + }, + { + "account_id": 321580662, + "name": "Yatoro", + "team_tag": "TSpirit", + "region": "eu" + }, + { + "account_id": 312436974, + "name": "CHIRA_JUNIOR", + "team_tag": "TY", + "region": "eu" + }, + { + "account_id": 56351509, + "name": "DM", + "team_tag": "TY", + "region": "eu" + }, + { + "account_id": 93817671, + "name": "Maladych", + "team_tag": "TY", + "region": "eu" + }, + { + "account_id": 103735745, + "name": "Saksa", + "team_tag": "TY", + "region": "eu" + }, + { + "account_id": 171262902, + "name": "医者watson`", + "team_tag": "TY", + "region": "eu" + }, + { + "account_id": 140288368, + "name": "Tobi", + "team_tag": "Tundra", + "region": "eu" + }, + { + "account_id": 94054712, + "name": "Topson", + "team_tag": "Tundra", + "region": "eu" + }, + { + "account_id": 73401082, + "name": "Dukalis", + "team_tag": "VSN", + "region": "eu" + }, + { + "account_id": 106573901, + "name": "No[o]ne-", + "team_tag": "VSN", + "region": "eu" + }, + { + "account_id": 195108598, + "name": "Noticed", + "team_tag": "VSN", + "region": "eu" + }, + { + "account_id": 1044002267, + "name": "Satanic", + "team_tag": "VSN", + "region": "eu" + }, + { + "account_id": 131303632, + "name": "4nalog丶01", + "team_tag": "Heroic", + "region": "sa" + }, + { + "account_id": 81306398, + "name": "KingJungles", + "team_tag": "Heroic", + "region": "sa" + }, + { + "account_id": 292921272, + "name": "Wisper", + "team_tag": "Heroic", + "region": "sa" + }, + { + "account_id": 177203952, + "name": "Yuma", + "team_tag": "Heroic", + "region": "sa" + } ] } diff --git a/web/data/streamers.json b/web/data/streamers.json index bb88ae3..2a37351 100644 --- a/web/data/streamers.json +++ b/web/data/streamers.json @@ -19,7 +19,8 @@ "profile_url": "https://v.douyin.com/MM3U-EpqI2E/", "tagline": "天怒绝活哥", "heroes": [ - "skywrath_mage" + "skywrath_mage", + "shredder" ], "nickname": "DOTA2小王", "unique_id": "chenshiweidota", @@ -40,7 +41,8 @@ "live_url": "https://live.douyin.com/892762012034", "profile_url": "https://v.douyin.com/FcUd6qHXYwc/", "heroes": [ - "juggernaut" + "juggernaut", + "phantom_assassin" ], "nickname": "Dota2剑心犹在", "unique_id": "33552682609", @@ -255,6 +257,226 @@ "video_title": "Dota2沙王直播录像", "is_live": true, "live_probed_at": "2026-07-29T05:14:20.981087+00:00" + }, + { + "id": "qitiandasheng", + "platform": "douyin", + "profile_url": "https://v.douyin.com/BclSpsH9RJ0/", + "tagline": "万场绝活大圣王", + "heroes": [ + "monkey_king" + ], + "nickname": "Dota2-yellow", + "unique_id": "381896350", + "signature": "万场绝活大圣王 关注小黄带给你顶级的大圣教学\n辉耀魔晶法师克星巫师之刃开创者\n接定位上车打号yellow6x", + "following_count": 276, + "follower_count": 31000, + "total_favorited": 53000, + "avatar": "streamer_avatars/qitiandasheng.jpg", + "video": "streamer_videos/qitiandasheng.mp4", + "video_aspect": "1080/1920", + "video_fit": "cover", + "video_title": "你从未见过的4v6 4圣剑一刷新超凡局逆天灭世翻盘! 求仙问卜不如自己做主!!这把我要赢!", + "profile_fetched_at": "2026-07-29T08:35:00+00:00" + }, + { + "id": "luna", + "platform": "douyin", + "live_url": "https://live.douyin.com/25345747701", + "profile_url": "https://v.douyin.com/qTjo7mybfZA/", + "tagline": "国服第九露娜", + "heroes": [ + "luna" + ], + "nickname": "DOTA2冰凉皮蛋", + "unique_id": "dy19wol6d5wn", + "signature": "DOTA2万分一号位接上分定位赛陪玩复盘\n主播主玩145,话痨型教学主播,直播间一定能学到技术", + "following_count": 11, + "follower_count": 1025, + "total_favorited": 1496, + "avatar": "streamer_avatars/luna.jpg", + "video": "streamer_videos/luna.mp4", + "video_title": "冠绝局露娜被破三路逆天翻盘 前期三路劣,中单凯经济老六毫无节奏,死活不出bkb各种被抓,全场被压着打,最后破三路一波翻盘", + "profile_fetched_at": "2026-07-29T09:08:00+00:00", + "is_live": true, + "live_probed_at": "2026-07-29T09:08:00+00:00" + }, + { + "id": "wenyi", + "platform": "douyin", + "live_url": "https://live.douyin.com/273765057602", + "profile_url": "https://v.douyin.com/DOK1nsY-zio/", + "tagline": "瘟疫法师", + "heroes": [ + "necrolyte" + ], + "nickname": "Dota2教练麟仔", + "unique_id": "qyjjjjj", + "signature": "打号加我:ymshkm ,ok林仔外门弟子\n排名最高前400,抖音林文化传播员\n有点小帅 心态顶级欢迎弹幕随意互动\n刀龄14年 教你最好的上分姿势爬出鱼塘\n直播时间:上午10点开播或下午2点开播\n我的猪宝贝@鱼鱼困了 (臭臭版", + "following_count": 527, + "follower_count": 26000, + "total_favorited": 6391, + "avatar": "streamer_avatars/wenyi.jpg", + "profile_fetched_at": "2026-07-29T09:22:00+00:00", + "is_live": true, + "live_probed_at": "2026-07-29T09:22:00+00:00" + }, + { + "id": "tumao", + "platform": "douyin", + "live_url": "https://live.douyin.com/134896053323", + "profile_url": "https://v.douyin.com/jhBRzuYLsQo/", + "tagline": "绝活土猫", + "heroes": [ + "earth_spirit" + ], + "nickname": "Dota2-土猫King", + "unique_id": "dota2_zkm", + "signature": "当我拿出土猫那一刻 阁下该如何应对 激情dota\n优势那肯定是队友强 劣势由土猫保驾护航", + "following_count": 88, + "follower_count": 11000, + "total_favorited": 2060, + "avatar": "streamer_avatars/tumao.jpg", + "video": "streamer_videos/tumao.mp4", + "video_aspect": "576/1024", + "video_fit": "cover", + "video_title": "实名点赞我的老板 关键跳羊带我比赛", + "profile_fetched_at": "2026-07-29T09:25:00+00:00", + "is_live": true, + "live_probed_at": "2026-07-29T09:25:00+00:00" + }, + { + "id": "huskar", + "platform": "douyin", + "live_url": "https://live.douyin.com/146558623901", + "profile_url": "https://v.douyin.com/Vcwyd4ol0ys/", + "tagline": "国服第一神灵武士", + "heroes": [ + "huskar" + ], + "nickname": "DOTA2 阿黎(只会玩神灵)", + "unique_id": "2056381253", + "signature": "老干爹前职业选手 | 国服第一神灵武士\n残血即是斩杀线,血条清空才是游戏开始\n接pw/代练/教学:yoyo_ice09 私信秒回\n老干爹英魂之刃前职业| 国一神灵认证\nDota2单排9000+ | 胜率78%+\n坐标:岳阳市 | 直播时间:全天不定时", + "following_count": 235, + "follower_count": 1602, + "total_favorited": 362, + "avatar": "streamer_avatars/huskar.jpg", + "video": "streamer_videos/huskar.mp4", + "video_title": "杀戮日常,超凡三黑", + "profile_fetched_at": "2026-07-29T09:28:00+00:00", + "is_live": true, + "live_probed_at": "2026-07-29T09:28:00+00:00" + }, + { + "id": "fatiao", + "platform": "douyin", + "profile_url": "https://v.douyin.com/ZBmUklVKXm4/", + "tagline": "发条", + "heroes": [ + "rattletrap", + "magnataur" + ], + "nickname": "刘大独(DOTA2)", + "unique_id": "Ycn5505", + "signature": "水瓶老玩家 无公司 不签约 不一样的玩法 不一样的思维", + "following_count": 863, + "follower_count": 115000, + "total_favorited": 1132000, + "avatar": "streamer_avatars/fatiao.jpg", + "video": "streamer_videos/fatiao.mp4", + "video_title": "DOTA2发条 这版本发条是真好玩", + "profile_fetched_at": "2026-07-29T09:40:00+00:00" + }, + { + "id": "zhadan", + "platform": "douyin", + "profile_url": "https://v.douyin.com/JTBBqWZFhVo/", + "tagline": "本色风情 · 炸弹人", + "heroes": [ + "techies", + "furion" + ], + "nickname": "bino", + "unique_id": "69276358589", + "signature": "做好玩的dota2对局,轻松快乐最重要 xwf2783", + "following_count": 224, + "follower_count": 96000, + "total_favorited": 881000, + "avatar": "streamer_avatars/zhadan.jpg", + "video": "streamer_videos/zhadan.mp4", + "video_aspect": "576/1024", + "video_fit": "cover", + "video_title": "什么叫20分钟锁了对面5个人在家?", + "profile_fetched_at": "2026-07-29T09:42:00+00:00" + }, + { + "id": "kaer", + "platform": "douyin", + "profile_url": "https://v.douyin.com/rSCOHKhoktg/", + "tagline": "绝活卡尔", + "heroes": [ + "invoker" + ], + "nickname": "Dota2卡尔卡滨kb", + "unique_id": "380362637", + "signature": "2013年刚出天梯时无脑一手卡尔到天梯前10", + "following_count": 220, + "follower_count": 38000, + "total_favorited": 43000, + "avatar": "streamer_avatars/kaer.jpg", + "video": "streamer_videos/kaer.mp4", + "video_aspect": "576/1024", + "video_fit": "cover", + "video_title": "万2均分携手雕哥游龙", + "profile_fetched_at": "2026-07-29T09:45:00+00:00" + }, + { + "id": "lanmao", + "platform": "douyin", + "live_url": "https://live.bilibili.com/32554189", + "profile_url": "https://v.douyin.com/LKxUBIHCC2c/", + "tagline": "绝活蓝猫", + "heroes": [ + "storm_spirit" + ], + "nickname": "小铅笔HB", + "unique_id": "786543863", + "signature": "Muteki01(上车,教学,商务)", + "following_count": 644, + "follower_count": 43000, + "total_favorited": 470000, + "avatar": "streamer_avatars/lanmao.jpg", + "video": "streamer_videos/lanmao.mp4", + "video_aspect": "576/1024", + "video_fit": "cover", + "video_title": "你的一波失误换来的就是蓝猫时刻!", + "profile_fetched_at": "2026-07-29T09:48:00+00:00", + "is_live": false, + "live_probed_at": "2026-07-29T09:49:35.253522+00:00" + }, + { + "id": "huonv", + "platform": "douyin", + "live_url": "https://live.douyin.com/930419992694", + "profile_url": "https://v.douyin.com/TleGRW0DhNo/", + "tagline": "火女", + "heroes": [ + "lina" + ], + "nickname": "新生Dota2", + "unique_id": "xsdota2", + "signature": "坚持认真做好玩的Dota2攻略。 上车/合作:xsdota2", + "following_count": 280, + "follower_count": 66000, + "total_favorited": 1105000, + "avatar": "streamer_avatars/huonv.jpg", + "video": "streamer_videos/huonv.mp4", + "video_aspect": "576/1024", + "video_fit": "cover", + "video_title": "2个镜头告诉你为什么火女必出A", + "profile_fetched_at": "2026-07-29T09:54:00+00:00", + "is_live": true, + "live_probed_at": "2026-07-29T09:54:00+00:00" } ] } diff --git a/web/deploy_relations.py b/web/deploy_relations.py index e3bf6e9..a0aefc9 100644 --- a/web/deploy_relations.py +++ b/web/deploy_relations.py @@ -34,7 +34,9 @@ import os import shutil import subprocess import sys +import time import urllib.error +import urllib.parse import urllib.request from pathlib import Path @@ -239,10 +241,16 @@ def wrangler_deploy( ) -> None: """Upload dist via `wrangler pages deploy` (direct upload, non-interactive). - The whole dist directory is uploaded, so dist/functions/ (Pages Functions, - e.g. /api/live-status) is included automatically — Pages Functions need - no extra wrangler config or flags for direct-upload projects. + Wrangler looks for ``functions/`` relative to the process cwd (not inside + an absolute asset-directory argument). Run from ``dist`` and deploy ``.`` + so ``dist/functions/`` (e.g. /api/live-status) is compiled and uploaded. """ + functions_dir = dist / "functions" + if not functions_dir.is_dir(): + print( + f"warn: {functions_dir} missing — Pages Functions will not deploy " + "(re-run export_relations_site.py)" + ) env = os.environ.copy() # wrangler reads Global API Key auth from these env vars. They are passed # to the subprocess only; wrangler does not echo them. @@ -256,15 +264,76 @@ def wrangler_deploy( "wrangler@3", "pages", "deploy", - str(dist), + ".", "--project-name", project, "--commit-dirty", "--branch", "main", ] - print(f"uploading {dist} via wrangler ...") - subprocess.run(cmd, cwd=str(ROOT), env=env, check=True) + print(f"uploading {dist} via wrangler (cwd=dist, functions={functions_dir.is_dir()}) ...") + subprocess.run(cmd, cwd=str(dist), env=env, check=True) + + +def smoke_test_production( + base_url: str, + *, + expected_run_id: str = "", + attempts: int = 6, + delay_s: float = 5.0, +) -> None: + """Verify the deployed payload and Pages Function after propagation.""" + base = base_url.rstrip("/") + marker = expected_run_id or str(int(time.time())) + error = "unknown failure" + for attempt in range(1, attempts + 1): + try: + data_url = f"{base}/data.json?refresh={urllib.parse.quote(marker)}" + req = urllib.request.Request(data_url, headers={"User-Agent": "climperor-smoke"}) + with urllib.request.urlopen(req, timeout=30) as resp: + payload = json.loads(resp.read().decode("utf-8")) + if not isinstance(payload, dict) or not payload.get("heroes"): + raise RuntimeError("data.json has no heroes") + actual_run_id = str((payload.get("meta") or {}).get("refresh_run_id") or "") + if expected_run_id and actual_run_id != expected_run_id: + raise RuntimeError( + f"stale deployment run_id={actual_run_id!r}, expected={expected_run_id!r}" + ) + + live_url = f"{base}/api/live-status?refresh={urllib.parse.quote(marker)}" + live_req = urllib.request.Request( + live_url, headers={"User-Agent": "climperor-smoke"} + ) + with urllib.request.urlopen(live_req, timeout=30) as resp: + content_type = resp.headers.get_content_type() + live_cache = (resp.headers.get("X-Live-Cache") or "").lower() + live_payload = json.loads(resp.read().decode("utf-8")) + if content_type != "application/json" or not isinstance(live_payload, dict): + raise RuntimeError( + f"/api/live-status is not JSON (content-type={content_type})" + ) + if live_cache in ("error", "stale-override"): + print( + f"warn: live-status Function is routed but probe state is {live_cache}" + ) + print( + f"production smoke passed: {base} " + f"(heroes={len(payload['heroes'])}, run_id={actual_run_id or '-'}, " + f"live_cache={live_cache or '?'})" + ) + return + except ( + OSError, + ValueError, + RuntimeError, + json.JSONDecodeError, + urllib.error.URLError, + ) as exc: + error = str(exc) + print(f"smoke attempt {attempt}/{attempts} failed: {error}") + if attempt < attempts: + time.sleep(delay_s) + raise SystemExit(f"deployment smoke failed after {attempts} attempts: {error}") def ensure_cname(email: str, api_key: str, domain: str, project: str) -> None: @@ -358,6 +427,11 @@ def main() -> None: help="passed to export as --static-asset-base (default: same as ability-video-base " "or STATIC_ASSET_BASE env)", ) + ap.add_argument( + "--skip-smoke", + action="store_true", + help="skip post-deploy data.json and /api/live-status verification", + ) args = ap.parse_args() dist = Path(args.dist).resolve() @@ -379,6 +453,11 @@ def main() -> None: check_integrity(dist) wrangler_deploy(dist, args.project_name, email=email, api_key=api_key, account_id=account_id) bind_domain(email, api_key, account_id, args.project_name, args.domain) + if not args.skip_smoke: + smoke_test_production( + f"https://{args.project_name}.pages.dev", + expected_run_id=os.environ.get("REFRESH_RUN_ID") or "", + ) print() print(f"deployment url : https://{args.project_name}.pages.dev") diff --git a/web/export_relations_site.py b/web/export_relations_site.py index 1ede1ec..eb9d7f3 100644 --- a/web/export_relations_site.py +++ b/web/export_relations_site.py @@ -32,6 +32,7 @@ import json import os import shutil +from shared.http_utils import write_json_atomic from shared.paths import ( ABILITY_ICONS, ABILITY_VIDEOS, @@ -50,7 +51,7 @@ from shared.paths import ( from serve_relations import WEB_DIR, build_payload -SITE_VERSION = "0.5.72" +SITE_VERSION = "0.5.84" DEFAULT_OSS_BASE = "https://climperor.oss-cn-shanghai.aliyuncs.com" @@ -187,11 +188,11 @@ def main() -> None: shutil.rmtree(out) out.mkdir(parents=True) - for name in ("index.html", "router.js", "app.js", "style.css", "_headers"): + for name in ("index.html", "router.js", "app.js", "style.css", "mobile-gate.js", "_headers"): src = WEB_DIR / name if src.is_file(): shutil.copy2(src, out / name) - # Cloudflare Pages Functions (functions/api/live-status.js -> /api/live-status). + # Cloudflare Pages Functions (functions/api/*.js -> /api/*). functions_src = WEB_DIR / "functions" n_functions = 0 if functions_src.is_dir(): @@ -205,9 +206,13 @@ def main() -> None: ) payload = build_payload() - (out / "data.json").write_text( - json.dumps(payload, ensure_ascii=False, separators=(",", ":")), - encoding="utf-8", + refresh_run_id = os.environ.get("REFRESH_RUN_ID") or "" + payload.setdefault("meta", {})["refresh_run_id"] = refresh_run_id + write_json_atomic( + out / "data.json", + payload, + indent=None, + separators=(",", ":"), ) if static_base: @@ -246,7 +251,10 @@ def main() -> None: f"ABILITY_VIDEO_BASE={video_base!r} STATIC_ASSET_BASE={static_base!r}" ) print(f" total: {total / 1e6:.1f} MB") - print(f"local check: python -m http.server -d {out} 8080") + print( + f"local Pages Function check: npx wrangler pages dev . " + f"--port 8789 (run from {out})" + ) print("deploy: upload the directory to any static host (Pages / nginx / ...)") diff --git a/web/fetch_hero_abilities.py b/web/fetch_hero_abilities.py index 6d05387..82aeb39 100644 --- a/web/fetch_hero_abilities.py +++ b/web/fetch_hero_abilities.py @@ -29,7 +29,7 @@ from datetime import datetime, timezone from shared.grid import hero_table from shared.hero_tags import ILLUSION_KEYS -from shared.http_utils import download_icons, http_json +from shared.http_utils import download_icons, http_json, write_json_atomic from shared.paths import ABILITY_ICONS, DATA from loc_format import format_loc, strip_html @@ -660,10 +660,7 @@ def main() -> None: meta["tags_only"] = True meta["mechanic_tag_order"] = list(QUERY_MECHANIC_ORDER) payload = {"meta": meta, "by_hero": by_hero} - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) print( f"retag done: {len(by_hero)} heroes, {tagged} abilities with tags -> {args.out}", flush=True, @@ -723,10 +720,7 @@ def main() -> None: }, "by_hero": by_hero, } - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) illus = sum(1 for c in by_hero.values() if (c.get("summary") or {}).get("has_illusion")) print(f"resummarized {len(by_hero)} heroes (illusion={illus}) -> {args.out}", flush=True) return @@ -822,10 +816,7 @@ def main() -> None: }, "by_hero": by_hero, } - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) time.sleep(args.delay) tagged = retag_abilities(by_hero, ABILITY_TAG_OVERRIDES_MAP) @@ -840,11 +831,7 @@ def main() -> None: }, "by_hero": by_hero, } - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) print(f"done: {len(by_hero)} heroes -> {args.out}", flush=True) if args.icons: diff --git a/web/fetch_hero_items.py b/web/fetch_hero_items.py index fbc0433..4501910 100644 --- a/web/fetch_hero_items.py +++ b/web/fetch_hero_items.py @@ -24,7 +24,7 @@ import urllib.error from datetime import datetime, timezone from shared.grid import hero_table -from shared.http_utils import download_icons, http_json, load_itemlist_zh +from shared.http_utils import download_icons, http_json, load_itemlist_zh, write_json_atomic from shared.paths import DATA, ITEM_ICONS OPENDOTA = "https://api.opendota.com/api" @@ -284,21 +284,12 @@ def main() -> None: used_ids.update(int(row["id"]) for row in core if isinstance(row, dict) and "id" in row) print(f" [{n}/{len(pending)}] {key}: {len(core)} core items", flush=True) - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(build_payload(by_hero, catalog, used_ids), ensure_ascii=False, indent=2) - + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, build_payload(by_hero, catalog, used_ids)) time.sleep(args.delay) used_ids = collect_used_ids(by_hero) payload = build_payload(by_hero, catalog, used_ids) - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) if not args.skip_icons: keys = {catalog[iid]["key"] for iid in used_ids if iid in catalog} diff --git a/web/fetch_hero_matches.py b/web/fetch_hero_matches.py index 5685886..68ed017 100644 --- a/web/fetch_hero_matches.py +++ b/web/fetch_hero_matches.py @@ -57,7 +57,7 @@ from concurrent.futures import ThreadPoolExecutor, as_completed from datetime import datetime, timezone from shared.grid import hero_table -from shared.http_utils import download_icons, http_json +from shared.http_utils import download_icons, http_json, write_json_atomic from shared.paths import DATA, ITEM_ICONS OPENDOTA = "https://api.opendota.com/api" @@ -989,10 +989,7 @@ def write_out( "items": items_out, "by_hero": by_hero, } - path.parent.mkdir(parents=True, exist_ok=True) - path.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8" - ) + write_json_atomic(path, payload) def needs_player_enrich(row: dict) -> bool: diff --git a/web/fetch_hero_stats.py b/web/fetch_hero_stats.py index 7890b34..4230d61 100644 --- a/web/fetch_hero_stats.py +++ b/web/fetch_hero_stats.py @@ -20,11 +20,10 @@ from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) import argparse -import json from datetime import datetime, timezone from shared.grid import hero_table -from shared.http_utils import http_json +from shared.http_utils import http_json, write_json_atomic from shared.paths import DATA OPENDOTA_HERO_STATS = "https://api.opendota.com/api/heroStats" @@ -173,6 +172,8 @@ def main() -> None: raw = http_json(OPENDOTA_HERO_STATS) if not isinstance(raw, list): raise SystemExit(f"unexpected heroStats payload type: {type(raw).__name__}") + if not raw: + raise SystemExit("heroStats returned an empty list; keeping previous cache") window_days = detect_window_days(raw) by_hero: dict[str, dict] = {} @@ -191,11 +192,12 @@ def main() -> None: by_hero[key] = row_to_hero_stats(row) payload = build_payload(by_hero, window_days=window_days) - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + if len(by_hero) < max(100, len(heroes) * 4 // 5): + raise SystemExit( + f"heroStats only contained {len(by_hero)}/{len(heroes)} known heroes; " + "keeping previous cache" + ) + write_json_atomic(args.out, payload) missing = [h["key"] for h in heroes if h["key"] not in by_hero] print( f"done: {len(by_hero)} heroes -> {args.out}" diff --git a/web/fetch_item_counter_stats.py b/web/fetch_item_counter_stats.py index a44ef47..b38e8da 100644 --- a/web/fetch_item_counter_stats.py +++ b/web/fetch_item_counter_stats.py @@ -33,6 +33,7 @@ import urllib.request from datetime import datetime, timezone from shared.grid import hero_table +from shared.http_utils import write_json_atomic from shared.paths import DATA API = "https://api.opendota.com/api/explorer" @@ -281,11 +282,7 @@ def main() -> None: min_games=args.min_games, min_cost=args.min_cost, ) - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(output, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, output) nonempty = sum(bool(v) for v in output["by_hero"].values()) print( f"done: {len(rows)} rows, {nonempty} heroes -> {args.out}", diff --git a/web/fetch_item_shop.py b/web/fetch_item_shop.py index 73320ae..66a5911 100644 --- a/web/fetch_item_shop.py +++ b/web/fetch_item_shop.py @@ -23,7 +23,13 @@ import time import urllib.error from datetime import datetime, timezone -from shared.http_utils import download_icons, http_bytes, http_json, load_itemlist_zh +from shared.http_utils import ( + download_icons, + http_bytes, + http_json, + load_itemlist_zh, + write_json_atomic, +) from shared.paths import DATA, ITEM_CAT_ICONS, ITEM_ICONS ITEMS_URL = ( @@ -317,11 +323,7 @@ def main() -> None: "upgraded": {"sections": up_sections}, "items": items_out, } - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) print( f"wrote {args.out}: basic={payload['meta']['basic_count']} " f"upgraded={payload['meta']['upgraded_count']} " diff --git a/web/fetch_items_meta.py b/web/fetch_items_meta.py index 3ffc50a..501077e 100644 --- a/web/fetch_items_meta.py +++ b/web/fetch_items_meta.py @@ -26,7 +26,7 @@ import time import urllib.error from datetime import datetime, timezone -from shared.http_utils import download_icons, http_json, load_itemlist +from shared.http_utils import download_icons, http_json, load_itemlist, write_json_atomic from shared.paths import DATA, ITEM_ICONS from loc_format import HAS_PLACEHOLDER, format_loc @@ -406,10 +406,7 @@ def main() -> None: }, "items": items_out, } - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) payload = { "meta": { @@ -421,11 +418,7 @@ def main() -> None: }, "items": items_out, } - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) if not args.skip_icons: keys = {row["key"] for row in items_out.values()} diff --git a/web/fetch_leaderboards.py b/web/fetch_leaderboards.py index de1f54a..8e495a3 100644 --- a/web/fetch_leaderboards.py +++ b/web/fetch_leaderboards.py @@ -21,10 +21,9 @@ from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) import argparse -import json from datetime import datetime, timezone -from shared.http_utils import http_json +from shared.http_utils import http_json, write_json_atomic from shared.paths import DATA OUT = DATA / "leaderboards.json" @@ -67,6 +66,11 @@ def fetch_division(division: str) -> dict: lb = raw.get("leaderboard") if not isinstance(lb, list): raise SystemExit(f"{division}: missing leaderboard array") + if len(lb) < TOP_N: + raise SystemExit( + f"{division}: leaderboard only returned {len(lb)} rows; " + "keeping previous cache" + ) top = [slim_entry(e) for e in lb[:TOP_N] if isinstance(e, dict)] return { "division": division, @@ -102,11 +106,7 @@ def main() -> None: regions[div] = fetch_division(div) payload = build_payload(regions) - args.out.parent.mkdir(parents=True, exist_ok=True) - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(args.out, payload) parts = [ f"{div}={len((regions[div].get('top100') or []))}" for div in REGION_ORDER ] diff --git a/web/fetch_patches.py b/web/fetch_patches.py index 5023a31..e1e344d 100644 --- a/web/fetch_patches.py +++ b/web/fetch_patches.py @@ -38,7 +38,7 @@ import time import urllib.error from datetime import datetime, timedelta, timezone -from shared.http_utils import http_bytes, http_json +from shared.http_utils import http_bytes, http_json, write_json_atomic from shared.paths import ABILITY_ICONS, DATA, HERO_PORTRAITS, ITEM_ICONS PATCHES_LIST_URL = "https://www.dota2.com/datafeed/patchnoteslist?language=schinese" @@ -430,13 +430,10 @@ def main() -> None: patches = fetch_patch_list(since_ts) print(f" {len(patches)} patches in window", flush=True) if not patches: - OUT.parent.mkdir(parents=True, exist_ok=True) - OUT.write_text( - json.dumps({"meta": {}, "patches": [], "lookup": {}, "details": {}}, ensure_ascii=False, indent=2), - encoding="utf-8", + raise SystemExit( + "patch list returned no versions in the requested window; " + "keeping previous cache" ) - print("no patches in window; wrote empty file", flush=True) - return cached = {} if args.force else load_existing_details() details: dict[str, dict] = {} @@ -485,8 +482,7 @@ def main() -> None: "lookup": lookup, "details": details, } - OUT.parent.mkdir(parents=True, exist_ok=True) - OUT.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8") + write_json_atomic(OUT, payload) print( f"saved {len(patches)} patches, {len(details)} details -> {OUT}", flush=True, diff --git a/web/fetch_pro_matches.py b/web/fetch_pro_matches.py index 2d3c6db..45278e0 100644 --- a/web/fetch_pro_matches.py +++ b/web/fetch_pro_matches.py @@ -1,16 +1,17 @@ -"""Fetch recent league/tournament matches for OpenDota registered pros. +"""Fetch recent league/tournament (+ optional ranked) matches for OpenDota pros. Default source: web/data/pro_player_watchlist.json (hand-curated star IDs). Falls back to /proPlayers auto-pick only with --all-pros. -Per player: /players/{id}/matches (lobby practice + tournament), then -/matches/{id} for final items + skill builds. +Per player: /players/{id}/matches per lobby_type (practice/tournament, and +ranked with --include-pubs), up to --limit newest each; then /matches/{id} +for final items + skill builds. League rows do not crowd out ranked pubs. Output: web/data/pro_matches.json (Climperor web only; not used by recommend). Usage: python web/fetch_pro_matches.py - python web/fetch_pro_matches.py --limit 12 + python web/fetch_pro_matches.py --include-pubs --limit 8 python web/fetch_pro_matches.py --players 898754153,Ame python web/fetch_pro_matches.py --all-pros --limit-pros 20 --with-team """ @@ -29,7 +30,7 @@ import urllib.error from datetime import datetime, timedelta, timezone from shared.grid import hero_table -from shared.http_utils import http_json +from shared.http_utils import http_json, write_json_atomic from shared.paths import DATA from fetch_hero_matches import ( @@ -220,11 +221,15 @@ def player_match_metas( *, lobby_types: tuple[int, ...] = LOBBY_LEAGUE, ) -> list[dict]: - """Recent match list rows for a pro (deduped, newest first).""" - per_lt = max(limit, limit // max(1, len(lobby_types)) + 2) + """Recent match list rows for a pro (deduped, newest first). + + Fetches up to ``limit`` newest matches **per lobby_type**, then merges. + With league + ranked pubs this can return up to ``limit * len(lobby_types)`` + rows — important so recent league games do not crowd out ranked pubs. + """ by_id: dict[int, dict] = {} for lt in lobby_types: - url = f"{OPENDOTA}/players/{account_id}/matches?limit={per_lt}&lobby_type={lt}" + url = f"{OPENDOTA}/players/{account_id}/matches?limit={limit}&lobby_type={lt}" try: raw = http_json(url) except ( @@ -258,11 +263,10 @@ def player_match_metas( if st_new >= st_old: by_id[mid] = row - ranked = sorted( + return sorted( by_id.values(), key=lambda r: (-int(r.get("start_time") or 0), -int(r.get("match_id") or 0)), ) - return ranked[:limit] def fetch_player_matches( @@ -285,6 +289,12 @@ def fetch_player_matches( continue if mid <= 0 or hid <= 0: continue + lt_raw = meta.get("lobby_type") + try: + lt_i = int(lt_raw) if lt_raw is not None else None + except (TypeError, ValueError): + lt_i = None + row_origin = "public" if lt_i == 7 else "pro" detail = fetch_match(mid) if delay > 0: time.sleep(delay) @@ -293,7 +303,7 @@ def fetch_player_matches( slim = extract_player_row( detail, hid, - origin="pro", + origin=row_origin, id_map=id_map, item_catalog=catalog, list_meta=meta, @@ -309,11 +319,7 @@ def fetch_player_matches( continue slim["hero_id"] = hid slim["hero_key"] = id_to_key.get(hid) - lt = meta.get("lobby_type") - try: - slim["lobby_type"] = int(lt) if lt is not None else None - except (TypeError, ValueError): - slim["lobby_type"] = None + slim["lobby_type"] = lt_i rows.append(slim) return rows @@ -390,16 +396,17 @@ def write_out( "attribution": "https://www.opendota.com", "fetched_at": datetime.now(timezone.utc).isoformat(), "player_source": player_source, - "limit_per_pro": limit, + "limit_per_lobby": limit, "limit_pros": limit_pros, "lobby_types": list(lobby_types), "pro_count": len(by_pro), "match_count": match_count, "hero_count": len(by_hero), "note_zh": ( - "OpenDota 明星/职业选手近期联赛/锦标赛对局;" + "OpenDota 明星选手近期联赛/锦标赛对局(可选含天梯 lobby_type=7);" "默认名单见 web/data/pro_player_watchlist.json;" - "lobby_type 1=训练/practice、2=tournament;" + "每种 lobby 各保留最近 limit 场,避免联赛挤掉天梯;" + "lobby_type 1=训练/practice、2=tournament、7=ranked;" "含终局出装、加点与联赛名(若有)。" ), }, @@ -408,10 +415,7 @@ def write_out( "by_pro": by_pro, "by_hero": by_hero, } - path.parent.mkdir(parents=True, exist_ok=True) - path.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8" - ) + write_json_atomic(path, payload) def main() -> None: diff --git a/web/fetch_stratz_meta.py b/web/fetch_stratz_meta.py index c8c1c58..939a096 100644 --- a/web/fetch_stratz_meta.py +++ b/web/fetch_stratz_meta.py @@ -29,13 +29,13 @@ sys.path.insert(0, str(Path(__file__).resolve().parents[1])) import argparse import json import os -import tempfile import time import urllib.error import urllib.request from datetime import datetime, timezone from shared.grid import hero_table +from shared.http_utils import write_json_atomic from shared.paths import DATA, ROOT API = "https://api.stratz.com/graphql" @@ -165,28 +165,6 @@ def _now_iso() -> str: return datetime.now(timezone.utc).isoformat() -def write_json_atomic(path: Path, payload: dict) -> None: - """Write JSON via temp file then replace, so partial writes never corrupt cache.""" - path.parent.mkdir(parents=True, exist_ok=True) - text = json.dumps(payload, ensure_ascii=False, indent=2) + "\n" - fd, tmp_name = tempfile.mkstemp( - prefix=f".{path.name}.", - suffix=".tmp", - dir=str(path.parent), - ) - tmp_path = Path(tmp_name) - try: - with os.fdopen(fd, "w", encoding="utf-8") as f: - f.write(text) - os.replace(tmp_path, path) - except Exception: - try: - tmp_path.unlink(missing_ok=True) - except OSError: - pass - raise - - def fetch_weeks_for_bracket( token: str, hero_ids: list[int], bracket: str, take: int ) -> list[dict]: @@ -511,6 +489,47 @@ def build_meta( } +def preserve_failed_meta_brackets( + fresh: dict, + previous: dict, + *, + failed_weeks: set[str], + failed_positions: set[str], +) -> dict: + """Keep previous bracket cells when STRATZ returns no usable rows.""" + if not failed_weeks and not failed_positions: + fresh["stale"] = False + fresh["stale_brackets"] = [] + return fresh + + previous_by_hero = previous.get("by_hero") or {} + fresh_by_hero = fresh.get("by_hero") or {} + for key, cell in fresh_by_hero.items(): + old = previous_by_hero.get(key) or {} + for bracket in failed_weeks: + cell["weeks"][bracket] = list((old.get("weeks") or {}).get(bracket) or []) + old_latest = (old.get("latest") or {}).get(bracket) + if old_latest: + cell["latest"][bracket] = dict(old_latest) + for bracket in failed_positions: + cell["positions"][bracket] = dict( + (old.get("positions") or {}).get(bracket) or {} + ) + + for bracket in failed_weeks: + old_total = (previous.get("totals") or {}).get(bracket) + old_board = (previous.get("meta_board") or {}).get(bracket) + if old_total: + fresh["totals"][bracket] = dict(old_total) + if old_board: + fresh["meta_board"][bracket] = list(old_board) + + fresh["stale"] = True + fresh["stale_brackets"] = sorted(failed_weeks | failed_positions) + fresh["last_attempt_at"] = _now_iso() + return fresh + + def refresh_matchup_tops( token: str, id_to_key: dict[int, str], @@ -526,6 +545,14 @@ def refresh_matchup_tops( On per-hero failure, keep the previous cell and mark ``stale=True``. """ started_at = _now_iso() + previous_file: dict | None = None + if out_path.is_file(): + try: + loaded = json.loads(out_path.read_text(encoding="utf-8")) + if isinstance(loaded, dict): + previous_file = loaded + except (OSError, json.JSONDecodeError): + previous_file = None prev = load_previous_matchups(out_path) hero_ids = sorted(id_to_key.keys()) @@ -539,7 +566,8 @@ def refresh_matchup_tops( ) else: pending = list(hero_ids) - by_hero_mu = {} + # Keep the complete previous set until each cell is successfully replaced. + by_hero_mu = dict(prev) print( f"full matchup refresh: {len(pending)} heroes " f"(prev cached={len(prev)} as failure fallback)", @@ -547,6 +575,7 @@ def refresh_matchup_tops( ) ok = failed = stale_kept = 0 + missing_fallback: list[str] = [] for n, hid in enumerate(pending, start=1): key = id_to_key[hid] try: @@ -588,6 +617,7 @@ def refresh_matchup_tops( ) else: print(f" [{n}/{len(pending)}] {key} failed: {e}", flush=True) + missing_fallback.append(key) time.sleep(delay * 2) continue @@ -641,6 +671,15 @@ def refresh_matchup_tops( f"stale_kept={stale_kept} → {out_path}", flush=True, ) + if missing_fallback: + if previous_file is not None: + write_json_atomic(out_path, previous_file) + else: + out_path.unlink(missing_ok=True) + raise RuntimeError( + "STRATZ matchup refresh had failures without cached fallback: " + + ", ".join(missing_fallback[:10]) + ) return payload @@ -712,9 +751,56 @@ def main() -> None: ) time.sleep(args.delay) + failed_weeks = {b for b, rows in weeks_by_bracket.items() if not rows} + failed_positions = { + b for b, rows in position_rows_by_bracket.items() if not rows + } + previous_meta: dict = {} + if args.out_meta.is_file(): + try: + loaded = json.loads(args.out_meta.read_text(encoding="utf-8")) + if isinstance(loaded, dict): + previous_meta = loaded + except (OSError, json.JSONDecodeError): + previous_meta = {} + + previous_by_hero = previous_meta.get("by_hero") or {} + missing_week_fallback = [ + bracket + for bracket in failed_weeks + if not any( + (cell.get("weeks") or {}).get(bracket) + for cell in previous_by_hero.values() + if isinstance(cell, dict) + ) + ] + missing_position_fallback = [ + bracket + for bracket in failed_positions + if not any( + (cell.get("positions") or {}).get(bracket) + for cell in previous_by_hero.values() + if isinstance(cell, dict) + ) + ] + if missing_week_fallback or missing_position_fallback: + raise RuntimeError( + "STRATZ meta failed without cached fallback: weeks=" + f"{missing_week_fallback}, positions={missing_position_fallback}" + ) + meta = build_meta( weeks_by_bracket, position_rows_by_bracket, id_to_key, args.weeks ) + meta = preserve_failed_meta_brackets( + meta, + previous_meta, + failed_weeks=failed_weeks, + failed_positions=failed_positions, + ) + if len(failed_weeks) == len(BRACKET_ORDER): + # Preserve the timestamp of the last successful data snapshot. + meta["fetched_at"] = previous_meta.get("fetched_at") write_json_atomic(args.out_meta, meta) print(f"wrote {args.out_meta}", flush=True) diff --git a/web/fetch_streamer_live.py b/web/fetch_streamer_live.py index 789f5d4..d332cf5 100644 --- a/web/fetch_streamer_live.py +++ b/web/fetch_streamer_live.py @@ -5,6 +5,9 @@ For every streamer row with ``live_url`` this script writes: - ``is_live`` — True only when the platform confirms the room is live - ``live_probed_at`` — UTC ISO timestamp of the successful probe +Probe backend follows the ``live_url`` host (may differ from profile +``platform``, e.g. Douyin profile + Bilibili room). + Approach (verified 2026-07): - Bilibili: public API ``api.live.bilibili.com/room/v1/Room/get_info`` with the @@ -155,6 +158,16 @@ def room_ref_from_url(live_url: str) -> str | None: return path.split("/")[0] or None +def live_platform_from_url(live_url: str, fallback: str = "") -> str: + """Probe backend follows the live room host (may differ from profile platform).""" + host = urllib.parse.urlparse(live_url.strip()).netloc.lower() + if "bilibili.com" in host: + return "bilibili" + if "douyin.com" in host: + return "douyin" + return (fallback or "").strip().lower() + + def probe_streamers( payload: dict, *, ids: set[str] | None = None ) -> tuple[int, int, int]: @@ -172,7 +185,8 @@ def probe_streamers( live_url = str(row.get("live_url") or "").strip() if not live_url: continue - platform = str(row.get("platform") or "").strip().lower() + fallback = str(row.get("platform") or "").strip().lower() + platform = live_platform_from_url(live_url, fallback) ref = room_ref_from_url(live_url) if not ref: print(f"skip {sid}: cannot parse room ref from {live_url!r}", flush=True) @@ -244,10 +258,7 @@ def main() -> int: if args.dry_run: print(f"dry-run: would write {args.out} ({summary})", flush=True) return 0 - args.out.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + http_utils.write_json_atomic(args.out, payload) print(f"wrote {args.out} {summary}", flush=True) # Soft-fail for CI/refresh_web: always exit 0 after writing. return 0 diff --git a/web/fetch_streamers.py b/web/fetch_streamers.py index c3be51f..3a7c441 100644 --- a/web/fetch_streamers.py +++ b/web/fetch_streamers.py @@ -32,6 +32,7 @@ import urllib.request from datetime import datetime, timezone from typing import Any +from shared.http_utils import write_json_atomic from shared.paths import DATA, STREAMER_AVATARS OUT = DATA / "streamers.json" @@ -94,11 +95,7 @@ def _load(path: Path) -> dict: def _save(path: Path, payload: dict) -> None: - path.parent.mkdir(parents=True, exist_ok=True) - path.write_text( - json.dumps(payload, ensure_ascii=False, indent=2) + "\n", - encoding="utf-8", - ) + write_json_atomic(path, payload) def _opener() -> urllib.request.OpenerDirector: diff --git a/web/frontend/_headers b/web/frontend/_headers index d3498f1..4633a04 100644 --- a/web/frontend/_headers +++ b/web/frontend/_headers @@ -16,5 +16,8 @@ /router.js Cache-Control: public, max-age=60, must-revalidate +/mobile-gate.js + Cache-Control: public, max-age=60, must-revalidate + /style.css Cache-Control: public, max-age=300, must-revalidate diff --git a/web/frontend/app.js b/web/frontend/app.js index 4f9e3c3..3e2d0f7 100644 --- a/web/frontend/app.js +++ b/web/frontend/app.js @@ -88,6 +88,10 @@ const state = { rankingRegion: "china", /** Top-level matches page: OpenDota account_id string (null = all stars) */ matchesPlayerId: null, + /** Top-level matches page: all | pro | china */ + matchesOrigin: "all", + /** Top-level matches page: 1-based page index */ + matchesPage: 1, /** Top-level 走势 page medal bracket */ trendsBracket: "legend", /** Sort key for trends board: wr_end | pr_end */ @@ -390,7 +394,7 @@ const BRACKET_RANK_ICON = { /** Recent matches tab: newest N ladder+league games. */ const MATCHES_DISPLAY_LIMIT = 10; -const PRO_MATCHES_PAGE_LIMIT = 60; +const PRO_MATCHES_PAGE_SIZE = 20; function heroStatsPack() { return ( @@ -1056,6 +1060,139 @@ function heroMatchesFor(heroKey) { return out; } +/** Pad 0–9 → "00"…"09" for HH:mm. */ +function pad2(n) { + return String(n).padStart(2, "0"); +} + +/** + * Parse unix sec/ms, ISO string, or Date → epoch ms. Date-only YYYY-MM-DD is + * treated as Asia/Shanghai midnight (avoids UTC-day shift for CN dates). + */ +function parseTimeMs(input) { + if (input == null || input === "") return NaN; + if (input instanceof Date) { + const t = input.getTime(); + return Number.isFinite(t) ? t : NaN; + } + if (typeof input === "number") { + if (!Number.isFinite(input) || input <= 0) return NaN; + return input > 1e12 ? input : input * 1000; + } + const s = String(input).trim(); + if (!s) return NaN; + if (/^\d+(\.\d+)?$/.test(s)) { + const n = Number(s); + if (!Number.isFinite(n) || n <= 0) return NaN; + return n > 1e12 ? n : n * 1000; + } + const dayOnly = /^(\d{4})-(\d{2})-(\d{2})$/.exec(s); + if (dayOnly) { + const t = new Date( + `${dayOnly[1]}-${dayOnly[2]}-${dayOnly[3]}T00:00:00+08:00` + ).getTime(); + return Number.isFinite(t) ? t : NaN; + } + const t = Date.parse(s); + return Number.isFinite(t) ? t : NaN; +} + +/** Calendar + clock parts in Asia/Shanghai (site audience). */ +function shanghaiParts(ms) { + const parts = new Intl.DateTimeFormat("en-US", { + timeZone: "Asia/Shanghai", + year: "numeric", + month: "numeric", + day: "numeric", + hour: "2-digit", + minute: "2-digit", + hour12: false, + }).formatToParts(new Date(ms)); + const get = (type) => { + const hit = parts.find((p) => p.type === type); + return hit ? hit.value : ""; + }; + let hour = get("hour"); + // Some engines emit "24" for midnight under hour12:false. + if (hour === "24") hour = "00"; + return { + year: Number(get("year")), + month: Number(get("month")), + day: Number(get("day")), + hour: Number(hour), + minute: Number(get("minute")), + }; +} + +/** + * Absolute wall time for CN UI. + * Same year: "6/13 19:00"; other year: "2024/6/13 19:00". + * dateOnly omits the clock. + */ +function formatAbsoluteTime(input, { dateOnly = false } = {}) { + const ms = parseTimeMs(input); + if (!Number.isFinite(ms)) return ""; + const p = shanghaiParts(ms); + const now = shanghaiParts(Date.now()); + const date = + p.year === now.year + ? `${p.month}/${p.day}` + : `${p.year}/${p.month}/${p.day}`; + if (dateOnly) return date; + return `${date} ${pad2(p.hour)}:${pad2(p.minute)}`; +} + +/** Full absolute for tooltips: "2026/7/29 16:48". */ +function formatAbsoluteTimeFull(input) { + const ms = parseTimeMs(input); + if (!Number.isFinite(ms)) return ""; + const p = shanghaiParts(ms); + return `${p.year}/${p.month}/${p.day} ${pad2(p.hour)}:${pad2(p.minute)}`; +} + +/** + * Hybrid friendly time (CN feed convention): + * 刚刚 → N分钟前 → N小时前 → 昨天[ HH:mm] → N天前 → N周前 → M/D[ HH:mm]. + * Returns { text, title } so callers can set hover absolute. + */ +function formatFriendlyTime(input, { dateOnly = false, now = Date.now() } = {}) { + const ms = parseTimeMs(input); + if (!Number.isFinite(ms)) return { text: "", title: "" }; + const title = formatAbsoluteTimeFull(ms); + const abs = () => formatAbsoluteTime(ms, { dateOnly }); + const diff = now - ms; + // Clock skew / future → absolute. + if (diff < -60_000) return { text: abs(), title }; + + const sec = Math.floor(Math.max(0, diff) / 1000); + if (sec < 45) return { text: "刚刚", title }; + if (sec < 3600) { + return { text: `${Math.max(1, Math.floor(sec / 60))}分钟前`, title }; + } + if (sec < 86400) { + return { text: `${Math.max(1, Math.floor(sec / 3600))}小时前`, title }; + } + + const p = shanghaiParts(ms); + const n = shanghaiParts(now); + const dayStart = (parts) => Date.UTC(parts.year, parts.month - 1, parts.day); + const dayDiff = Math.round((dayStart(n) - dayStart(p)) / 86400000); + + if (dayDiff === 1) { + const text = dateOnly + ? "昨天" + : `昨天 ${pad2(p.hour)}:${pad2(p.minute)}`; + return { text, title }; + } + if (dayDiff >= 2 && dayDiff < 7) { + return { text: `${dayDiff}天前`, title }; + } + if (dayDiff >= 7 && dayDiff < 45) { + return { text: `${Math.max(1, Math.floor(dayDiff / 7))}周前`, title }; + } + return { text: abs(), title }; +} + function formatMatchDuration(sec) { const n = Number(sec) || 0; if (n <= 0) return "—"; @@ -1064,21 +1201,6 @@ function formatMatchDuration(sec) { return `${m}:${String(s).padStart(2, "0")}`; } -function formatMatchTime(ts) { - const n = Number(ts); - if (!Number.isFinite(n) || n <= 0) return ""; - try { - return new Date(n * 1000).toLocaleString("zh-CN", { - month: "numeric", - day: "numeric", - hour: "2-digit", - minute: "2-digit", - }); - } catch { - return ""; - } -} - const RANK_TIER_MEDALS = [ null, "herald", @@ -1297,19 +1419,13 @@ function buildMatchCard(heroKey, row, opts = {}) { const origin = document.createElement("span"); origin.className = "match-origin"; - if (row.origin === "public") { - const cluster = Number(row.cluster); - const region = Number(row.region); - const chinaRegions = new Set([12, 13, 17, 18, 20, 25]); - const chinaClusters = new Set([ - 221, 222, 223, 224, 225, 227, 231, 232, 235, 236, 413, 414, 415, 417, - ]); - const isChina = - (Number.isFinite(region) && chinaRegions.has(region)) || - (Number.isFinite(cluster) && chinaClusters.has(cluster)); - origin.textContent = isChina ? "国服" : "天梯"; - if (isChina) origin.classList.add("match-origin-china"); - } else if (row.origin === "pro") { + const kind = matchOriginKind(row); + if (kind === "china") { + origin.textContent = "国服"; + origin.classList.add("match-origin-china"); + } else if (kind === "ladder") { + origin.textContent = "天梯"; + } else if (kind === "pro") { origin.textContent = "职业"; origin.classList.add("match-origin-pro"); } else { @@ -1325,11 +1441,12 @@ function buildMatchCard(heroKey, row, opts = {}) { head.appendChild(league); } - const when = formatMatchTime(row.start_time); - if (when) { + const whenInfo = formatFriendlyTime(row.start_time); + if (whenInfo.text) { const timeEl = document.createElement("span"); timeEl.className = "match-time"; - timeEl.textContent = when; + timeEl.textContent = whenInfo.text; + if (whenInfo.title) timeEl.title = whenInfo.title; head.appendChild(timeEl); } @@ -1846,9 +1963,10 @@ function buildStatsPanel(heroKey) { const foot = document.createElement("div"); foot.className = "detail-muted detail-stats-note"; const pack = heroStatsPack(); - const fetched = pack.fetched_at - ? `拉取于 ${String(pack.fetched_at).slice(0, 10)}` - : ""; + const fetchedInfo = pack.fetched_at + ? formatFriendlyTime(pack.fetched_at) + : { text: "", title: "" }; + const fetched = fetchedInfo.text ? `拉取于 ${fetchedInfo.text}` : ""; foot.textContent = [ `OpenDota ${heroStatsWindowLabel()}`, BRACKET_LABELS[bracket] || bracket, @@ -1856,6 +1974,7 @@ function buildStatsPanel(heroKey) { ] .filter(Boolean) .join(" · "); + if (fetchedInfo.title) foot.title = fetchedInfo.title; block.appendChild(foot); } return block; @@ -1866,12 +1985,6 @@ function formatMatchupWr(wr) { return `${(Number(wr) * 100).toFixed(1)}%`; } -function formatMatchupFetched(iso) { - if (!iso) return ""; - const s = String(iso); - return s.length >= 10 ? s.slice(0, 10) : s; -} - function matchupCrossLabel(cross) { const status = cross?.status; if (status === "agree") return "来源一致"; @@ -2026,11 +2139,14 @@ function buildMatchupsPanel(heroKey) { notes.appendChild(line); } - const fetched = formatMatchupFetched(cell.fetched_at || pack.fetched_at); - if (fetched) { + const fetchedInfo = formatFriendlyTime( + cell.fetched_at || pack.fetched_at + ); + if (fetchedInfo.text) { const time = document.createElement("p"); time.className = "matchup-note-time"; - time.textContent = `更新于 ${fetched}`; + time.textContent = `更新于 ${fetchedInfo.text}`; + if (fetchedInfo.title) time.title = fetchedInfo.title; notes.appendChild(time); } @@ -3160,7 +3276,11 @@ function buildPatchChangesPanel(heroKey) { const hasNotes = (hentry.hero_notes || []).length > 0; const hasAbilities = (hentry.abilities || []).length > 0; if (!hasNotes && !hasAbilities) continue; - let html = `

${escapeHtml(p.version)}${escapeHtml(p.date || "")}
`; + const patchDate = + formatAbsoluteTime(p.date || p.timestamp, { dateOnly: true }) || + p.date || + ""; + let html = `
${escapeHtml(p.version)}${escapeHtml(patchDate)}
`; html += renderHeroNotes(hentry.hero_notes); for (const ab of (hentry.abilities || [])) { html += patchAbilityBlockHtml(ab, lookup); @@ -3206,7 +3326,11 @@ function renderPatches() { .map((p) => { const major = p.website ? " ★" : ""; const sel = p.version === state.selectedPatch ? " selected" : ""; - return ``; + const patchDate = + formatAbsoluteTime(p.date || p.timestamp, { dateOnly: true }) || + p.date || + ""; + return ``; }) .join(""); select.onchange = () => { @@ -3390,22 +3514,6 @@ function ensureDefaultRankingRegion() { } } -function formatLeaderboardPosted(ts) { - if (ts == null || ts === "") return ""; - const n = Number(ts); - if (!Number.isFinite(n) || n <= 0) return ""; - // Valve posts unix seconds; guard ms accidentally. - const ms = n > 1e12 ? n : n * 1000; - try { - return new Date(ms).toLocaleString("zh-CN", { - hour12: false, - timeZone: "Asia/Shanghai", - }); - } catch { - return ""; - } -} - function renderRankings() { if (!state.data) return; const regionsEl = $("#rankings-regions"); @@ -3468,9 +3576,11 @@ function renderRankings() { } const cur = regions[state.rankingRegion] || {}; - const posted = formatLeaderboardPosted(cur.time_posted); + const postedInfo = formatFriendlyTime(cur.time_posted); if (sub) { - sub.textContent = posted ? `更新于 ${posted}` : ""; + sub.textContent = postedInfo.text ? `更新于 ${postedInfo.text}` : ""; + if (postedInfo.title) sub.title = postedInfo.title; + else sub.removeAttribute("title"); } const rows = Array.isArray(cur.top100) ? cur.top100 : []; @@ -3508,7 +3618,47 @@ function proMatchesData() { ); } -function proPlayerOptions() { +/** OpenDota China region ids / cluster ids used to label 国服 pubs. */ +const MATCH_CHINA_REGIONS = new Set([12, 13, 17, 18, 20, 25]); +const MATCH_CHINA_CLUSTERS = new Set([ + 221, 222, 223, 224, 225, 227, 231, 232, 235, 236, 413, 414, 415, 417, +]); +const MATCH_ORIGIN_FILTERS = [ + { id: "all", label: "全部" }, + { id: "pro", label: "职业" }, + { id: "china", label: "国服" }, +]; + +function isRankedPubMatch(row) { + return row?.origin === "public" || Number(row?.lobby_type) === 7; +} + +function isChinaPubMatch(row) { + if (!isRankedPubMatch(row)) return false; + const cluster = Number(row.cluster); + const region = Number(row.region); + return ( + (Number.isFinite(region) && MATCH_CHINA_REGIONS.has(region)) || + (Number.isFinite(cluster) && MATCH_CHINA_CLUSTERS.has(cluster)) + ); +} + +/** Classify a match row for badges / filters: pro | league | china | ladder. */ +function matchOriginKind(row) { + if (isRankedPubMatch(row)) return isChinaPubMatch(row) ? "china" : "ladder"; + if (row?.origin === "pro") return "pro"; + return "league"; +} + +function matchPassesOriginFilter(row, origin) { + const want = origin || "all"; + if (want === "all") return true; + if (want === "pro") return !isRankedPubMatch(row); + if (want === "china") return isChinaPubMatch(row); + return true; +} + +function proPlayerOptions(originFilter) { const pack = proMatchesData(); const byPro = pack.by_pro || {}; const prosMeta = pack.pros || {}; @@ -3516,19 +3666,22 @@ function proPlayerOptions() { for (const [sid, cell] of Object.entries(byPro)) { if (!cell || typeof cell !== "object") continue; const matches = Array.isArray(cell.matches) ? cell.matches : []; - if (!matches.length) continue; + const filtered = matches.filter((row) => + matchPassesOriginFilter(row, originFilter) + ); + if (!filtered.length) continue; const meta = prosMeta[sid] || {}; const name = cell.name || meta.name || - (matches[0] && matchPlayerDisplayName(matches[0])) || + (filtered[0] && matchPlayerDisplayName(filtered[0])) || sid; const team = cell.team_tag || meta.team_tag || ""; rows.push({ account_id: String(cell.account_id || sid), name, team_tag: team, - match_count: matches.length, + match_count: filtered.length, }); } rows.sort( @@ -3539,7 +3692,7 @@ function proPlayerOptions() { return rows; } -function proMatchRows(playerId) { +function proMatchRows(playerId, originFilter) { const pack = proMatchesData(); const byPro = pack.by_pro || {}; const out = []; @@ -3551,6 +3704,7 @@ function proMatchRows(playerId) { const matches = Array.isArray(cell.matches) ? cell.matches : []; for (const row of matches) { if (!row || typeof row !== "object") continue; + if (!matchPassesOriginFilter(row, originFilter)) continue; const mid = Number(row.match_id); if (!mid || seen.has(mid)) continue; seen.add(mid); @@ -3576,12 +3730,48 @@ function proMatchRows(playerId) { function renderMatchesPage() { const body = $("#matches-body"); + const originsEl = $("#matches-origins"); const playersEl = $("#matches-players"); const sub = $("#matches-sub"); if (!body) return; - const options = proPlayerOptions(); - const hasData = options.length > 0; + const origin = MATCH_ORIGIN_FILTERS.some((o) => o.id === state.matchesOrigin) + ? state.matchesOrigin + : "all"; + if (origin !== state.matchesOrigin) state.matchesOrigin = origin; + + const packHasAny = Object.values(proMatchesData().by_pro || {}).some( + (cell) => Array.isArray(cell?.matches) && cell.matches.length + ); + const options = proPlayerOptions(origin); + const hasData = packHasAny; + + if (originsEl) { + if (!hasData) { + originsEl.innerHTML = ""; + } else { + originsEl.innerHTML = MATCH_ORIGIN_FILTERS.map((o) => { + const active = origin === o.id ? " active" : ""; + return ``; + }).join(""); + originsEl.querySelectorAll("[data-origin]").forEach((btn) => { + btn.addEventListener("click", () => { + const next = btn.getAttribute("data-origin") || "all"; + if (!MATCH_ORIGIN_FILTERS.some((o) => o.id === next)) return; + state.matchesOrigin = next; + state.matchesPage = 1; + syncStateToUrl(); + renderMatchesPage(); + const board = $("#matches-view"); + if (board) board.scrollTop = 0; + }); + }); + } + } if (playersEl) { if (!hasData) { @@ -3610,6 +3800,7 @@ function renderMatchesPage() { btn.addEventListener("click", () => { const id = btn.getAttribute("data-player") || ""; state.matchesPlayerId = id || null; + state.matchesPage = 1; syncStateToUrl(); renderMatchesPage(); const board = $("#matches-view"); @@ -3633,18 +3824,100 @@ function renderMatchesPage() { state.matchesPlayerId = null; } - const rows = proMatchRows(state.matchesPlayerId).slice( - 0, - PRO_MATCHES_PAGE_LIMIT - ); - if (sub) sub.textContent = ""; + const allRows = proMatchRows(state.matchesPlayerId, origin); + const total = allRows.length; + const pageSize = PRO_MATCHES_PAGE_SIZE; + const pageCount = Math.max(1, Math.ceil(total / pageSize) || 1); + let page = Number(state.matchesPage) || 1; + if (page < 1) page = 1; + if (page > pageCount) page = pageCount; + if (page !== state.matchesPage) { + state.matchesPage = page; + syncStateToUrl({ replace: true }); + } + const start = (page - 1) * pageSize; + const rows = allRows.slice(start, start + pageSize); + + if (sub) { + sub.textContent = total + ? `共 ${total} 场 · 第 ${page}/${pageCount} 页` + : ""; + } if (!rows.length) { - body.innerHTML = '
该选手暂无近期比赛
'; + body.innerHTML = state.matchesPlayerId + ? '
该选手暂无符合筛选的近期比赛
' + : '
暂无符合筛选的近期比赛
'; return; } - body.replaceChildren(buildMatchList(null, rows, { showHero: true })); + const wrap = document.createElement("div"); + wrap.className = "matches-page-wrap"; + wrap.appendChild(buildMatchList(null, rows, { showHero: true })); + if (pageCount > 1) { + wrap.appendChild( + buildMatchesPager(page, pageCount, (next) => { + state.matchesPage = next; + syncStateToUrl(); + renderMatchesPage(); + const board = $("#matches-view"); + if (board) board.scrollTop = 0; + }) + ); + } + body.replaceChildren(wrap); +} + +function buildMatchesPager(page, pageCount, onGo) { + const nav = document.createElement("nav"); + nav.className = "matches-pager"; + nav.setAttribute("aria-label", "比赛分页"); + + const mkBtn = (label, target, disabled, current) => { + const btn = document.createElement("button"); + btn.type = "button"; + btn.className = "matches-pager-btn" + (current ? " active" : ""); + btn.textContent = label; + btn.disabled = !!disabled; + if (current) btn.setAttribute("aria-current", "page"); + if (!disabled && !current) { + btn.addEventListener("click", () => onGo(target)); + } + return btn; + }; + + nav.appendChild(mkBtn("上一页", page - 1, page <= 1, false)); + + const windowSize = 5; + let from = Math.max(1, page - Math.floor(windowSize / 2)); + let to = Math.min(pageCount, from + windowSize - 1); + from = Math.max(1, to - windowSize + 1); + if (from > 1) { + nav.appendChild(mkBtn("1", 1, false, page === 1)); + if (from > 2) { + const ell = document.createElement("span"); + ell.className = "matches-pager-ell"; + ell.textContent = "…"; + nav.appendChild(ell); + } + } + for (let i = from; i <= to; i++) { + nav.appendChild(mkBtn(String(i), i, false, i === page)); + } + if (to < pageCount) { + if (to < pageCount - 1) { + const ell = document.createElement("span"); + ell.className = "matches-pager-ell"; + ell.textContent = "…"; + nav.appendChild(ell); + } + nav.appendChild( + mkBtn(String(pageCount), pageCount, false, page === pageCount) + ); + } + + nav.appendChild(mkBtn("下一页", page + 1, page >= pageCount, false)); + return nav; } function streamersData() { @@ -4059,45 +4332,33 @@ function formatStreamerCount(n) { return `${text}亿`; } -function formatStreamerFetched(iso) { - if (!iso || typeof iso !== "string") return ""; - const d = new Date(iso); - if (Number.isNaN(d.getTime())) return ""; - const y = d.getFullYear(); - const m = String(d.getMonth() + 1).padStart(2, "0"); - const day = String(d.getDate()).padStart(2, "0"); - return `${y}-${m}-${day}`; -} - +/** Account id + social counts for the middle column (between avatar and follow). */ function buildStreamerMetaLine(row) { const platform = String(row.platform || "").toLowerCase(); const uniqueId = row.unique_id || ""; const parts = []; if (uniqueId) { - parts.push( - platform === "douyin" - ? `抖音号:${uniqueId}` - : platform === "bilibili" - ? `UID:${uniqueId}` - : String(uniqueId), - ); + parts.push({ + label: platform === "douyin" ? "抖音号" : platform === "bilibili" ? "UID" : "账号", + value: String(uniqueId), + account: true, + }); } if (platform === "bilibili") { if (Number.isFinite(Number(row.following_count))) { - parts.push(`${formatStreamerCount(row.following_count)}关注`); + parts.push({ label: "关注", value: formatStreamerCount(row.following_count) }); } } else if (Number.isFinite(Number(row.total_favorited))) { - parts.push(`${formatStreamerCount(row.total_favorited)}获赞`); + parts.push({ label: "获赞", value: formatStreamerCount(row.total_favorited) }); } if (Number.isFinite(Number(row.follower_count))) { - parts.push(`${formatStreamerCount(row.follower_count)}粉丝`); + parts.push({ label: "粉丝", value: formatStreamerCount(row.follower_count) }); } if (!parts.length) return null; - // Douyin user-search card: item spans + 1px sep with ~8px side margin (not raw "|") const meta = document.createElement("div"); meta.className = "streamer-meta"; - parts.forEach((text, i) => { + parts.forEach((part, i) => { if (i > 0) { const sep = document.createElement("span"); sep.className = "streamer-meta-sep"; @@ -4105,8 +4366,20 @@ function buildStreamerMetaLine(row) { meta.appendChild(sep); } const item = document.createElement("span"); - item.className = "streamer-meta-item"; - item.textContent = text; + item.className = part.account + ? "streamer-meta-item is-account" + : "streamer-meta-item is-stat"; + const label = document.createElement("span"); + label.className = "streamer-meta-label"; + label.textContent = part.label; + const value = document.createElement("span"); + value.className = "streamer-meta-value"; + value.textContent = part.value; + if (part.account) { + item.append(label, document.createTextNode(":"), value); + } else { + item.append(value, label); + } meta.appendChild(item); }); return meta; @@ -4234,10 +4507,16 @@ function buildStreamerCard(row) { } head.appendChild(avatarWrap); + // Middle column: nickname + account/stats only (signature is a full-width row below). + const info = document.createElement("div"); + info.className = "streamer-card-info"; const nameEl = document.createElement("h3"); nameEl.className = "streamer-name"; nameEl.textContent = nick; - head.appendChild(nameEl); + info.appendChild(nameEl); + const metaEl = buildStreamerMetaLine(row); + if (metaEl) info.appendChild(metaEl); + head.appendChild(info); const actions = document.createElement("div"); actions.className = "streamer-actions"; @@ -4253,10 +4532,7 @@ function buildStreamerCard(row) { if (actions.childNodes.length) head.appendChild(actions); card.appendChild(head); - // Meta + signature span full card width below the avatar row (Douyin-style) - const metaEl = buildStreamerMetaLine(row); - if (metaEl) card.appendChild(metaEl); - + // Signature on its own row — long bios must not squeeze the avatar/follow row. if (signature) { const sig = document.createElement("p"); sig.className = "streamer-signature"; @@ -4402,14 +4678,16 @@ function renderStreamers() { if (!body) return; const data = streamersData(); const rows = streamerList(); - const fetched = formatStreamerFetched(data.fetched_at); + const fetchedInfo = formatFriendlyTime(data.fetched_at); body.innerHTML = ""; body.appendChild( buildStreamerCards(rows, { emptyText: "暂无主播数据" }) ); if (foot) { - foot.textContent = fetched ? `更新于 ${fetched}` : ""; - foot.setAttribute("aria-hidden", fetched ? "false" : "true"); + foot.textContent = fetchedInfo.text ? `更新于 ${fetchedInfo.text}` : ""; + if (fetchedInfo.title) foot.title = fetchedInfo.title; + else foot.removeAttribute("title"); + foot.setAttribute("aria-hidden", fetchedInfo.text ? "false" : "true"); } } @@ -4449,9 +4727,9 @@ function syncStreamerCardLive(card, row) { /** * Visit-triggered live refresh: the Pages Function coalesces concurrent - * visitors through a 5-minute edge cache. Local dev has no /api/live-status - * (serve_relations.py returns an empty stub), so failures keep the data.json - * is_live fallback. Fires at most once per page load. + * visitors through a 5-minute edge cache. Local `serve_relations.py` returns + * an empty stub (no probing), so that path keeps the data.json is_live + * fallback. Fires at most once per page load. */ let liveStatusFetched = false; @@ -4459,10 +4737,17 @@ function refreshStreamerLiveStatus() { if (liveStatusFetched) return; liveStatusFetched = true; fetch("/api/live-status") - .then((res) => (res.ok ? res.json() : null)) + .then(async (res) => { + if (!res.ok) return null; + const ctype = (res.headers.get("content-type") || "").toLowerCase(); + if (!ctype.includes("application/json")) return null; + return res.json(); + }) .then((payload) => { const probed = payload && payload.streamers; if (!probed || typeof probed !== "object") return; + // Empty map (local stub / total probe error) → keep data.json fallback. + if (!Object.keys(probed).length) return; const rows = (state.data && state.data.streamers && state.data.streamers.streamers) || []; let changed = false; @@ -4693,10 +4978,14 @@ function renderTrends() { }); } - const fetched = pack.fetched_at - ? `更新于 ${String(pack.fetched_at).slice(0, 10)}` - : ""; - if (sub) sub.textContent = fetched; + const fetchedInfo = pack.fetched_at + ? formatFriendlyTime(pack.fetched_at) + : { text: "", title: "" }; + if (sub) { + sub.textContent = fetchedInfo.text ? `更新于 ${fetchedInfo.text}` : ""; + if (fetchedInfo.title) sub.title = fetchedInfo.title; + else sub.removeAttribute("title"); + } const rows = buildTrendsBoardRows(state.trendsBracket); if (!rows.length) { @@ -5204,13 +5493,25 @@ function applyPatch(patch) { state.rankingRegion = lb.default_region || order[0] || "china"; } } - // Star-player filter (matches page). + // Star-player filter + origin + page (matches page). if (state.page === "matches") { if (patch.matchesPlayerId && /^\d+$/.test(String(patch.matchesPlayerId))) { state.matchesPlayerId = String(patch.matchesPlayerId); } else { state.matchesPlayerId = null; } + if ( + patch.matchesOrigin === "pro" || + patch.matchesOrigin === "china" || + patch.matchesOrigin === "all" + ) { + state.matchesOrigin = patch.matchesOrigin; + } else { + state.matchesOrigin = "all"; + } + const mp = Number(patch.matchesPage); + state.matchesPage = + Number.isFinite(mp) && mp >= 1 ? Math.floor(mp) : 1; } // Item (items page) — must exist in the shop catalog. if (patch.itemKey && shopItem(patch.itemKey)) { @@ -5281,6 +5582,8 @@ function bindPageChrome() { } async function main() { + // mobile-gate.js sets this before paint; skip desktop data boot on phones/tablets. + if (typeof window !== "undefined" && window.__CLIMPEROR_MOBILE__) return; document.addEventListener("keydown", (e) => { if (e.key !== "Escape") return; if (talentPopoverEl) { diff --git a/web/frontend/config.js b/web/frontend/config.js index c69c88f..21105b8 100644 --- a/web/frontend/config.js +++ b/web/frontend/config.js @@ -1,4 +1,4 @@ /* Local defaults; production export overwrites via export_relations_site.py. */ -var SITE_VERSION = "0.5.72"; +var SITE_VERSION = "0.5.84"; var ABILITY_VIDEO_BASE = ""; var STATIC_ASSET_BASE = ""; diff --git a/web/frontend/functions/api/live-status.js b/web/frontend/functions/api/live-status.js index 3ae0ab2..e6bfad4 100644 --- a/web/frontend/functions/api/live-status.js +++ b/web/frontend/functions/api/live-status.js @@ -4,7 +4,8 @@ * Visit-triggered live-status probing with request coalescing via the edge * Cache API (no KV, no wrangler config). The first visitor after the 5-minute * freshness window triggers a re-probe of every streamer with `live_url`; - * concurrent visitors within the window share the cached JSON. + * concurrent visitors within the window share the cached JSON. Concurrent cold + * starts in the same isolate also share one in-flight probe promise. * * Probe logic is a JS port of fetch_streamer_live.py: * - Bilibili: api.live.bilibili.com Room/get_info; data.live_status === 1 is @@ -16,10 +17,10 @@ * * Soft-fail everywhere: douyin blocks from datacenter IPs are expected. When a * single probe fails, the streamer carries over the last known is_live from - * the previous (stale) cache entry with `stale: true`; when every probe fails - * the stale cache entry is served wholesale (X-Live-Cache: stale-override), - * or an empty payload when nothing was ever cached (X-Live-Cache: error). - * The handler never throws a 500 for probe failures. + * data.json / the previous (stale) cache entry with `stale: true`; when every + * probe fails the stale cache entry is served wholesale (X-Live-Cache: + * stale-override), or an empty payload when nothing was ever cached + * (X-Live-Cache: error). The handler never throws a 500 for probe failures. * * Named exports double as the local test surface; the Pages runtime only * routes onRequest* handlers. @@ -51,6 +52,9 @@ const DOUYIN_ROOMSTORE_RE = /\\"roomStore\\":\s*\{\\"roomInfo\\":\s*\{\\"room\\" const DOUYIN_STATUS_RE = /\\"status\\":\s*(\d)/; const DOUYIN_WEBRID_RE = /\\"web_rid\\":\s*\\"(\d+)\\"/; +/** Isolate-local coalescing for concurrent cold starts (same Worker isolate). */ +let inFlightProbe = null; + function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } @@ -172,16 +176,45 @@ export function roomRefFromUrl(liveUrl) { return seg || null; } +/** Probe backend follows the live room host (may differ from profile platform). */ +export function livePlatformFromUrl(liveUrl, fallback = "") { + try { + const host = new URL(String(liveUrl).trim()).hostname.toLowerCase(); + if (host.includes("bilibili.com")) return "bilibili"; + if (host.includes("douyin.com")) return "douyin"; + } catch { + /* keep fallback */ + } + return String(fallback || "") + .trim() + .toLowerCase(); +} + +/** + * Extract the streamer row list from a data.json payload. + * Production nests under `streamers.streamers`; also accept a bare array. + */ +export function streamerRowsFromPayload(payload) { + if (!payload || typeof payload !== "object") return []; + if (Array.isArray(payload.streamers)) return payload.streamers; + const nested = payload.streamers; + if (nested && typeof nested === "object" && Array.isArray(nested.streamers)) { + return nested.streamers; + } + return []; +} + /** Extract probe targets (id/platform/room ref) from a data.json payload. */ export function targetsFromPayload(payload) { - const rows = payload && Array.isArray(payload.streamers) ? payload.streamers : []; + const rows = streamerRowsFromPayload(payload); const targets = []; for (const row of rows) { if (!row || typeof row !== "object") continue; const sid = String(row.id || "").trim(); const liveUrl = String(row.live_url || "").trim(); if (!sid || !liveUrl) continue; - const platform = String(row.platform || "").trim().toLowerCase(); + const fallback = String(row.platform || "").trim().toLowerCase(); + const platform = livePlatformFromUrl(liveUrl, fallback); const ref = roomRefFromUrl(liveUrl); if (!ref) continue; targets.push({ id: sid, platform, ref }); @@ -189,6 +222,18 @@ export function targetsFromPayload(payload) { return targets; } +/** Seed carry-over map from data.json is_live (daily snapshot). */ +export function seedLiveFromPayload(payload) { + const out = {}; + for (const row of streamerRowsFromPayload(payload)) { + if (!row || typeof row !== "object") continue; + const sid = String(row.id || "").trim(); + if (!sid || typeof row.is_live !== "boolean") continue; + out[sid] = { is_live: row.is_live }; + } + return out; +} + async function probeAll(targets) { const jar = targets.some((t) => t.platform === "douyin") ? await warmDouyinCookies() @@ -247,34 +292,49 @@ function emptyPayload() { return { probed_at: new Date().toISOString(), ttl: FRESH_TTL_S, streamers: {} }; } -async function handle(context) { - const { request } = context; - - const cachedData = await readCachedPayload(); - if (cachedData && isFresh(cachedData)) { - return jsonResponse(cachedData, "hit"); - } +async function putCache(body) { + const cached = new Response(JSON.stringify(body), { + headers: { + "Content-Type": "application/json; charset=utf-8", + "Cache-Control": `max-age=${CACHE_STORE_MAX_AGE_S}`, + }, + }); + await caches.default.put(CACHE_KEY, cached); +} +/** + * Load targets + build a fresh probe payload (or return null when there is + * nothing to probe / total failure with no seed). + * Returns { body, cacheState } where cacheState is miss | stale-override | error. + */ +async function probeFresh(requestUrl, cachedData) { + let dataPayload = null; let targets = []; try { - const dataUrl = new URL("/data.json", request.url); + const dataUrl = new URL("/data.json", requestUrl); const res = await fetchWithTimeout(dataUrl.toString(), { headers: { Accept: "application/json" }, }); - if (res.ok) targets = targetsFromPayload(await res.json()); + if (res.ok) { + dataPayload = await res.json(); + targets = targetsFromPayload(dataPayload); + } } catch { // data.json unreachable: fall through to stale/empty below } if (!targets.length) { - if (cachedData) return jsonResponse(cachedData, "stale-override"); - return jsonResponse(emptyPayload(), "error"); + if (cachedData) return { body: cachedData, cacheState: "stale-override" }; + return { body: emptyPayload(), cacheState: "error" }; } - const staleStreamers = + const seeded = seedLiveFromPayload(dataPayload); + const cachedStreamers = cachedData && cachedData.streamers && typeof cachedData.streamers === "object" ? cachedData.streamers : {}; + // Prefer previous edge cache over the daily snapshot when both exist. + const staleStreamers = { ...seeded, ...cachedStreamers }; const probed = await probeAll(targets); const streamers = {}; @@ -296,21 +356,47 @@ async function handle(context) { if (freshCount === 0) { // Total probe failure (e.g. douyin blocking this colo): serve the stale // snapshot if one exists, otherwise an explicitly empty payload. - if (cachedData) return jsonResponse(cachedData, "stale-override"); - return jsonResponse(emptyPayload(), "error"); + if (cachedData) return { body: cachedData, cacheState: "stale-override" }; + if (Object.keys(seeded).length) { + const body = { + probed_at: new Date().toISOString(), + ttl: FRESH_TTL_S, + streamers: Object.fromEntries( + Object.entries(seeded).map(([id, cell]) => [ + id, + { is_live: cell.is_live, stale: true }, + ]) + ), + }; + return { body, cacheState: "stale-override" }; + } + return { body: emptyPayload(), cacheState: "error" }; } const body = { probed_at: new Date().toISOString(), ttl: FRESH_TTL_S, streamers }; - const res = jsonResponse(body, "miss"); - const cached = new Response(JSON.stringify(body), { - headers: { - "Content-Type": "application/json; charset=utf-8", - "Cache-Control": `max-age=${CACHE_STORE_MAX_AGE_S}`, - }, - }); - // Cache write must not block the response. - context.waitUntil(caches.default.put(CACHE_KEY, cached)); - return res; + return { body, cacheState: "miss" }; +} + +async function handle(context) { + const { request } = context; + + const cachedData = await readCachedPayload(); + if (cachedData && isFresh(cachedData)) { + return jsonResponse(cachedData, "hit"); + } + + // Coalesce concurrent cold starts in this isolate onto one probe run. + if (!inFlightProbe) { + inFlightProbe = probeFresh(request.url, cachedData).finally(() => { + inFlightProbe = null; + }); + } + const { body, cacheState } = await inFlightProbe; + + if (cacheState === "miss") { + context.waitUntil(putCache(body)); + } + return jsonResponse(body, cacheState); } export async function onRequestGet(context) { diff --git a/web/frontend/functions/api/mobile-demand.js b/web/frontend/functions/api/mobile-demand.js new file mode 100644 index 0000000..e4d844b --- /dev/null +++ b/web/frontend/functions/api/mobile-demand.js @@ -0,0 +1,70 @@ +/** + * Pages Function: GET|POST /api/mobile-demand + * + * Best-effort edge counter for "please add mobile support" demand. + * Stored via the Cache API (no KV / wrangler binding), same pattern as + * live-status. Counts may undercount under concurrent colo races and can + * reset if the edge entry is evicted; good enough as a demand signal. + * + * GET -> { count } + * POST -> increment once, return { count, voted: true } + */ + +const CACHE_KEY = "https://mobile-demand.internal/v1"; +// Long store TTL so eviction is rare; freshness is not time-gated. +const CACHE_STORE_MAX_AGE_S = 365 * 24 * 60 * 60; + +function jsonResponse(body, status = 200) { + return new Response(JSON.stringify(body), { + status, + headers: { + "Content-Type": "application/json; charset=utf-8", + "Cache-Control": "no-store", + }, + }); +} + +async function readCount() { + try { + const cached = await caches.default.match(CACHE_KEY); + if (!cached) return 0; + const data = await cached.json(); + const n = Number(data && data.count); + return Number.isFinite(n) && n >= 0 ? Math.floor(n) : 0; + } catch { + return 0; + } +} + +async function writeCount(count) { + const body = { + count, + updated_at: new Date().toISOString(), + }; + const cached = new Response(JSON.stringify(body), { + headers: { + "Content-Type": "application/json; charset=utf-8", + "Cache-Control": `max-age=${CACHE_STORE_MAX_AGE_S}`, + }, + }); + await caches.default.put(CACHE_KEY, cached); +} + +export async function onRequestGet() { + try { + const count = await readCount(); + return jsonResponse({ count }); + } catch { + return jsonResponse({ count: 0 }); + } +} + +export async function onRequestPost() { + try { + const next = (await readCount()) + 1; + await writeCount(next); + return jsonResponse({ count: next, voted: true }); + } catch { + return jsonResponse({ error: "increment_failed" }, 503); + } +} diff --git a/web/frontend/index.html b/web/frontend/index.html index e2de136..e51f976 100644 --- a/web/frontend/index.html +++ b/web/frontend/index.html @@ -5,9 +5,25 @@ DOTA2 上分帝 - + + + +
@@ -72,7 +88,8 @@
-