Files
xianyan/docs/toolsapi/agreements/disclaimer.html
Developer adfa0af825 chore: 汇总2026-05-30全量更新
### 详细变更:
1.  **文档与配置**:更新AGENTS.md添加命令超时约束,升级Rive依赖至0.14.7并替换平台插件引用
2.  **UI优化**:重构AppInfo页面布局、移除图表冗余配置、锁定部分系统设置项
3.  **功能增强**:
    - 新增工具面板拖拽状态管理与介绍弹窗
    - 新增进度页面编辑/重排/清空用户进度功能
    - 新增摇一摇路由作用域拦截逻辑
4.  **体验优化**:
    - 统一外部链接跳转弹窗,添加文件打开确认逻辑
    - 修复设备卡片IP溢出、Android权限声明问题
    - 后台任务初始化增加协议校验
5.  **代码重构**:拆分工具面板配置、拖拽逻辑与动画参数,优化状态管理代码
6.  **工具脚本**:新增协议文件上传脚本
2026-05-30 05:29:50 +08:00

543 lines
24 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">
<title>免责声明及内容版权归属 - 闲言APP</title>
<style>
:root {
--primary: #6C5CE7;
--primary-light: #A29BFE;
--primary-dark: #5A4BD1;
--bg: #F2F2F7;
--bg-card: #FFFFFF;
--text: #1C1C1E;
--text-secondary: #8E8E93;
--text-tertiary: #AEAEB2;
--border: #E5E5EA;
--highlight-bg: rgba(108, 92, 231, 0.08);
--shadow-sm: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 4px 12px rgba(0,0,0,0.08);
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 20px;
--font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-family);
background: var(--bg);
color: var(--text);
line-height: 1.8;
-webkit-font-smoothing: antialiased;
}
.lang-switch {
position: fixed;
top: 16px;
right: 16px;
z-index: 100;
display: flex;
background: rgba(255,255,255,0.85);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 20px;
padding: 3px;
box-shadow: 0 2px 12px rgba(0,0,0,0.1);
border: 0.5px solid rgba(108, 92, 231, 0.15);
}
.lang-btn {
padding: 6px 14px;
border: none;
background: transparent;
color: var(--text-secondary);
font-size: 13px;
font-weight: 500;
cursor: pointer;
border-radius: 17px;
transition: all 0.25s ease;
font-family: var(--font-family);
}
.lang-btn.active {
background: var(--primary);
color: #FFF;
box-shadow: 0 2px 8px rgba(108, 92, 231, 0.3);
}
.lang-btn:hover:not(.active) {
background: rgba(108, 92, 231, 0.08);
color: var(--primary);
}
.header {
background: linear-gradient(135deg, #6C5CE7 0%, #5A4BD1 50%, #4A3DB5 100%);
padding: 48px 20px 44px;
text-align: center;
position: relative;
overflow: hidden;
}
.header::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.1) 0%, transparent 50%);
pointer-events: none;
}
.header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 32px;
background: var(--bg);
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}
.header-icon { font-size: 40px; margin-bottom: 10px; display: block; }
.header h1 { color: #FFF; font-size: 24px; font-weight: 700; letter-spacing: -0.3px; margin-bottom: 4px; }
.header p { color: rgba(255,255,255,0.75); font-size: 14px; }
.container { max-width: 800px; margin: 0 auto; padding: 20px 16px 40px; }
.content-card {
background: var(--bg-card);
border-radius: var(--radius-lg);
padding: 28px 24px;
margin-bottom: 20px;
box-shadow: var(--shadow-sm);
}
h1 {
font-size: 22px;
font-weight: 700;
color: var(--text);
margin: 28px 0 12px;
}
h2 {
font-size: 20px;
font-weight: 700;
color: var(--text);
margin: 32px 0 16px;
padding-bottom: 10px;
border-bottom: 2px solid var(--primary);
display: inline-block;
}
h3 {
font-size: 17px;
font-weight: 600;
color: var(--text);
margin: 24px 0 12px;
}
p {
font-size: 15px;
color: var(--text);
margin-bottom: 12px;
line-height: 1.8;
}
p.note {
background: rgba(108, 92, 231, 0.06);
border-left: 3px solid var(--primary);
padding: 12px 16px;
border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
margin: 12px 0;
}
.highlight {
color: var(--primary);
font-weight: 600;
background: var(--highlight-bg);
padding: 1px 6px;
border-radius: 4px;
}
.copyright-cert {
margin: 20px 0;
text-align: center;
padding: 20px;
background: rgba(108, 92, 231, 0.04);
border-radius: var(--radius-md);
border: 1px solid rgba(108, 92, 231, 0.12);
}
.cert-image {
max-width: 100%;
max-height: 500px;
border-radius: var(--radius-sm);
box-shadow: var(--shadow-md);
}
.cert-caption {
margin-top: 12px;
font-size: 14px;
color: var(--text-secondary);
font-weight: 500;
}
ul {
list-style: none;
padding: 0;
margin: 0 0 16px;
}
li {
font-size: 15px;
color: var(--text);
padding: 6px 0 6px 20px;
position: relative;
line-height: 1.7;
}
li::before {
content: '\2022';
color: var(--primary);
font-weight: 700;
position: absolute;
left: 4px;
top: 6px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 16px 0;
font-size: 14px;
}
th {
background: var(--primary);
color: #FFF;
padding: 10px 12px;
text-align: left;
font-weight: 600;
font-size: 13px;
}
td {
padding: 10px 12px;
border-bottom: 0.5px solid var(--border);
line-height: 1.6;
}
tr:hover td {
background: rgba(108, 92, 231, 0.04);
}
.back-link {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--primary);
text-decoration: none;
font-size: 15px;
font-weight: 500;
padding: 12px 0;
transition: opacity 0.2s;
}
.back-link:hover { opacity: 0.7; }
.footer {
text-align: center;
padding: 24px 20px 40px;
color: var(--text-secondary);
font-size: 13px;
line-height: 1.8;
border-top: 0.5px solid var(--border);
margin-top: 20px;
}
.footer .company { font-weight: 500; color: var(--text); margin-bottom: 4px; }
@media (max-width: 640px) {
.lang-switch { top: 10px; right: 10px; }
.lang-btn { padding: 5px 10px; font-size: 12px; }
.header { padding: 40px 16px 36px; }
.header h1 { font-size: 20px; }
.container { padding: 16px 12px 32px; }
.content-card { padding: 20px 16px; }
h2 { font-size: 18px; }
h3 { font-size: 16px; }
p, li { font-size: 14px; }
table { font-size: 12px; }
th, td { padding: 8px 6px; }
}
</style>
</head>
<body>
<div class="lang-switch">
<button class="lang-btn active" onclick="switchLang('zh')" id="btn-zh">中文</button>
<button class="lang-btn" onclick="switchLang('en')" id="btn-en">EN</button>
</div>
<div class="header">
<span class="header-icon">⚖️</span>
<h1 id="header-title">免责声明及内容版权归属</h1>
<p id="header-subtitle">免责条款、内容版权与知识产权声明</p>
</div>
<div class="container">
<div class="content-card">
<div id="content-zh" class="lang-content">
<p><strong>闲言APP</strong> 免责声明及内容版权归属</p>
<p>版本号V6.5</p>
<p>更新日期2026年5月20日</p>
<p>生效日期2026年5月21日</p>
<h2>一、免责声明</h2>
<h3>1.1 服务免责</h3>
<ul>
<li>**闲言APP**按"现状"和"现有"的状态提供服务,我们不对服务作出任何明示或暗示的保证,但不影响您依法享有的消费者权益</li>
<li>我们不保证服务不会中断,不保证服务的及时性、安全性、准确性</li>
<li><span class="highlight">不可抗力</span>(包括但不限于自然灾害、政策变化、网络攻击等)导致的服务中断,我们不承担责任</li>
</ul>
<h3>1.2 内容免责</h3>
<ul>
<li>应用中的句子、诗词等内容来源于公开资料和用户投稿,我们尽力确保内容准确,但不对内容的完整性、准确性作出保证</li>
<li>用户发布的内容不代表我们的观点和立场</li>
<li>如您发现内容存在侵权或错误,请通过应用内反馈或邮箱联系我们,我们将及时处理</li>
</ul>
<h3>1.3 第三方服务免责</h3>
<ul>
<li>本应用可能包含第三方提供的链接、服务或内容</li>
<li>我们对第三方服务的质量、安全性、合法性不作保证</li>
<li>您使用第三方服务产生的风险和损失,由您<span class="highlight">自行承担</span></li>
</ul>
<h3>1.4 数据免责</h3>
<ul>
<li>因您自身原因(如卸载应用、清除数据、设备损坏等)导致的数据丢失,我们不承担责任</li>
<li>建议您定期使用"数据导出"功能备份重要数据</li>
<li>因网络环境导致的同步延迟或失败,我们不承担责任</li>
</ul>
<h3>1.5 投资理财免责</h3>
<ul>
<li>本应用中的运势、星座等内容仅供<span class="highlight">娱乐参考</span>,不构成任何投资建议</li>
<li>用户不应将应用内容作为决策依据</li>
</ul>
<h2>二、内容版权归属</h2>
<h3>2.1 平台版权</h3>
<ul>
<li>**闲言APP**的软件著作权归**弥勒市朋普镇微风暴网络科技工作室**所有</li>
<li>软件著作权登记号:<span class="highlight">2020SR0421982</span></li>
</ul>
<div class="copyright-cert">
<img src="rz.png" alt="软件著作权登记证书" class="cert-image" />
<p class="cert-caption">软件著作权登记证书</p>
</div>
<ul>
<li>应用的界面设计、图标、代码等受<span class="highlight">著作权法</span>保护</li>
<li>未经授权,任何人不得复制、修改、传播本应用的任何部分</li>
</ul>
<h3>2.2 句子内容版权</h3>
<ul>
<li>应用中展示的句子内容,其著作权归原作者或相关权利人所有</li>
<li>内容来源说明:</li>
<li>部分内容来源于互联网公开资源,经整理后收录</li>
<li>部分内容由用户自行收集、整理和上传</li>
<li>部分内容来自公共领域作品(著作权保护期已届满)</li>
<li>部分内容已获得作者或权利人的授权使用</li>
<li>我们尽力标注内容来源和作者信息,但因部分内容经多次转载,原始来源难以追溯</li>
<li>如您是句子内容的著作权人且认为我们侵犯了您的权益,请通过下方联系方式通知我们,我们将在核实后<span class="highlight">及时删除</span>侵权内容</li>
</ul>
<h3>2.3 诗词内容版权</h3>
<ul>
<li>古诗词作品属于公共领域,不受著作权法保护</li>
<li>现代诗词作品的著作权归原作者所有</li>
<li>诗词的译文、赏析等二次创作内容受<span class="highlight">著作权法</span>保护</li>
<li>部分诗词内容来源于互联网公开资源,我们尽力标注出处</li>
</ul>
<h3>2.4 用户内容版权</h3>
<ul>
<li>您在**闲言APP**上发布的原创内容(笔记、文章、评论等),<span class="highlight">著作权归您所有</span></li>
<li>您授予我们非独占的、免费的使用许可,以便在应用服务范围内展示和传播您的内容</li>
<li>您发布的内容应确保不侵犯他人的<span class="highlight">知识产权</span></li>
<li>用户上传的内容,由用户自行承担版权责任;如涉及侵权,由上传者承担相应法律责任</li>
</ul>
<h3>2.5 卡片作品版权</h3>
<ul>
<li>您使用**闲言APP**创作的卡片作品,<span class="highlight">著作权归您所有</span></li>
<li>卡片中使用的模板、素材等,其知识产权归我们或相关权利人所有</li>
<li>您可将创作的卡片用于个人用途;商业使用需获得相应授权</li>
</ul>
<h3>2.6 侵权处理</h3>
<ul>
<li>我们高度重视知识产权保护,对于侵权内容采取<span class="highlight">零容忍</span>态度</li>
<li>侵权删除流程:</li>
<li>权利人通过邮箱 2821981550@qq.com 提交侵权通知</li>
<li>通知需包含:权利证明材料、侵权内容具体位置(链接或截图)、联系方式</li>
<li>我们将在收到有效通知后<span class="highlight">3个工作日</span>内进行核实</li>
<li>核实属实后,立即删除或屏蔽侵权内容</li>
<li>将处理结果通知权利人</li>
<li>对于反复上传侵权内容的用户,我们有权采取警告、限制功能、封禁账号等措施</li>
</ul>
<h2>三、知识产权保护</h2>
<h3>3.1 我们尊重知识产权,坚决反对任何形式的侵权行为</h3>
<h3>3.2 如您发现应用内存在侵权内容,请通过以下方式通知我们:</h3>
<ul>
<li>邮箱2821981550@qq.com</li>
<li>通知中应包含:权利证明、侵权内容链接、联系方式</li>
</ul>
<h3>3.3 我们将在收到有效通知后及时处理侵权内容</h3>
<h2>四、联系方式</h2>
<ul>
<li>邮箱2821981550@qq.com</li>
<li>通信地址云南省昆明市西山区滇池度假区碧鸡街道车家壁513号</li>
<li>开发者:**弥勒市朋普镇微风暴网络科技工作室**</li>
</ul>
<h2>五、法律适用与争议解决</h2>
<h3>5.1 本声明适用<span class="highlight">中华人民共和国法律</span></h3>
<h3>5.2 因本声明产生的争议,双方应友好协商解决;协商不成的,任何一方均可向我们所在地有管辖权的<span class="highlight">人民法院</span>提起诉讼。</h3>
<p>本协议中任何条款被认定为无效或不可执行的,不影响其他条款的效力。</p>
</div>
<div id="content-en" class="lang-content" style="display:none;">
<p><strong>Xianyan APP</strong> Disclaimer & Content Copyright</p>
<p>Version: V6.5</p>
<p>Updated: May 20, 2026</p>
<p>Effective: May 21, 2026</p>
<h2>I. Disclaimers</h2>
<h3>1.1 Service Disclaimer</h3>
<ul>
<li>**Xianyan APP** provides services on an "as is" and "as available" basis. We do not make any express or implied warranties, but this does not affect your lawful consumer rights</li>
<li>We do not guarantee uninterrupted, timely, secure, or accurate services</li>
<li>We are not responsible for service interruptions caused by force majeure (including but not limited to natural disasters, policy changes, cyber attacks, etc.)</li>
</ul>
<h3>1.2 Content Disclaimer</h3>
<ul>
<li>Sentences, poems, and other content in the app come from public sources and user submissions. We strive to ensure accuracy but do not guarantee completeness or accuracy</li>
<li>Content published by users does not represent our views or positions</li>
<li>If you find infringing or incorrect content, please contact us through in-app feedback or email</li>
</ul>
<h3>1.3 Third-Party Service Disclaimer</h3>
<ul>
<li>This app may contain links, services, or content provided by third parties</li>
<li>We do not guarantee the quality, security, or legality of third-party services</li>
<li>Risks and losses arising from your use of third-party services are your own responsibility</li>
</ul>
<h3>1.4 Data Disclaimer</h3>
<ul>
<li>We are not responsible for data loss caused by your own actions (such as uninstalling the app, clearing data, device damage, etc.)</li>
<li>We recommend that you regularly use the "Data Export" feature to back up important data</li>
<li>We are not responsible for sync delays or failures caused by network conditions</li>
</ul>
<h3>1.5 Investment Disclaimer</h3>
<ul>
<li>Fortune, horoscope, and similar content in this app is for entertainment purposes only and does not constitute investment advice</li>
<li>Users should not use app content as a basis for decision-making</li>
</ul>
<h2>II. Content Copyright</h2>
<h3>2.1 Platform Copyright</h3>
<ul>
<li>The software copyright of **Xianyan APP** belongs to **Mile City Pengpu Town Weifengbao Network Technology Studio**</li>
<li>Software Copyright Registration Number: 2020SR0421982</li>
</ul>
<div class="copyright-cert">
<img src="rz.png" alt="软件著作权登记证书" class="cert-image" />
<p class="cert-caption">Software Copyright Registration Certificate</p>
</div>
<ul>
<li>The interface design, icons, code, etc. of the app are protected by copyright law</li>
<li>No one may copy, modify, or distribute any part of this app without authorization</li>
</ul>
<h3>2.2 Sentence Content Copyright</h3>
<ul>
<li>The copyright of sentences displayed in the app belongs to the original authors or relevant rights holders</li>
<li>Content sources:</li>
<li>Some content from public internet resources, collected after curation</li>
<li>Some content collected, organized, and uploaded by users</li>
<li>Some content from public domain works (copyright protection period has expired)</li>
<li>Some content used with authorization from authors or rights holders</li>
<li>We strive to credit content sources and author information, but some content has been reposted multiple times, making original sources difficult to trace</li>
<li>If you are a copyright holder of sentence content and believe we have infringed your rights, please notify us through the contact information below</li>
</ul>
<h3>2.3 Poetry Content Copyright</h3>
<ul>
<li>Classical poetry works belong to the public domain and are not protected by copyright law</li>
<li>Modern poetry works are copyrighted by their original authors</li>
<li>Translations, analyses, and other derivative works of poetry are protected by copyright law</li>
</ul>
<h3>2.4 User Content Copyright</h3>
<ul>
<li>Original content you publish on **Xianyan APP** (notes, articles, comments, etc.) is copyrighted by you</li>
<li>You grant us a non-exclusive, free license to display and distribute your content within the scope of app services</li>
<li>Content you publish must not infringe on others' intellectual property rights</li>
</ul>
<h3>2.5 Card Work Copyright</h3>
<ul>
<li>Card works you create using **Xianyan APP** are copyrighted by you</li>
<li>Templates and materials used in cards are the intellectual property of us or relevant rights holders</li>
<li>You may use created cards for personal purposes; commercial use requires authorization</li>
</ul>
<h3>2.6 Infringement Handling</h3>
<ul>
<li>We attach great importance to intellectual property protection and have zero tolerance for infringing content</li>
<li>Infringement removal process:</li>
<li>Rights holders submit an infringement notice via email at 2821981550@qq.com</li>
<li>Notice must include: proof of rights, specific location of infringing content (link or screenshot), contact information</li>
<li>We will verify within 3 working days after receiving a valid notice</li>
<li>If verified, we will immediately delete or block the infringing content</li>
<li>We will notify the rights holder of the processing result</li>
</ul>
<h2>III. Intellectual Property Protection</h2>
<h3>3.1 We respect intellectual property rights and firmly oppose any form of infringement</h3>
<h3>3.2 If you discover infringing content in the app, please notify us via:</h3>
<ul>
<li>Email: 2821981550@qq.com</li>
<li>Notice should include: proof of rights, link to infringing content, contact information</li>
</ul>
<h3>3.3 We will handle infringing content promptly after receiving a valid notice</h3>
<h2>IV. Contact Information</h2>
<ul>
<li>Email: 2821981550@qq.com</li>
<li>Mailing address: Dianchi Resort Area, Xishan District, Kunming, Yunnan Province, China (Bijie Subdistrict, Chejiabi No. 513)</li>
<li>Developer: **Mile City Pengpu Town Weifengbao Network Technology Studio**</li>
</ul>
<h2>V. Legal Application and Dispute Resolution</h2>
<h3>5.1 This statement is governed by the laws of the People's Republic of China.</h3>
<h3>5.2 Disputes arising from this statement shall be resolved through friendly negotiation; if negotiation fails, either party may file a lawsuit with the People's Court having jurisdiction over our location.</h3>
<p>If any provision of this agreement is found to be invalid or unenforceable, the validity of the remaining provisions shall not be affected.</p>
</div>
</div>
<a href="index.html" class="back-link" id="back-link">← 返回协议列表</a>
</div>
<div class="footer" id="footer">
<div class="company" id="footer-company">弥勒市朋普镇微风暴网络科技工作室</div>
<div id="footer-contact">📧 2821981550@qq.com &nbsp;|&nbsp; 📧 2572560133@qq.com &nbsp;|&nbsp; 📍 云南省昆明市西山区滇池度假区碧鸡街道车家壁513号</div>
<div style="margin-top: 8px;" id="footer-credit">统一社会信用代码92532526MA6PCX153W</div>
<div style="margin-top: 4px;" id="footer-icp">滇ICP备2022000863号-18A</div>
<div style="margin-top: 4px; color: var(--text-tertiary);">© 2026 Xianyan. All rights reserved.</div>
</div>
<script>
const DATA = {
zh: {
title: '免责声明及内容版权归属',
subtitle: '免责条款、内容版权与知识产权声明',
backLink: '← 返回协议列表',
company: '弥勒市朋普镇微风暴网络科技工作室',
contact: '📧 2821981550@qq.com &nbsp;|&nbsp; 📧 2572560133@qq.com &nbsp;|&nbsp; 📍 云南省昆明市西山区滇池度假区碧鸡街道车家壁513号',
credit: '统一社会信用代码92532526MA6PCX153W',
icp: '滇ICP备2022000863号-18A'
},
en: {
title: 'Disclaimer & Copyright',
subtitle: 'Disclaimers, content copyright and intellectual property',
backLink: '← Back to Agreement List',
company: 'Mile City Pengpu Town Weifengbao Network Technology Studio',
contact: '📧 2821981550@qq.com &nbsp;|&nbsp; 📧 2572560133@qq.com &nbsp;|&nbsp; 📍 Dianchi Resort, Xishan District, Kunming, Yunnan, China',
credit: 'Unified Social Credit Code: 92532526MA6PCX153W',
icp: 'ICP License: 滇ICP备2022000863号-18A'
}
};
function switchLang(lang) {
document.getElementById('content-zh').style.display = lang === 'zh' ? 'block' : 'none';
document.getElementById('content-en').style.display = lang === 'en' ? 'block' : 'none';
document.getElementById('header-title').textContent = DATA[lang].title;
document.getElementById('header-subtitle').textContent = DATA[lang].subtitle;
document.getElementById('back-link').textContent = DATA[lang].backLink;
document.getElementById('footer-company').textContent = DATA[lang].company;
document.getElementById('footer-contact').innerHTML = DATA[lang].contact;
document.getElementById('footer-credit').textContent = DATA[lang].credit;
document.getElementById('footer-icp').textContent = DATA[lang].icp;
document.getElementById('btn-zh').className = 'lang-btn' + (lang === 'zh' ? ' active' : '');
document.getElementById('btn-en').className = 'lang-btn' + (lang === 'en' ? ' active' : '');
document.documentElement.lang = lang === 'zh' ? 'zh-CN' : 'en';
const url = new URL(window.location);
if (lang === 'en') {
url.searchParams.set('lang', 'en');
} else {
url.searchParams.delete('lang');
}
history.replaceState(null, '', url);
}
(function() {
const params = new URLSearchParams(window.location.search);
const lang = params.get('lang');
if (lang === 'en') switchLang('en');
})();
</script>
</body>
</html>