Files
web_huakui_web/tests/fixtures/templates/seriesPlay-go.html
T
谢宇宁andClaude Opus 5.5 d2ddb1c321 [Ai] feat: 花魁短剧 Next.js 站点初始提交
- 原生 Next.js App Router + 严格 TypeScript 实现花魁短剧 PC/H5 页面,按 src/features/{catalog,content,playback} 组织,保留完整 SEO(metadata、JSON-LD、canonical、robots、llms、sitemap、IndexNow)。
- 主域名通过 SITE_URL=https://huakuidj.com 强制覆盖后端 foreverUrlAddr(config/*.env、src/server/config.ts、src/server/seo/shared.ts、src/server/services/shared.ts),支持邮箱改为 support@huakuidj.com。
- 移除登录与账户体系:删除 /account 全部页面、登录/注册/充值弹窗、收藏点赞、评论、金币解锁及对应 BFF 接口;旧账户地址 GET/HEAD 统一 301 到首页(src/lib/routes.ts REMOVED_ACCOUNT_PATHS),保留游客会话、反馈、图片上传、观看上报与搜索联想。
- 播放页:评论位改为同类推荐 + 热播榜单,锁定集改为 App 观看遮罩与底部弹层,新增简介标签、分集图例与独立视觉皮肤(src/features/playback、src/styles/pages/playback.css)。
- 卡片:短剧/视频卡状态与时长移至信息行胶囊标签,封面角标移至左上角(src/components/catalog/Cards.tsx、src/styles/foundations/base.css)。
- 同步更新单元测试、浏览器冒烟脚本、路由清单与 README。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:33:31 +07:00

1191 lines
59 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>花魁 &amp; &#34;标题&#34; &lt;test&gt;</title>
<meta name="description" content="短剧&#39;说明 &amp; 安全">
<meta name="robots" content="index, follow">
<meta name="googlebot" content="index, follow">
<meta name="google-site-verification" content="VEhl0na6ZwYZgkdcdz8BcCR4LpYGFm97zbp62YqJHX4">
<meta name="yandex-verification" content="56acf08532be3060">
<meta name="yandex-verification" content="acaf652efa6cd920">
<meta name="msvalidate.01" content="57A5999E9B5167EE9039265EBCA2AE3A">
<link rel="canonical" href="https://drama.example/tags/">
<meta property="og:locale" content="zh_CN">
<meta property="og:type" content="website">
<meta property="og:site_name" content="花魁">
<meta property="og:title" content="花魁 &amp; &#34;标题&#34; &lt;test&gt;">
<meta property="og:description" content="短剧&#39;说明 &amp; 安全">
<meta property="og:url" content="https://drama.example/tags/">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="花魁 &amp; &#34;标题&#34; &lt;test&gt;">
<meta name="twitter:description" content="短剧&#39;说明 &amp; 安全">
<link rel="icon" href="/static/favicon.svg?v=huakui-20261010" type="image/svg+xml" sizes="any">
<link rel="icon" href="/static/favicon.png?v=huakui-20261010" type="image/png">
<link rel="apple-touch-icon" href="/static/favicon.png?v=huakui-20261010">
<script src="/static/js/common/channel.js?v=huakui-20261010"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Z582WY8LN9"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Z582WY8LN9');
</script>
<script type="text/javascript">
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
})(window, document,'script','https://mc.yandex.ru/metrika/tag.js?id=112951899', 'ym');
ym(112951899, 'init', {ssr:true, webvisor:true, clickmap:true, ecommerce:"dataLayer", referrer: document.referrer, url: location.href, accurateTrackBounce:true, trackLinks:true});
</script>
<script>
window.__TRACKER_BOOT__ = {
appId: "app\u0027\u0022\u003c\/script\u003e",
encryptedConfig: "sdk-config\u003c/script\u003e",
appVersion: "1.0.0",
pageKey: "tags",
pageName: "标签",
userType: "normal"
};
</script>
<script defer src="/static/common/web-sdk-v1.2.0.js?v=huakui-20261010"></script>
<script defer src="/static/js/tracker.js?v=huakui-20261010"></script>
<meta name="renderer" content="webkit">
<meta name="force-rendering" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="x5-orientation" content="portrait">
<meta name="x5-page-mode" content="app">
<meta name="browsermode" content="application">
<meta name="imagemode" content="force">
<meta name="apple-mobile-web-app-capable" content="yes">
<script src="/static/js/common/compat.js?v=huakui-20261010"></script>
<link rel="stylesheet" href="/static/css/base.css?v=huakui-20261010">
<link rel="stylesheet" href="/static/css/recharge-modal.css?v=huakui-20261010">
<link rel="stylesheet" href="/static/common/DPlayer.min.css?v=huakui-20261010">
<link rel="stylesheet" href="/static/css/play.css?v=huakui-20261010">
<script defer src="/static/common/hls.min.js?v=huakui-20261010"></script>
<script defer src="/static/common/DPlayer.min.js?v=huakui-20261010"></script>
</head>
<body class="page-play page-series-play">
<link rel="stylesheet" href="/static/css/header.css?v=huakui-20261010">
<header class="site-header">
<div class="site-header__left">
<button class="site-header__icon-btn only-h5" type="button" aria-label="菜单" data-drawer-open>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu.svg?v=huakui-20261010" alt="菜单">
</button>
<a class="brand" href="/" data-navigation-key="home" data-navigation-name="首页">
<picture>
<source media="(max-width: 768px)" srcset="/static/brand/mobile.svg?v=huakui-20261010">
<img class="brand__logo" src="/static/brand/header.svg?v=huakui-20261010" width="104" height="36" alt="花魁短剧">
</picture>
</a>
<nav class="nav only-pc" aria-label="主导航">
<a class="nav__item" href="/" data-navigation-key="/home" data-navigation-name="首页">首页</a>
<div class="nav__item-wrap">
<a class="nav__item is-active" href="/list/" aria-haspopup="true" data-navigation-key="/playlet" data-navigation-name="短剧">短剧</a>
<div class="nav__mega" role="menu" aria-label="短剧快捷筛选">
<div class="nav__mega-col nav__mega-col--themes">
<p class="nav__mega-label">题材</p>
<div class="nav__mega-chips">
<a class="nav__mega-chip" href="/list/%E9%83%BD%E5%B8%82/" role="menuitem" data-navigation-key="mega_theme_1" data-navigation-name="题材:都市">都市</a>
</div>
</div>
<div class="nav__mega-col nav__mega-col--status">
<p class="nav__mega-label">状态</p>
<div class="nav__mega-chips">
<a class="nav__mega-chip is-active" href="/list/" role="menuitem" data-navigation-key="mega_status_all" data-navigation-name="状态:全部">全部</a>
<a class="nav__mega-chip" href="/list/all/1/1/" role="menuitem" data-navigation-key="mega_status_serializing" data-navigation-name="状态:连载中">连载中</a>
<a class="nav__mega-chip" href="/list/all/2/1/" role="menuitem" data-navigation-key="mega_status_completed" data-navigation-name="状态:已完结">已完结</a>
</div>
</div>
<div class="nav__mega-col nav__mega-col--links">
<p class="nav__mega-label">快捷入口</p>
</div>
</div>
</div>
<a class="nav__item" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="/download-app" data-navigation-name="下载APP">下载APP</a>
</nav>
</div>
<div class="site-header__right">
<form class="search only-pc" action="/search/" method="get" role="search" data-path-search data-header-search>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/search.svg?v=huakui-20261010" alt="搜索">
<input class="search__input" type="search" placeholder="搜索剧名 / 演员 / 标签" autocomplete="off" data-header-search-input aria-autocomplete="list" aria-expanded="false" aria-controls="header-search-dropdown">
<button class="search__clear" type="button" aria-label="清除搜索词" data-header-search-clear hidden>
<img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
</button>
<div class="search-dropdown" id="header-search-dropdown" data-header-search-dropdown hidden>
<div class="search-dropdown__idle" data-header-search-idle>
<section class="search-dropdown__history" aria-label="搜索历史" data-header-search-history hidden>
<div class="search-dropdown__head">
<h2 class="search-dropdown__label">搜索历史</h2>
<button class="search-dropdown__clear" type="button" aria-label="清除搜索历史" data-header-history-clear>
<img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="清除">
</button>
</div>
<div class="search-dropdown__chips" data-header-history-chips></div>
</section>
</div>
<div class="search-dropdown__suggest" data-header-search-suggest hidden aria-label="搜索联想"></div>
</div>
</form>
<a class="site-header__icon-btn only-h5" href="/search-mobile/" aria-label="搜索" data-navigation-key="header_search" data-navigation-name="搜索">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/search_h5.svg?v=huakui-20261010" alt="搜索">
</a>
<a class="btn btn--ghost site-header__download" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="header_download" data-navigation-name="下载 APP">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
<span>下载 App</span>
</a>
<button class="btn btn--primary site-header__login" type="button" data-login-open>登录</button>
</div>
</header>
<div class="drawer" data-drawer>
<div class="drawer__mask" data-drawer-close></div>
<aside class="drawer__panel" id="site-drawer" role="dialog" aria-modal="true" aria-label="侧边导航">
<div class="drawer__head">
<div class="drawer__brand-row">
<a class="brand" href="/" data-navigation-key="drawer_home" data-navigation-name="首页">
<img class="brand__logo" src="/static/brand/mobile.svg?v=huakui-20261010" width="88" height="28" alt="花魁短剧">
</a>
<button class="drawer__close" type="button" aria-label="关闭" data-drawer-close>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
</button>
</div>
<button class="drawer__user drawer__user--login" type="button" data-login-open>
<img decoding="async" loading="lazy" class="drawer__avatar" src="/static/brand/placeholder.svg?v=huakui-20261010" alt="默认用户头像">
<div class="drawer__user-info">
<strong>登录 / 注册</strong>
<span class="drawer__coin">登录后同步收藏与进度</span>
</div>
<img decoding="async" loading="lazy" class="icon icon--sm drawer__user-arrow" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
</button>
</div>
<hr class="drawer__rule">
<nav class="drawer__nav" aria-label="页面导航">
<a class="drawer__nav-item" href="/" data-navigation-key="/home" data-navigation-name="首页">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_sy.svg?v=huakui-20261010" alt="首页入口">
首页
</a>
<a class="drawer__nav-item is-active" href="/list/" data-navigation-key="/playlet" data-navigation-name="短剧">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_dj.svg?v=huakui-20261010" alt="短剧入口">
短剧
</a>
<a class="drawer__nav-item" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="/download-app" data-navigation-name="下载APP">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_sy.svg?v=huakui-20261010" alt="下载APP入口">
下载APP
</a>
</nav>
<hr class="drawer__rule">
<div class="drawer__tags">
<p class="drawer__tags-label">题材</p>
<div class="drawer__tag-list">
<a class="drawer__tag" href="/list/%E9%83%BD%E5%B8%82/" data-navigation-key="drawer_theme_1" data-navigation-name="题材:都市">都市</a>
</div>
</div>
<div class="drawer__links">
<a class="drawer__link" href="/favorites/" data-navigation-key="drawer_favorites" data-navigation-name="我的收藏">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_sc.svg?v=huakui-20261010" alt="我的收藏">
我的收藏
</a>
<a class="drawer__link" href="/history/" data-navigation-key="drawer_history" data-navigation-name="观看历史">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_gkls.svg?v=huakui-20261010" alt="观看历史">
观看历史
</a>
</div>
<div class="drawer__foot">
<a class="btn btn--ghost drawer__download" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="drawer_download" data-navigation-name="下载 APP">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
下载 App
</a>
</div>
</aside>
</div>
<script defer src="/static/js/common/cookie.js?v=huakui-20261010"></script>
<script defer src="/static/js/common/request.js?v=huakui-20261010"></script>
<script defer src="/static/js/common/auth.js?v=huakui-20261010"></script>
<script defer src="/static/common/imgDecypt.js?v=huakui-20261010"></script>
<script defer src="/static/js/header.js?v=huakui-20261010"></script>
<script defer src="/static/js/pages/loginPop.js?v=huakui-20261010"></script>
<script defer src="/static/js/pages/registerPop.js?v=huakui-20261010"></script>
<link rel="stylesheet" href="/static/css/eighteen.css?v=huakui-20261010">
<script>
(function () {
try {
if (localStorage.getItem("hg_age_ok") === "1") {
document.documentElement.classList.add("eighteen-ok");
}
} catch (e) {}
})();
</script>
<div class="eighteen" data-eighteen role="dialog" aria-modal="true" aria-labelledby="eighteen-title">
<div class="eighteen__mask" aria-hidden="true"></div>
<div class="eighteen__dialog">
<div class="eighteen__badge" aria-hidden="true">18+</div>
<h2 class="eighteen__title" id="eighteen-title">年龄确认</h2>
<p class="eighteen__desc">本网站部分内容仅适合成年人观看。点击继续即表示您确认您已年满 18 岁,或在您访问本网站时所在的司法管辖区已是成年人。</p>
<button class="btn btn--primary eighteen__enter" type="button" data-eighteen-enter>
我已年满 18 岁,进入
</button>
<button class="eighteen__exit" type="button" data-eighteen-exit>
我未满 18 岁,退出
</button>
</div>
</div>
<script src="/static/js/eighteen.js?v=huakui-20261010" defer></script>
<link rel="stylesheet" href="/static/css/loginPop.css?v=huakui-20261010">
<div
class="login-pop"
data-login-pop
role="dialog"
aria-modal="true"
aria-labelledby="login-pop-title"
>
<div class="login-pop__mask" data-login-close aria-hidden="true"></div>
<div class="login-pop__panel">
<button class="login-pop__close" type="button" data-login-close aria-label="关闭">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
</button>
<div class="login-pop__intro">
<h2 class="login-pop__title" id="login-pop-title" data-login-title>登录花魁短剧</h2>
<p class="login-pop__desc" data-login-desc>登录后可收藏作品、解锁付费剧集并查看观看历史</p>
</div>
<form
class="login-pop__form"
action="/api/auth/login"
method="post"
data-login-form
novalidate
>
<label class="login-pop__field" data-field="account">
<span class="login-pop__label">账号</span>
<span class="login-pop__control">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/user.svg?v=huakui-20261010" alt="用户" aria-hidden="true">
<input
class="login-pop__input"
type="text"
name="account"
autocomplete="username"
placeholder="请输入账号"
maxlength="16"
required
>
</span>
<span class="login-pop__error" data-field-error="account" hidden>
<img decoding="async" loading="lazy" class="login-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
<span data-field-error-text></span>
</span>
</label>
<label class="login-pop__field" data-field="password">
<span class="login-pop__label">密码</span>
<span class="login-pop__control">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/lock-dim.svg?v=huakui-20261010" alt="密码" aria-hidden="true">
<input
class="login-pop__input"
type="password"
name="password"
autocomplete="current-password"
placeholder="请输入登录密码"
maxlength="16"
data-login-password
required
>
<button class="login-pop__toggle" type="button" data-login-toggle aria-label="显示密码">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/eye.svg?v=huakui-20261010" alt="显示或隐藏密码" data-login-toggle-icon>
</button>
</span>
<span class="login-pop__error" data-field-error="password" hidden>
<img decoding="async" loading="lazy" class="login-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
<span data-field-error-text></span>
</span>
</label>
<div class="login-pop__meta">
<label class="login-pop__remember">
<input class="login-pop__checkbox" type="checkbox" name="remember" checked>
<span class="login-pop__check" aria-hidden="true"></span>
<span>记住登录状态</span>
</label>
</div>
<button class="btn btn--primary login-pop__submit" type="submit" data-login-submit>登录</button>
</form>
<p class="login-pop__switch"><span>还没有账号?</span><a href="/register/" data-register-open>立即注册</a></p>
<div class="login-pop__rule" aria-hidden="true"></div>
<p class="login-pop__legal">
登录即表示你已年满 18 岁并同意
<a href="/terms/">《用户条款》</a>
与
<a href="/privacy/">《隐私政策》</a>
</p>
</div>
</div>
<link rel="stylesheet" href="/static/css/registerPop.css?v=huakui-20261010">
<div
class="register-pop"
data-register-pop
role="dialog"
aria-modal="true"
aria-labelledby="register-pop-title"
>
<div class="register-pop__mask" data-register-close aria-hidden="true"></div>
<div class="register-pop__panel">
<button class="register-pop__close" type="button" data-register-close aria-label="关闭">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
</button>
<div class="register-pop__intro">
<h2 class="register-pop__title" id="register-pop-title">创建账号</h2>
<p class="register-pop__desc">注册后即可解锁付费剧集并收藏作品</p>
</div>
<form
class="register-pop__form"
action="/api/auth/register"
method="post"
data-register-form
novalidate
>
<label class="register-pop__field" data-field="account">
<span class="register-pop__label">账号</span>
<span class="register-pop__control">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/user.svg?v=huakui-20261010" alt="用户" aria-hidden="true">
<input
class="register-pop__input"
type="text"
name="account"
autocomplete="username"
placeholder="6 到 20 位字母或数字"
minlength="6"
maxlength="20"
pattern="[A-Za-z0-9]{6,20}"
required
>
</span>
<span class="register-pop__error" data-field-error="account" hidden>
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
<span data-field-error-text></span>
</span>
</label>
<label class="register-pop__field" data-field="password">
<span class="register-pop__label">密码</span>
<span class="register-pop__control">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/lock-dim.svg?v=huakui-20261010" alt="密码" aria-hidden="true">
<input
class="register-pop__input"
type="password"
name="password"
autocomplete="new-password"
placeholder="8 位以上,含字母与数字"
minlength="8"
maxlength="64"
data-register-password
required
>
<button class="register-pop__toggle" type="button" data-register-toggle="password" aria-label="显示密码">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/eye.svg?v=huakui-20261010" alt="显示或隐藏密码" data-register-toggle-icon="password">
</button>
</span>
<span class="register-pop__error" data-field-error="password" hidden>
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
<span data-field-error-text></span>
</span>
</label>
<label class="register-pop__field" data-field="passwordConfirm">
<span class="register-pop__label">确认密码</span>
<span class="register-pop__control">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/lock-dim.svg?v=huakui-20261010" alt="密码" aria-hidden="true">
<input
class="register-pop__input"
type="password"
name="passwordConfirm"
autocomplete="new-password"
placeholder="再次输入密码"
minlength="8"
maxlength="64"
data-register-password-confirm
required
>
<button class="register-pop__toggle" type="button" data-register-toggle="confirm" aria-label="显示密码">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/eye.svg?v=huakui-20261010" alt="显示或隐藏密码" data-register-toggle-icon="confirm">
</button>
</span>
<span class="register-pop__error" data-field-error="passwordConfirm" hidden>
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
<span data-field-error-text></span>
</span>
</label>
<label class="register-pop__field" data-field="agentInviteCode">
<span class="register-pop__label">邀请码(选填)</span>
<span class="register-pop__control">
<img class="icon" src="/static/images/auth/award.svg?v=huakui-20261010" alt="" aria-hidden="true" width="18" height="18">
<input class="register-pop__input" type="text" name="agentInviteCode" autocomplete="off" placeholder="如有邀请码,请在此填写">
</span>
<span class="register-pop__error" data-field-error="agentInviteCode" hidden><img class="register-pop__error-icon" src="/static/images/error-tip.svg?v=huakui-20261010" alt="" aria-hidden="true"><span data-field-error-text></span></span>
</label>
<label class="register-pop__agree" data-field="agree">
<input class="register-pop__checkbox" type="checkbox" name="agree" required>
<span class="register-pop__check" aria-hidden="true"></span>
<span>
我已年满 18 岁,并同意
<a href="/terms/">《用户条款》</a>
与
<a href="/privacy/">《隐私政策》</a>
</span>
</label>
<span class="register-pop__error" data-field-error="agree" hidden>
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
<span data-field-error-text></span>
</span>
<button class="btn btn--primary register-pop__submit" type="submit" data-register-submit>注册</button>
</form>
<p class="register-pop__switch">
<span>已有账号?</span>
<a href="/login/" data-login-open>立即登录</a>
</p>
</div>
</div>
<link rel="stylesheet" href="/static/css/downloadPop.css?v=huakui-20261010">
<div
class="download-pop"
data-download-pop
data-app-addr="https://app.example/download"
role="dialog"
aria-modal="true"
aria-labelledby="download-pop-title"
>
<div class="download-pop__mask" data-download-close aria-hidden="true"></div>
<div class="download-pop__panel">
<button class="download-pop__close" type="button" data-download-close aria-label="关闭">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="">
</button>
<div class="download-pop__copy">
<h2 class="download-pop__title" id="download-pop-title">下载花魁短剧 App</h2>
<p class="download-pop__desc">点击后前往下载页,手机打开会自动识别设备并推荐安装方式</p>
</div>
<a class="download-pop__download" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">
<img decoding="async" loading="lazy" class="download-pop__download-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="">
点击下载
</a>
</div>
</div>
<script defer src="/static/js/pages/downloadPop.js?v=huakui-20261010"></script>
<link rel="stylesheet" href="/static/css/installGuide.css?v=huakui-20261010">
<div class="install-guide" data-install-guide hidden>
<div class="install-guide__mask" data-install-close data-download-close aria-hidden="true"></div>
<section class="install-guide__sheet" role="dialog" aria-modal="true" aria-labelledby="install-guide-title" aria-describedby="install-guide-description" tabindex="-1">
<div class="install-guide__handle" aria-hidden="true"><span></span></div>
<header class="install-guide__head">
<div class="install-guide__heading">
<h2 id="install-guide-title">下载花魁短剧 App</h2>
<p id="install-guide-description" data-install-description
data-ios-description="已识别为 iOS 设备,可前往官方下载页查看安装方式"
data-android-description="已识别为 Android 设备,可前往官方下载页查看安装方式">请选择适合当前设备的安装方式</p>
</div>
<button class="install-guide__close" type="button" data-install-close data-download-close aria-label="关闭安装引导"><img src="/static/images/close.svg?v=huakui-20261010" alt="" width="18" height="18"></button>
</header>
<div class="install-guide__tabs" role="tablist" aria-label="iOS 安装方式" data-install-tabs>
<button id="install-guide-store-tab" type="button" role="tab" aria-selected="true" aria-controls="install-guide-store" tabindex="0" data-install-tab="store">商店版</button>
<button id="install-guide-profile-tab" type="button" role="tab" aria-selected="false" aria-controls="install-guide-profile" tabindex="-1" data-install-tab="profile">轻量版</button>
</div>
<div class="install-guide__content" id="install-guide-store" role="tabpanel" aria-labelledby="install-guide-store-tab" data-install-panel="store">
<div class="install-guide__store-card">
<span class="install-guide__store-icon"><img src="/static/images/brand-apple.svg?v=huakui-20261010" alt="" width="20" height="20"></span>
<div class="install-guide__store-copy">
<div class="install-guide__store-title">花魁短剧 App Store 版</div>
<p>前往官方下载页,查看商店版是否可用及当前设备的安装方式</p>
</div>
</div>
<div class="install-guide__step install-guide__store-tip">
<span class="install-guide__badge install-guide__badge--tip">提示</span>
<div class="install-guide__step-copy"><h3>所在地区未上架时</h3><p>请切换到轻量版,用 Safari 安装描述文件</p></div>
</div>
<p class="install-guide__notice"><img src="/static/images/install/notice.svg?v=huakui-20261010" alt="" width="14" height="14"><span>需登录 App Store 账号;若显示「不可用」,请返回选择轻量版</span></p>
<a class="install-guide__action" data-install-action="store" data-navigation-key="install_ios_store" data-navigation-name="前往下载页" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">
<img src="/static/images/install/external-link.svg?v=huakui-20261010" alt="" width="20" height="20"><span>前往下载页</span>
</a>
</div>
<div class="install-guide__content" id="install-guide-profile" role="tabpanel" aria-labelledby="install-guide-profile-tab" data-install-panel="profile" hidden>
<ol class="install-guide__steps">
<li class="install-guide__step"><span class="install-guide__badge">1</span><div class="install-guide__step-copy"><h3>前往官方下载页</h3><p>用 Safari 打开本页,点击「前往下载页」,查看轻量版是否可用及安装说明</p></div></li>
<li class="install-guide__step"><span class="install-guide__badge">2</span><div class="install-guide__step-copy"><h3>安装描述文件</h3><p>前往 设置 / 已下载描述文件,选择「安装」并输入密码</p></div></li>
<li class="install-guide__step"><span class="install-guide__badge">3</span><div class="install-guide__step-copy"><h3>返回桌面打开</h3><p>桌面出现花魁短剧图标即安装完成,建议保存账号凭证</p></div></li>
</ol>
<p class="install-guide__notice"><img src="/static/images/install/notice.svg?v=huakui-20261010" alt="" width="14" height="14"><span>仅支持 Safari;若在微信 / Telegram 内打开,请先点右上角「在浏览器中打开」</span></p>
<a class="install-guide__action" data-install-action="profile" data-navigation-key="install_ios_profile" data-navigation-name="前往下载页" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener"><img src="/static/images/brand-apple.svg?v=huakui-20261010" alt="" width="20" height="20"><span>前往下载页</span></a>
</div>
<div class="install-guide__content" id="install-guide-android" data-install-panel="android" hidden>
<ol class="install-guide__steps">
<li class="install-guide__step"><span class="install-guide__badge">1</span><div class="install-guide__step-copy"><h3>前往官方下载页</h3><p>点击「前往下载页」,查看 Android 安装包及适用于当前设备的安装说明</p></div></li>
<li class="install-guide__step"><span class="install-guide__badge">2</span><div class="install-guide__step-copy"><h3>允许安装未知来源</h3><p>系统提示「禁止安装来源不明的应用」时,点击「设置」开启允许</p></div></li>
<li class="install-guide__step"><span class="install-guide__badge">3</span><div class="install-guide__step-copy"><h3>打开花魁短剧</h3><p>安装完成后点击「打开」,或在桌面找到花魁短剧图标</p></div></li>
</ol>
<p class="install-guide__notice"><img src="/static/images/install/notice.svg?v=huakui-20261010" alt="" width="14" height="14"><span>如系统提示风险,请核实安装包来源后再继续</span></p>
<a class="install-guide__action" data-install-action="android" data-navigation-key="install_android_apk" data-navigation-name="前往下载页" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener"><img src="/static/images/brand-android.svg?v=huakui-20261010" alt="" width="20" height="20"><span>前往下载页</span></a>
</div>
</section>
</div>
<script defer src="/static/js/components/install-guide.js?v=huakui-20261010"></script>
<link rel="stylesheet" href="/static/css/toast.css?v=huakui-20261010">
<div
class="site-toast"
id="site-toast"
data-toast
role="status"
aria-live="polite"
aria-atomic="true"
hidden
>
<div class="site-toast__panel" data-toast-panel>
<img decoding="async" loading="lazy" class="site-toast__icon" data-toast-icon-success src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/check-circle.svg?v=huakui-20261010" alt="操作成功" hidden>
<img decoding="async" loading="lazy" class="site-toast__icon" data-toast-icon-error src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" hidden>
<p class="site-toast__text" data-toast-text></p>
</div>
</div>
<script defer src="/static/js/common/toast.js?v=huakui-20261010"></script>
<script defer src="/static/js/common/sharePage.js?v=huakui-20261010"></script>
<link rel="stylesheet" href="/static/css/mobileTabbar.css?v=huakui-20261010">
<nav class="mobile-tabbar" aria-label="移动端主导航">
<a class="mobile-tabbar__item" href="/" data-navigation-key="mobile_home" data-navigation-name="首页">
<img src="/static/images/mobile-tabbar/home-muted.svg" width="22" height="22" alt="" aria-hidden="true">
<span>首页</span>
</a>
<a class="mobile-tabbar__item is-active" href="/list/" aria-current="page" data-navigation-key="mobile_short" data-navigation-name="短剧">
<img src="/static/images/mobile-tabbar/film-active.svg" width="22" height="22" alt="" aria-hidden="true">
<span>短剧</span>
</a>
<a class="mobile-tabbar__item" href="/series/" data-navigation-key="mobile_series" data-navigation-name="剧集">
<img src="/static/images/mobile-tabbar/tv-muted.svg" width="22" height="22" alt="" aria-hidden="true">
<span>剧集</span>
</a>
<a class="mobile-tabbar__item" href="/profile/" data-navigation-key="mobile_profile" data-navigation-name="我的">
<img src="/static/images/mobile-tabbar/user-muted.svg" width="22" height="22" alt="" aria-hidden="true">
<span>我的</span>
</a>
</nav>
<header class="page-subheader only-h5" aria-label="播放页顶栏">
<a class="page-subheader__btn" href="javascript:history.back()" aria-label="返回">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-left.svg?v=huakui-20261010" alt="返回">
</a>
<div class="page-subheader__title">花魁影集</div>
<button class="page-subheader__btn" type="button" aria-label="分享" data-share-page>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/share.svg?v=huakui-20261010" alt="分享">
</button>
</header>
<div class="page play-page">
<main class="main play-main">
<nav class="breadcrumb play-breadcrumb only-pc" aria-label="面包屑">
<a class="breadcrumb__item" href="/">首页</a>
<img decoding="async" loading="lazy" class="breadcrumb__sep" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
<a class="breadcrumb__item" href="/series/">视频</a>
<img decoding="async" loading="lazy" class="breadcrumb__sep" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
<span class="breadcrumb__item is-current">花魁影集</span>
</nav>
<section class="play-stage" aria-label="播放器">
<div
class="play-player"
data-play-player
data-video-id="2"
data-can-watch="1"
>
<div class="dplayer-video" data-url="/h5/video.m3u8"></div>
<img decoding="async" loading="lazy"
class="play-player__cover lazy"
src="/static/brand/placeholder.svg?v=huakui-20261010"
data-src="https://img.example/%e5%bd%b1%e9%9b%86.webp"
data-play-poster
alt="花魁影集"
>
<div class="play-player__scrim" aria-hidden="true"></div>
<div class="play-player__dim" aria-hidden="true"></div>
<button
class="play-player__center"
type="button"
aria-label="播放"
data-play-poster-play
>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/play.svg?v=huakui-20261010" alt="播放">
</button>
<div class="play-player__badge">
<span class="only-pc">正片 02:00</span>
<span class="only-h5">02:00</span>
</div>
</div>
<div class="play-tabs" aria-label="内容类型">
<a class="play-tabs__item is-active" href="#">正片</a>
</div>
</section>
<section class="play-info" aria-label="剧集信息">
<div class="play-meta">
<div class="play-meta__title-row">
<h1 class="play-meta__title">花魁影集</h1>
<span class="badge badge--hot">影集</span>
</div>
<div class="play-meta__chips">
<span class="play-chip">120 分钟</span>
<span class="play-chip">1280×720</span>
<span class="play-chip">18+</span>
</div>
<p class="play-meta__stats only-pc">
</p>
<p class="play-meta__stats only-h5">
</p>
</div>
<div class="play-actions">
<button
class="btn btn--primary play-actions__btn play-actions__btn--play"
type="button"
data-play-poster-play
>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/play_hollow.svg?v=huakui-20261010" alt="播放">
<span>立即播放</span>
</button>
<button
class="btn btn--ghost play-actions__btn play-actions__btn--icon"
type="button"
aria-label="点赞"
data-video-like
data-video-id="2"
data-liked="2"
data-like-raw="0"
>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/heart.svg?v=huakui-20261010" alt="点赞">
<span class="only-pc" data-video-like-label>点赞</span>
</button>
<button
class="btn btn--ghost play-actions__btn play-actions__btn--icon"
type="button"
aria-label="收藏"
data-video-collect
data-video-id="2"
data-collected="2"
data-collect-raw="0"
>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/bookmark.svg?v=huakui-20261010" alt="收藏">
<span class="only-pc" data-video-collect-label>收藏</span>
</button>
<button class="btn btn--ghost play-actions__btn play-actions__btn--icon" type="button" aria-label="分享" data-share-page>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/share.svg?v=huakui-20261010" alt="分享">
<span class="only-pc" data-share-page-label>分享</span>
</button>
<button class="btn btn--ghost play-actions__btn play-actions__btn--icon" type="button" aria-label="反馈">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/message-circle.svg?v=huakui-20261010" alt="评论">
<span class="only-pc">反馈</span>
</button>
</div>
<div class="play-synopsis">
<div class="play-synopsis__head">
<h2 class="play-synopsis__title">简介</h2>
<button class="play-synopsis__more" type="button">
展开
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
</button>
</div>
<p class="play-synopsis__text">花魁影集</p>
</div>
</section>
<link rel="stylesheet" href="/static/css/playLinks.css?v=huakui-20261010">
<section class="play-links" aria-label="官方入口">
<div class="play-links__row">
<div class="play-links__item">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_globe.svg?v=huakui-20261010" alt="最新网址">
<span class="play-links__label">官方入口</span>
<a class="play-links__value" href="https://drama.example" >drama.example</a>
</div>
<div class="play-links__item">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_refresh-cw.svg?v=huakui-20261010" alt="备用网址">
<span class="play-links__label">最新地址发布页</span>
<a class="play-links__value" href="#" >-</a>
</div>
<div class="play-links__item">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_shield.svg?v=huakui-20261010" alt="永久地址">
<span class="play-links__label">备用访问地址</span>
<a class="play-links__value" href="#" >-</a>
</div>
</div>
<div class="play-links__row">
<div class="play-links__item">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_award.svg?v=huakui-20261010" alt="防失联地址">
<span class="play-links__label">海外永久地址</span>
<a class="play-links__value" href="#" >-</a>
</div>
<div class="play-links__item">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_smartphone.svg?v=huakui-20261010" alt="App 下载地址">
<span class="play-links__label">官方 App 下载</span>
<a class="play-links__value" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">app.example/download</a>
</div>
<div class="play-links__item">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_send.svg?v=huakui-20261010" alt="Telegram 群组">
<span class="play-links__label">官方 Telegram 群</span>
<a class="play-links__value" href="#" >-</a>
</div>
</div>
</section>
<div class="play-promo">
<link rel="stylesheet" href="/static/css/promo.css?v=huakui-20261010">
<section class="promo-rail" aria-label="推荐">
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="a" data-creative-id="" data-ad-location="1" data-ad-slot-key="1" data-ad-slot-name="广告位1" data-ad-title="广告 A" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-a.webp" data-lazy-eager="1" alt="广告 A">
<span class="tag tag--dark promo-card__tag">广告</span>
</a>
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="b" data-creative-id="" data-ad-location="2" data-ad-slot-key="2" data-ad-slot-name="广告位2" data-ad-title="广告 B" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-b.webp" data-lazy-eager="1" alt="广告 B">
<span class="tag tag--dark promo-card__tag">广告</span>
</a>
</section>
</div>
<section class="play-dual" aria-label="评论与热榜">
<link rel="stylesheet" href="/static/css/playComments.css?v=huakui-20261010">
<div
class="play-comments"
data-play-comments
data-comment-page="1"
data-comment-size="4"
data-comment-total="0"
data-comment-loaded="0"
>
<div class="play-comments__head">
<h2 class="play-comments__title">评论</h2>
<span class="play-comments__count" data-comment-total-label>暂无评论</span>
</div>
<div
class="play-composer"
data-play-composer
data-object-id="10"
data-object-type="2"
data-logged-in="0"
>
<div class="play-composer__avatar" aria-hidden="true">
<img decoding="async" loading="lazy" class="play-composer__avatar-img" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/profile/avatar.png?v=huakui-20261010" alt="默认用户头像">
</div>
<div class="play-composer__field">
<input
class="play-composer__input"
type="text"
maxlength="200"
placeholder="登录后发表评论"
aria-label="发表评论"
data-comment-input
readonly
>
<span class="play-composer__count" data-comment-count>0 / 200</span>
</div>
<button class="btn btn--primary play-composer__login" type="button" data-login-open>登录</button>
</div>
<ul class="play-comment-list" data-comment-list>
<li class="play-comment play-comment--empty">
<p class="play-comment__text">暂无评论</p>
</li>
</ul>
<button
class="play-comments__more"
type="button"
data-comment-more
hidden
>
查看更多评论
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
</button>
</div>
<script defer src="/static/js/pages/playComments.js?v=huakui-20261010"></script>
<aside class="play-hot" aria-label="热门短剧">
<div class="play-hot__head">
<h2 class="play-hot__title">热门短剧</h2>
<a class="play-hot__more" href="/list/all/0/2/" >
完整榜单
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
</a>
</div>
<ol class="play-hot__list">
<li><p class="play-comment__text" style="padding:12px 0;color:var(--muted, #888)">暂无热榜数据</p></li>
</ol>
</aside>
</section>
<div class="play-promo play-promo--bottom">
<link rel="stylesheet" href="/static/css/promo.css?v=huakui-20261010">
<section class="promo-rail" aria-label="推荐">
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="a" data-creative-id="" data-ad-location="1" data-ad-slot-key="1" data-ad-slot-name="广告位1" data-ad-title="广告 A" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-a.webp" data-lazy-eager="1" alt="广告 A">
<span class="tag tag--dark promo-card__tag">广告</span>
</a>
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="b" data-creative-id="" data-ad-location="2" data-ad-slot-key="2" data-ad-slot-name="广告位2" data-ad-title="广告 B" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-b.webp" data-lazy-eager="1" alt="广告 B">
<span class="tag tag--dark promo-card__tag">广告</span>
</a>
</section>
</div>
</main>
</div>
<link rel="stylesheet" href="/static/css/footer.css?v=huakui-20261010">
<footer class="site-footer">
<div class="site-footer__inner">
<div class="site-footer__top">
<div class="site-footer__brand">
<div class="brand">
<picture>
<source media="(max-width: 768px)" srcset="/static/brand/header.svg?v=huakui-20261010">
<img class="brand__logo brand__logo--lg" src="/static/brand/footer.svg?v=huakui-20261010" width="124" height="44" alt="花魁短剧">
</picture>
</div>
<p class="block__subtitle">每一帧都值得细看</p>
<div class="social">
<a class="social__item" href="https://x.example/huakui" target="_blank" rel="sponsored nofollow noopener" aria-label="X" data-navigation-key="footer_x" data-navigation-name="X">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/brand-x.svg?v=huakui-20261010" alt="X">
</a>
</div>
</div>
<div class="site-footer__links">
<nav class="footer-col" aria-label="浏览">
<h3>浏览</h3>
<a href="/" data-navigation-key="/home" data-navigation-name="首页">首页</a>
<a href="/list/" data-navigation-key="/playlet" data-navigation-name="短剧">短剧</a>
<a data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="/download-app" data-navigation-name="下载APP">下载APP</a>
</nav>
<nav class="footer-col" aria-label="帮助">
<h3>帮助</h3>
<a href="/about/" data-navigation-key="footer_about" data-navigation-name="关于我们">关于我们</a>
<a href="/help/" data-navigation-key="footer_help" data-navigation-name="常见问题">常见问题</a>
<a href="/feedback/" data-navigation-key="footer_feedback" data-navigation-name="意见反馈">意见反馈</a>
<a href="https://service.example" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="footer_contact" data-navigation-name="联系我们">联系我们</a>
</nav>
<nav class="footer-col" aria-label="条款">
<h3>条款</h3>
<a href="/terms/" data-navigation-key="footer_terms" data-navigation-name="用户条款">用户条款</a>
<a href="/privacy/" data-navigation-key="footer_privacy" data-navigation-name="隐私政策">隐私政策</a>
<a href="/2257/" data-navigation-key="footer_2257" data-navigation-name="2257 合规声明">2257 合规声明</a>
<a href="/dmca/" data-navigation-key="footer_dmca" data-navigation-name="DMCA 版权声明">DMCA 版权声明</a>
</nav>
<a class="footer-download-mobile" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="footer_download_mobile" data-navigation-name="下载 App">下载 App</a>
<div class="footer-download">
<div class="qr-box" data-qr="https://app.example/download" aria-label="扫码下载">
</div>
<div class="footer-download__copy">
<strong>扫码下载 App</strong>
<p>iOS / Android 海量短剧每日更新</p>
<a class="btn btn--primary btn--sm" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="footer_download" data-navigation-name="下载 APP">
<img decoding="async" loading="lazy" class="icon icon--sm" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
下载 App
</a>
</div>
</div>
</div>
</div>
<hr class="site-footer__rule">
<div class="site-footer__legal">
<p>© 2026 花魁短剧 HUAKUI&nbsp; <span class="site-footer__rights">All rights reserved.</span><span class="site-footer__mobile-adult">仅限 18 岁以上成年人</span></p>
<p><span class="site-footer__adult">仅限 18 岁以上成年人&nbsp; </span>本网站所呈现之所有人员,于拍摄当时均已年满 18 岁,符合 18 U.S.C. 第 2257 条规定。</p>
</div>
</div>
</footer>
<noscript><div><img src="https://mc.yandex.ru/watch/112951899" style="position:absolute; left:-9999px;" alt=""></div></noscript>
<script defer src="/static/common/qrcode.min.js?v=huakui-20261010"></script>
<script defer src="/static/js/common/qr.js?v=huakui-20261010"></script>
<div
class="play-coin play-coin--short"
data-play-coin
role="dialog"
aria-modal="true"
aria-labelledby="play-coin-title"
>
<div class="play-coin__mask" data-play-coin-close aria-hidden="true"></div>
<div class="play-coin__panel">
<div class="play-coin__handle" aria-hidden="true"></div>
<div class="play-coin__head">
<div class="play-coin__copy">
<h2 class="play-coin__title" id="play-coin-title">金币不足</h2>
<p class="play-coin__desc only-pc">本集需 38 金币,当前余额 12 金币,充值后即可播放。</p>
<p class="play-coin__desc only-h5">本集需 38 金币,当前余额 12 金币</p>
</div>
<button class="play-coin__close" type="button" data-play-coin-close aria-label="关闭">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
</button>
</div>
<div class="play-coin__sheet">
<div class="play-coin__row">
<span class="play-coin__label">当前余额</span>
<span class="play-coin__value is-low">12 金币</span>
</div>
<div class="play-coin__divider" aria-hidden="true"></div>
<div class="play-coin__row">
<span class="play-coin__label">本次消耗</span>
<span class="play-coin__cost">38 金币</span>
</div>
</div>
<p class="play-coin__note">后续付费剧集仍需逐集确认</p>
<button class="btn btn--primary play-coin__pay" type="button" data-recharge-open>
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/gift.svg?v=huakui-20261010" alt="礼物">
去充值 首充加赠 10%
</button>
<div class="play-coin__foot">
<a class="play-coin__app" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
下载 App 免费看
</a>
<button class="play-coin__skip" type="button" data-play-coin-close>暂不观看</button>
</div>
</div>
</div>
<div class="recharge-modal" data-recharge-modal hidden
data-unlock-cost="0"
data-balance="0"
>
<div class="recharge-modal__backdrop" data-recharge-close aria-hidden="true"></div>
<section class="recharge-modal__panel" role="dialog" aria-modal="true" aria-labelledby="recharge-modal-title" tabindex="-1">
<div class="recharge-modal__handle" aria-hidden="true"></div>
<div class="recharge-modal__head">
<div class="recharge-modal__heading">
<h2 id="recharge-modal-title">金币充值</h2>
<p class="recharge-modal__subtitle recharge-modal__subtitle--desktop">当前余额 0 金币</p>
<p class="recharge-modal__subtitle recharge-modal__subtitle--mobile">当前余额 0 金币</p>
</div>
<div class="recharge-modal__balance" aria-label="当前余额 0 金币">
<span class="recharge-modal__coin recharge-modal__coin--balance" aria-hidden="true"><img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/recharge/coin-star.svg?v=huakui-20261010" alt="金币"></span>
<strong data-recharge-balance>0</strong>
</div>
<button class="recharge-modal__close" type="button" data-recharge-close aria-label="关闭充值弹窗">
<img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/recharge/close.svg?v=huakui-20261010" alt="关闭充值窗口">
</button>
</div>
<div class="recharge-modal__packages" role="group" aria-label="选择充值套餐" data-recharge-packages>
<p class="recharge-modal__empty" data-recharge-packages-empty>暂无可购买的金币套餐</p>
</div>
<div class="recharge-modal__methods" role="group" aria-label="选择支付方式" data-recharge-methods>
<p class="recharge-modal__empty" data-recharge-methods-empty>请先选择套餐</p>
</div>
<button class="recharge-modal__pay" type="button" data-recharge-pay disabled>立即支付&nbsp; <span data-recharge-amount>¥0</span></button>
<p class="recharge-modal__status" data-recharge-status role="status" hidden></p>
<div class="recharge-modal__foot">
<span>支付即表示同意《充值协议》</span>
<a data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener"><img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/recharge/download.svg?v=huakui-20261010" alt="下载 App">下载 App 免费看</a>
</div>
</section>
</div>
<script defer src="/static/js/pages/play.js?v=huakui-20261010"></script>
<script defer src="/static/js/recharge-modal.js?v=huakui-20261010"></script>
</body>
</html>