From 8e0ca5a351aa5e26c1ee1a3aaf08690b35b876d9 Mon Sep 17 00:00:00 2001 From: yingying Date: Fri, 22 Nov 2024 10:16:03 +0800 Subject: [PATCH 01/10] feat: init --- client/.kiwi/en/app.ts | 2 ++ client/.kiwi/en/policy.md | 0 client/.kiwi/en/service.md | 0 client/.kiwi/ja/app.ts | 2 ++ client/.kiwi/ko/app.ts | 2 ++ client/.kiwi/zh-CN/app.ts | 2 ++ client/.kiwi/zh-CN/policy.md | 0 client/.kiwi/zh-CN/service.md | 0 client/.kiwi/zh-TW/app.ts | 2 ++ client/app/page.tsx | 14 ++++++++++++++ 10 files changed, 24 insertions(+) create mode 100644 client/.kiwi/en/policy.md create mode 100644 client/.kiwi/en/service.md create mode 100644 client/.kiwi/zh-CN/policy.md create mode 100644 client/.kiwi/zh-CN/service.md diff --git a/client/.kiwi/en/app.ts b/client/.kiwi/en/app.ts index 2eb70580..be1eb823 100644 --- a/client/.kiwi/en/app.ts +++ b/client/.kiwi/en/app.ts @@ -5,6 +5,8 @@ export default { xiangMuXiangXiXin: 'Please check the documentation for more details', chaKanGengDuo: 'Learn more', maYiKaiYuan: 'Ant Open Source', + service: 'Terms of Service', + policy: 'Privacy Policy', pETER: 'PeterCat Community', liaoJieGengDuo: 'Learn more', deYiYuQiangDa: diff --git a/client/.kiwi/en/policy.md b/client/.kiwi/en/policy.md new file mode 100644 index 00000000..e69de29b diff --git a/client/.kiwi/en/service.md b/client/.kiwi/en/service.md new file mode 100644 index 00000000..e69de29b diff --git a/client/.kiwi/ja/app.ts b/client/.kiwi/ja/app.ts index de084687..595c845d 100644 --- a/client/.kiwi/ja/app.ts +++ b/client/.kiwi/ja/app.ts @@ -5,6 +5,8 @@ export default { xiangMuXiangXiXin: 'プロジェクトの詳細情報はドキュメントでご確認ください', chaKanGengDuo: 'もっと見る', maYiKaiYuan: 'アントオープンソース', + service: '利用規約', + policy: 'プライバシーポリシー', pETER: 'PeterCat コミュニティ', liaoJieGengDuo: '詳細を知る', deYiYuQiangDa: diff --git a/client/.kiwi/ko/app.ts b/client/.kiwi/ko/app.ts index 3102e88b..da25ec40 100644 --- a/client/.kiwi/ko/app.ts +++ b/client/.kiwi/ko/app.ts @@ -5,6 +5,8 @@ export default { xiangMuXiangXiXin: '프로젝트의 자세한 정보는 문서를 참조하십시오.', chaKanGengDuo: '더 보기', maYiKaiYuan: '앤트 오픈소스', + service: '이용약관', + policy: '개인정보 처리방침', pETER: 'PeterCat 커뮤니티', liaoJieGengDuo: '더 알아보기', deYiYuQiangDa: diff --git a/client/.kiwi/zh-CN/app.ts b/client/.kiwi/zh-CN/app.ts index 608c96d0..c5bcdd7d 100644 --- a/client/.kiwi/zh-CN/app.ts +++ b/client/.kiwi/zh-CN/app.ts @@ -5,6 +5,8 @@ export default { xiangMuXiangXiXin: '项目详细信息请进文档查阅', chaKanGengDuo: '查看更多', maYiKaiYuan: '蚂蚁开源', + service: '服务条款', + policy: '隐私政策', pETER: 'PeterCat 社区', liaoJieGengDuo: '了解更多', deYiYuQiangDa: diff --git a/client/.kiwi/zh-CN/policy.md b/client/.kiwi/zh-CN/policy.md new file mode 100644 index 00000000..e69de29b diff --git a/client/.kiwi/zh-CN/service.md b/client/.kiwi/zh-CN/service.md new file mode 100644 index 00000000..e69de29b diff --git a/client/.kiwi/zh-TW/app.ts b/client/.kiwi/zh-TW/app.ts index a702fdaf..0457e752 100644 --- a/client/.kiwi/zh-TW/app.ts +++ b/client/.kiwi/zh-TW/app.ts @@ -5,6 +5,8 @@ export default { xiangMuXiangXiXin: '項目詳細信息請進文檔查閱', chaKanGengDuo: '查看更多', maYiKaiYuan: '螞蟻開源', + service: '服務條款', + policy: '隱私政策', pETER: 'PeterCat 社區', liaoJieGengDuo: '了解更多', deYiYuQiangDa: diff --git a/client/app/page.tsx b/client/app/page.tsx index 1c9d422f..2415044f 100644 --- a/client/app/page.tsx +++ b/client/app/page.tsx @@ -689,6 +689,20 @@ export default function Homepage() { > {I18N.app.page.maYiKaiYuan} + + {I18N.app.page.policy} + + + {I18N.app.page.service} + From ad04c9f6b0c5fe8b98a666117c69ee2018ce8afe Mon Sep 17 00:00:00 2001 From: yingying Date: Mon, 25 Nov 2024 00:19:04 +0800 Subject: [PATCH 02/10] fix: fix client build --- client/app/page.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/app/page.tsx b/client/app/page.tsx index 2415044f..b44175e5 100644 --- a/client/app/page.tsx +++ b/client/app/page.tsx @@ -1,5 +1,5 @@ 'use client'; - +import dynamic from 'next/dynamic'; import React from 'react'; import { RefObject, @@ -12,7 +12,7 @@ import { import I18N from '@/app/utils/I18N'; import Image from 'next/image'; import Fullpage, { fullpageOptions } from '@fullpage/react-fullpage'; -import Lottie, { LottieRefCurrentProps } from 'lottie-react'; +import { LottieRefCurrentProps } from 'lottie-react'; import LottieLightningCat from '@/app/assets/lightning_cat.json'; import LottieHelixCat from '@/app/assets/helix_cat.json'; import LottieOctopusCat from '@/app/assets/octopus_cat.json'; @@ -22,6 +22,8 @@ import StarIcon from '@/public/icons/StarIcon'; import LanguageSwitcher from '@/components/LangSwitcher'; import GitHubStars from '@/components/GitHubStars'; +const Lottie = dynamic(() => import('lottie-react'), { ssr: false }); + // play same video util refresh page const PC_EXAMPLE_VIDEO = [ 'https://gw.alipayobjects.com/v/huamei_ghirdt/afts/video/A*7lc3QKRnuYAAAAAAAAAAAAAADuH-AQ', From 02ce147a122221dde0303ac5640d0f3cc690401e Mon Sep 17 00:00:00 2001 From: yingying Date: Mon, 25 Nov 2024 01:32:45 +0800 Subject: [PATCH 03/10] feat: init policy --- client/.kiwi/en/components.ts | 1 - client/.kiwi/en/policy.md | 99 ++++++++++++++++++++++++++++++ client/.kiwi/zh-CN/policy.md | 108 +++++++++++++++++++++++++++++++++ client/app/layout.tsx | 4 +- client/app/page.tsx | 2 +- client/app/policy/page.tsx | 99 ++++++++++++++++++++++++++++++ client/components/Markdown.tsx | 18 ++++++ client/components/Navbar.tsx | 2 - client/package.json | 1 + client/types/declarations.d.ts | 4 ++ 10 files changed, 333 insertions(+), 5 deletions(-) create mode 100644 client/app/policy/page.tsx create mode 100644 client/components/Markdown.tsx create mode 100644 client/types/declarations.d.ts diff --git a/client/.kiwi/en/components.ts b/client/.kiwi/en/components.ts index dc62b11b..662d9b4f 100644 --- a/client/.kiwi/en/components.ts +++ b/client/.kiwi/en/components.ts @@ -80,7 +80,6 @@ export default { xuanZeJiQiRen: 'Select Bot', geiWoMenTiYi: 'Submit an Issue to us with your bot information', iSSUE: 'Issue Area', - cOMIN: 'coming soon, please go to GitHub first', shangJiaShiBaiE: 'Listing Failed ', shangJiaChengGong: 'Listing Successful', }, diff --git a/client/.kiwi/en/policy.md b/client/.kiwi/en/policy.md index e69de29b..cf719c4c 100644 --- a/client/.kiwi/en/policy.md +++ b/client/.kiwi/en/policy.md @@ -0,0 +1,99 @@ +# PeterCat Privacy Policy + +## Overview +This policy will help you understand the following: +1. How we collect personal information +2. How we use Cookies, Beacons, Proxies, and other technologies +3. How we protect personal information +4. How we use personal information +5. How we provide personal information externally +6. How you can exercise your rights regarding personal information +7. Declaration of third-party responsibilities +8. How we protect minors' information +9. Policy updates +10. Others + +The PeterCat Assistant application, services, websites, or other forms (the specific method subject to actual support of the product, collectively referred to as the "Services") are provided by Hangzhou Yunwu Technology Co., Ltd. (hereinafter referred to as "we" or "us"). We respect and protect your privacy. When you use the Services we provide, we will collect, use, provide externally, and protect your personal information in accordance with the PeterCat Privacy Policy (hereinafter referred to as "this Policy"). This Policy is closely related to your use of our Services. Please carefully read the content of this Policy, especially the bolded sections. By clicking to accept this Policy via the internet or other means, you are deemed to have agreed to the terms of this Policy. + +1. How We Collect Personal Information +We collect the following personal information related to you (hereinafter referred to as "personal information"): +1.1. Personal Information Provided by You +When you use our Services or communicate with us, we will collect your personal information, specifically as follows: +- Account Information: We will collect information related to the account you use to access our Services, including but not limited to your GitHub account, GitHub Token, name or nickname, location information, etc. +- Document Information: When you use the Services, we will collect and use the document information you provide, including but not limited to basic information about your configured GitHub repositories, Issue information, markdown files, and code information, etc. +- Communication Information: If you communicate with us, we will collect your contact information and any information content you send. +- Other Information: We may collect other information you may provide to us, such as your model token information. +1.2. Personal Information Automatically Received During Your Use of the Services +When you visit, use, or interact with the Services, we will receive the following information about your visit, use, or interaction: +- Settings Data: All preference settings and personalized settings data when you use the Services, including but not limited to your account settings, language settings, and other custom option settings. +- Device Information: Information about the device you use to access the Services. The information we collect depends on the type of device you use and its settings, including but not limited to your device's Internet Protocol address, browser type, browser version, the pages you visit on our Services, the time and date of your visit, time spent on the page, unique device identifiers, and other device information. +- Chat Records: After you use the Services to create an intelligent Q&A robot, all commands and chat data you or users interact with the intelligent Q&A robot. +1.3. Your Personal Information Collected by Us from Third Parties +- Public Information: We may collect your information from public information channels such as public GitHub repositories. +- Information from Third-Party services Linked to Our Services: When you integrate third-party services with our Services, we may collect information based on your settings for the third-party services, such as your model token and public key information. The information we receive depends on the settings and privacy policies of the third-party entity. We recommend that you carefully review the policies of the third-party entity to understand the information they share with us. + +Please understand that the Services we provide to you are constantly updated and evolving. If significant changes occur in the processing of your personal information due to Services updates, we will separately inform you of the scope, methods, and purposes of information collection through page prompts, interaction processes, or agreement terms. We will use, store, provide externally, and protect your information in accordance with this Policy and the corresponding user agreement; if you choose not to provide the aforementioned information, you may be unable to use certain services or some of them, but this will not affect your use of other services we provide. Additionally, third-party entities may provide services to you through us. When you enter Services pages operated by third-party entities, please note that the relevant services are provided to you by the third-party entity. If the third-party entity collects personal information from you, please carefully read the privacy policy or agreement terms of the third-party entity. + +2. How We Use Cookies, Beacons, Proxies, and Other Technologies +2.1.To provide you with a more seamless access experience, when you visit our website or use our Services, we may use small data files to identify you. This can help you save the step of repeatedly entering information or help you determine the security status of your account. These data files may be Cookies, Flash Cookies, or other local storage provided by your browser or associated applications (hereinafter referred to as "Cookies"). Please understand that some of our Services can only be implemented through the use of Cookies. If your browser or browser add-on services allow, you can modify your acceptance level for Cookies or reject relevant Cookies. The "Help" section of most browser toolbars will tell you how to prevent your browser from accepting new Cookies, how to have your browser notify you when you receive a new Cookie, or how to completely turn off Cookies. Additionally, you can close or delete Flash Cookies and similar data used by browser add-ons by changing the settings of the browser add-on or visiting the provider's webpage. However, this action may affect your secure access to our website and use of related services in some cases. +2.2.Our website may also contain electronic images (hereinafter referred to as "Web Beacons"). Using Web Beacons can help the website calculate users who browse webpages or access certain Cookies. We will collect information about your webpage browsing activities through Web Beacons, such as the address of the page you visited, the location of the referring page you previously visited, your browsing environment, and display settings. +2.3.If you use services provided by a third party rather than us through our website or app, to ensure your account security and provide you with a safer access experience, we may use dedicated network protocols and proxy technologies (hereinafter referred to as "Proxy Technologies"). Using Proxy Technologies can help identify known high-risk sites for us, reducing risks such as phishing and account leakage, while better safeguarding the common interests of you and the third party, and preventing illegal modification of normal Services content between you and the third party you wish to access, such as advertisement injection and illegal content modification caused by insecure routers, illegal base stations, etc. In this process, we may also obtain and store your device's IP address, hardware ID, and the location of the pages you visit. + +3. How We Protect Personal Information +3.1.We only store your personal information for the period necessary to provide you with services and within the period required by laws, regulations and supervisory authorities. After the expiration of the storage period, we will delete or anonymize your personal information in accordance with legal requirements. However, if it is technically difficult to delete the relevant personal information or there are other circumstances that are not suitable for deletion according to law, we will stop processing it except for storage and taking necessary security protection measures. +3.2.To safeguard your information security, after collecting your information, we will take various reasonable and necessary measures to protect it. For example, in the technology development environment, we only use de-identified information for statistical analysis; when providing external research reports, we will de-identify the information contained in the report. We will store de-identified information separately from information that can be used to re-identify individuals to ensure that individuals are not re-identified during subsequent processing of de-identified information. +3.3.Please ensure the safekeeping of your account login name and other identity elements. When you use the Services, we will identify your identity through your account login name and other identity elements. Once you disclose the aforementioned information, you may suffer losses and may be adversely affected. If you discover that your account login name and/or other identity elements may have been or have been disclosed, please immediately contact us so that we can take timely measures to avoid or reduce related losses. + +4. How We Use Personal Information +We may use your personal information for the following purposes: +- To fulfill the contract: To fulfill our obligations to provide you with our Services as agreed in the agreement we signed with you. +- To contact you: To contact you through email or other equivalent electronic communication methods when necessary or reasonable, such as pushing notifications, updates or information communications about the Services, security updates, etc. +- To manage your requests: To process and manage requests you make to us. +- To comply with legal provisions: We may process your personal information in accordance with applicable laws, regulations, or regulatory policies. +- Other purposes: We may use your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of our Services, and evaluating and improving our Services and your experience, etc. + +5. How We Provide Personal Information Externally +5.1. Sharing +5.1.1.Business Sharing +We commit to strict confidentiality of your information and only share it with partners such as AI model providers and data Services providers when necessary to provide you with services. +5.1.2.Collaboration Sharing +Based on your account settings, we may share your personal information with other users of the Services and the public. Please be aware that any information you share in a collaborative context may become publicly accessible. When you share personal information with other users or interact in public areas, such information may be viewed by all users and may be publicly distributed externally. +5.1.3.Services Integration +When you integrate third-party services with our Services, we may share your personal information based on your instructions. You are responsible for the data you instruct us to share with third-party services. +5.1.4.Complaint Handling +When you file a complaint against someone else or are complained against, to protect the legitimate rights and interests of you and others, we may provide relevant regulatory authorities with your account information, contact details, and the content of the complaint for timely resolution of disputes, except where such provision is expressly prohibited by laws and regulations. +5.2. Transfer +We will not transfer your personal information to any company, organization, or individual, except in the following cases: +- With your explicit consent in advance; +- According to laws, regulations, or mandatory administrative or judicial requirements; +- In cases involving asset transfers, acquisitions, mergers, reorganizations, or bankruptcy liquidations, if personal information transfer is involved, we will inform you of the relevant situation and require the new company or organization holding your personal information to continue to be bound by this Policy. If the purpose or method of processing personal information is changed, we will require that company or organization to obtain your explicit consent anew. +5.3. Public Disclosure +We may only publicly disclose your personal information in the following circumstances: +- Based on your needs, disclose the specified personal information in the disclosure manner you explicitly agree to; +- When we are required by laws, regulations, or mandatory administrative law enforcement or judicial requirements to provide your personal information, we may publicly disclose your personal information according to the required personal information type and disclosure manner. When receiving requests for such disclosure in compliance with laws and regulations, we will require the presentation of corresponding legal documents, such as subpoenas or assistance investigation letters. +Except for the above situations, we will not publicly disclose your information in principle. If public disclosure is necessary, we will inform you of the purpose of the disclosure, the type of information to be disclosed and the sensitive information that may be involved, and obtain your explicit consent. +5.4. Entrusted Processing +To improve information processing efficiency, reduce costs, or enhance accuracy, we may entrust capable affiliated companies or other professional institutions to process user information on our behalf. However, we will require the entrusted company to comply with strict confidentiality obligations and take effective confidentiality measures through written agreements, etc., and prohibit it from using this information for purposes not authorized by you. When the entrustment relationship is terminated, we will supervise the entrusted institution to no longer store personal information. + +6. How You Can Exercise Your Rights Regarding Personal Information +6.1 We will adopt appropriate technical means to ensure that you can access, copy, supplement, correct, and delete your personal information. You can operate autonomously according to the prompts on the relevant page of the Services or contact us through our customer service email. +6.2 When you meet the agreed Services closure conditions and close the Services, we will delete or anonymize all personal information in your account in accordance with legal requirements and the methods described in "How We Protect Personal Information" in this Policy. +6.3 If you find that our collection and use of your personal information violates laws and regulations or violates the agreement with you, you can contact us through our customer service email. +6.4 Despite the above agreements, we may not be able to respond to your requests when we have legal obligations or legal grounds according to relevant laws, regulations, and regulatory requirements, such as when there is sufficient evidence indicating subjective malice or abuse of rights on your part, or when responding to your request would seriously harm the legitimate rights and interests of other individuals or organizations. +6.5 When we cooperate with third-party institutions to provide you with services, the third-party institutions will inform you of relevant information about personal information processors according to their published privacy policies or other terms you have signed (if any) and strictly protect your information and inform you of ways to exercise your rights regarding personal information in accordance with applicable requirements. Please carefully read the relevant policies and terms; if you have any questions, you can consult the third-party institution based on the Services you use. + +7. Declaration of Third-Party Responsibility +Please note that third-party website operators you visit, third-party services accessed through us, and third parties that receive your personal information through us may have their own privacy protection policies. When you view webpages created by third parties or use applications developed by third parties, these third parties may place their own cookies or web beacons, which are not under our control and whose use is not bound by this Policy. We recommend that you contact them for details about their privacy policies. If you find that webpages created by these third parties or applications developed by third parties pose risks, we recommend that you terminate the relevant operations to protect your legal rights and interests. We cannot control the content or privacy policy of any third-party website or Services, and we do not assume any responsibility for any third-party website or Services. + +8. How We Protect Minors' Information +8.1. We attach great importance to the protection of minors' personal information. We expect minors to use our Services under the guidance of their parents or guardians. We will protect the confidentiality and security of minors' personal information in accordance with relevant national laws and regulations. +8.2. If you are a minor, we recommend that you ask your parents or guardians to read this Policy and use the Services or provide us with your information only with the consent of your parents or guardians. In cases where your information is collected with the consent of your parents or guardians, we will only use or disclose this information when permitted by law, with the explicit consent of your parents or guardians, or when necessary to protect your rights and interests. If your guardian disagrees with your use of the Services or provision of information in accordance with this Policy, please immediately terminate your use of the Services and notify us in a timely manner so that we can take appropriate measures. +8.3. If you are the parent or guardian of a minor, please contact us through our customer service email when you have questions about the processing of personal information of the minor you are protecting. +8.4. Special Note: Our Services targets do not include individuals under 14 years old. We will not intentionally collect personal information of such individuals. If you find that an individual under 14 years old has provided personal information to us, please notify us through our customer service email. + +9. Policy Updates +To further improve user experience, we will continuously update our Services, providing updates such as version upgrades, feature upgrades, and rule upgrades. This Policy may also be updated accordingly. We will notify you of updates to this Policy through announcements, emails, or pop-up windows (collectively referred to as "Notifications"), and the updated content will take effect on the specified date in the aforementioned Notifications. If you disagree with the updated terms, you have the right to stop using the relevant services; if you continue to use our Services, it means that you are willing to accept the changed policy terms. + +10. Others +10.1.If you have any questions about this Policy, you can contact us through our customer service email (petercat.assistant@gmail.com). +10.2.This Policy is prepared and signed in Chinese. Any other language version of this Policy is provided for reference only. If there is any inconsistency between the other language version and the Chinese version, the Chinese version shall prevail. diff --git a/client/.kiwi/zh-CN/policy.md b/client/.kiwi/zh-CN/policy.md index e69de29b..ae7bbf4b 100644 --- a/client/.kiwi/zh-CN/policy.md +++ b/client/.kiwi/zh-CN/policy.md @@ -0,0 +1,108 @@ +# PeterCat隐私政策 + +## 概述 + +本政策将帮助您了解以下内容: + +一、我们如何收集个人信息 +二、我们如何使用Cookie、Beacon、Proxy等技术 +三、我们如何保护个人信息 +四、我们如何使用个人信息 +五、我们如何对外提供个人信息 +六、您如何实现您的个人信息权利 +七、对第三方责任的声明 +八、我们如何保护未成年人的信息 +九、本政策更新 +十、其他 + +PeterCat智能答疑助手应用、服务、网页或其他形态方式(具体方式以产品实际支持为准,以下统称 “服务”)由杭州云坞科技有限公司(以下称“我们”)提供。我们尊重并保护您的隐私。在您使用我们提供的服务时,我们将按照《PeterCat隐私政策》(以下简称“本政策”)收集、使用、对外提供及保护您的个人信息。本政策与您使用我们的服务关系紧密,请您仔细阅读本政策内容,尤其是字体加粗部分。若您通过网络页面点击或其他方式选择接受本政策的,即视为您已同意本政策的约定内容。 + +### 一、我们如何收集个人信息 +我们会收集与您相关的以下个人信息(以下简称“个人信息”): + +#### (一)您提供的个人信息 +在您使用我们的服务或与我们进行通信时,我们会收集您的个人信息,具体如下: +1、账户信息:我们会收集与您使用我们的服务的账户相关的信息,包括但不限于您的GitHub账号、GitHub Token、姓名或昵称、位置信息等。 +2、文档信息:在您使用服务时,我们会收集并使用您提供的文档信息,包括但不限于您配置的GitHub仓库的基本信息、Issue 信息、markdown文件和代码信息等。 +3、通信信息:如果您与我们通信,我们会收集您的联系信息以及您发送的任何信息内容。 +4、其他信息:我们会收集您可能提供给我们的其他信息,如您的模型token信息等。 + +#### (二)您使用服务期间我们自动接收的个人信息 +在您访问、使用服务或与服务互动时,我们会收到有关您的访问、使用或互动的以下信息: +1、设置数据:您使用服务时的所有首选项设置和个性化设置数据,包括但不限于您的账户设置、语言设置和其他自定义选项设置。 +2、设备信息:您使用服务的设备的信息,我们所收集的信息取决于您使用的设备类型及其设置,包括但不限于您设备的互联网协议地址、浏览器类型、浏览器版本、您访问我们服务的页面、您访问的时间和日期、在页面上停留的时间、唯一设备标识符和其他设备信息。 +3、聊天记录:您使用服务创建智能答疑机器人后,您或用户与智能答疑机器人交互的所有命令和聊天数据。 + +#### (三)我们从第三方收集的您的个人信息 +1、公开信息:我们可能会从公开的 GitHub 仓库等公开信息渠道收集您的信息。 +2、链接到我们服务的第三方服务信息:当您将第三方服务与我们的服务集成时,我们可能会收集基于您对第三方服务进行的设置的信息,如您的模型token和公钥信息等。我们收到的信息取决于第三方主体的设置和隐私政策,建议您仔细查看第三方主体的政策内容以了解第三方与我们共享的信息。 + +请您理解,我们向您提供的服务是不断更新和发展的。如因服务更新导致您的个人信息处理情况发生重要变更的,我们会通过页面提示、交互流程、协议约定的方式另行向您说明信息收集的范围、方式与目的。我们会按照本政策以及相应的用户协议约定使用、存储、对外提供及保护您的信息;如您选择不提供前述信息,您可能无法使用某项或某部分服务,但不影响您使用我们提供的其他服务。此外,第三方主体可能会通过我们向您提供服务。当您进入第三方主体运营的服务页面时,请注意相关服务由第三方主体向您提供。涉及到第三方主体向您收集个人信息的,请您仔细阅读第三方主体的隐私政策或协议约定。 + +### 二、 我们如何使用Cookie、Beacon、Proxy等技术 +1、为使您获得更轻松的访问体验,您访问我们的网站或使用各项服务时,我们可能会通过小型数据文件识别您的身份,这么做可帮您省去重复输入信息的步骤,或者帮助判断您的账号安全状态。这些数据文件可能是Cookie、Flash Cookie、您的浏览器或关联应用程序提供的其他本地存储(以下简称“Cookie”)。请您理解,我们的某些服务只能通过使用Cookie才可得到实现。如您的浏览器或浏览器附加服务允许,您可以修改对Cookie的接受程度或者拒绝相关Cookie。多数浏览器工具条中的“帮助”部分会告诉您怎样防止您的浏览器接受新的Cookie,怎样让您的浏览器在您收到一条新Cookie时通知您或者怎样彻底关闭Cookie。此外,您可以通过改变浏览器附加程序的设置,或通过访问提供商的网页,来关闭或删除浏览器附加程序使用的Flash Cookie及类似数据。但这一举动在某些情况下可能会影响您安全访问我们的网站和使用相关服务。 +2、我们网站上还可能包含一些电子图像(以下简称 “网络Beacon”),使用网络Beacon可以帮助网站计算浏览网页的用户或访问某些Cookie,我们会通过网络Beacon收集您浏览网页活动的信息,例如:您访问的页面地址、您先前访问的援引页面的位置、您的浏览环境以及显示设定。 +3、如您通过我们的网站或APP,使用了由第三方而非我们提供的服务时,为尽力确保您的账号安全,使您获得更安全的访问体验,我们可能会使用专用的网络协议及代理技术(以下简称 “Proxy技术”)。使用Proxy技术,可以帮助您识别到我们已知的高风险站点,减少由此引起的钓鱼、账号泄露等风险,同时更有利于保障您和第三方的共同权益,阻止不法分子篡改您和您希望访问的第三方之间正常服务内容,例如:不安全路由器、非法基站等引起的广告注入、非法内容篡改等。在此过程中,我们也可能会获得和保存您设备的IP地址、硬件ID以及您访问的页面位置。 + +### 三、 我们如何保护个人信息 +1、我们仅在为您提供服务目的所必需期间和法律法规及监管规定的期限内保存您的个人信息,保存期限届满之后,我们将按照法律要求删除或匿名化处理您的个人信息,但如删除相关个人信息从技术上难以实现或存在其他依法不适宜删除的情形,我们将停止除存储和采取必要的安全保护措施之外的处理。 +2、为了保障您的信息安全,我们在收集您的信息后,将采取各种合理必要的措施保护您的信息。例如,在技术开发环境当中,我们仅使用经过去标识化处理的信息进行统计分析;对外提供研究报告时,我们将对报告中所包含的信息进行去标识化处理。我们会将去标识化后的信息与可用于恢复识别个人的信息分开存储,确保在针对去标识化信息的后续处理中不重新识别个人。 +3、请您务必妥善保管好您的账号登录名及其他身份要素。您在使用服务时,我们会通过您的账号登录名及其他身份要素来识别您的身份。一旦您泄漏了前述信息,您可能会蒙受损失,并可能对您产生不利。如您发现账号登录名及/或其他身份要素可能或已经泄露时,请您立即和我们取得联系,以便我们及时采取相应措施以避免或降低相关损失。 + +### 四、 我们如何使用个人信息 +我们可能会将您的个人信息用于以下目的: +1、为履行合同:为履行我们与您签署的协议里约定向您提供我们的服务的义务。 +2、联系您:在必要或合理的情况下通过电子邮件或其他等效的电子通信方式联系您,例如推送通知,有关服务的更新或信息通信、安全更新等。 +3、管理您的请求:处理并管理您向我们提出的请求。 +4、遵守法律规定:我们可能会根据适用法律法规或监管政策的要求处理您的个人信息。 +5、其他目的:我们可能会将您的信息用于其他目的,例如数据分析、识别使用趋势、确定我们服务的有效性以及评估和改进我们的服务和您的体验等。 + +### 五、 我们如何对外提供个人信息 + +#### (一)共享 +1、业务共享 +我们承诺对您的信息进行严格保密,我们仅在为您提供服务所必要的情况下与AI模型提供商、数据服务商等合作伙伴共享您的信息。 +2、协作共享 +根据您的账户设置,我们可能会与服务的其他用户和公众共享您的个人信息。请您注意,您在协作情境下共享的任何信息都有可能变为可供公众访问的信息。您与其他用户共享个人信息或在公共区域进行其他互动时,此类信息可能会被所有用户查看,并可能在外部公开分发。 +3、服务集成 +当您将第三方服务与我们的服务集成时,我们可能根据您的指示共享您的个人信息。 您对指示我们与第三方服务共享的数据负责。 +4、投诉处理 +当您投诉他人或被他人投诉时,为了保护您及他人的合法权益,我们可能会将您的账户信息、联系方式、投诉相关内容提供给相关监管机关,以便及时解决投诉纠纷,但法律法规明确禁止提供的除外。 + +#### (二)转移 +我们不会将您的个人信息转移给任何公司、组织和个人,但以下情况除外: +1、事先获得您的明确同意; +2、根据法律法规或强制性的行政或司法要求; +3、在涉及资产转让、收购、兼并、重组或破产清算时,如涉及到个人信息转移,我们会向您告知有关情况,并要求新的持有您个人信息的公司、组织继续受本政策的约束。如变更个人信息的处理目的、处理方式时,我们将要求该公司、组织重新取得您的明确同意。 + +#### (三)公开披露 +我们仅会在以下情况下,才可能会公开披露您的个人信息: +1、根据您的需求,在您明确同意的披露方式下披露您所指定的个人信息; +2、根据法律法规或强制性的行政执法或司法要求所必须提供您个人信息的情况下,我们可能会依据所要求的个人信息类型和披露方式公开披露您的个人信息。在符合法律法规的前提下,当我们收到上述披露信息的请求时,我们会要求必须出具与之相应的法律文件,如传票或协助调查函。 +除上述情形外,原则上我们不会将您的信息进行公开披露。如确需公开披露时,我们会向您告知公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的明确同意。 + +#### (四)委托处理 +为了提升信息处理效率,降低信息处理成本,或提高信息处理准确性,我们可能会委托有能力的关联公司或其他专业机构代表我们来处理用户信息,但我们会通过书面协议等方式要求受托公司遵守严格的保密义务及采取有效的保密措施,禁止其将这些信息用于未经您授权的用途。在委托关系解除时,我们会监督受托机构不再保存个人信息。 + +### 六、 您如何实现您的个人信息权利 +1、我们将采取适当的技术手段,保障您可以查阅、复制、补充、更正和删除您的个人信息。您可以根据相关服务页面提示自助操作,也可以通过我们的客服邮箱联系我们。 +2、当您符合约定的服务关闭条件并关闭服务后,我们将按照法律要求和本政策中“我们如何保护个人信息”所述的方式删除或匿名化处理您该账号内的所有个人信息。 +3、如您发现我们收集、使用您个人信息的行为,违反了法律法规规定或违反了与您的约定,您可通过我们的客服邮箱联系我们。 +4、尽管有上述约定,但按照相关法律法规及监管机构要求,在我们有法律义务或合法依据时我们可能无法响应您的请求,如有充分证据表明您存在主观恶意或滥用权利、或响应您的请求将导致其他个人、组织的合法权益受到严重损害等。 +5、当我们与第三方机构合作向您提供服务时,第三方机构将按照其发布的隐私权政策或与您签署的其他条款(如有)告知您个人信息处理者的相关信息,并按照适用的要求严格保护您的信息、告知您行使个人信息权利的方式。请您仔细阅读相关政策、条款;如有疑问,可以根据您所使用的服务咨询该第三方机构。 + +### 七、 对第三方责任的声明 +请您注意,您访问的第三方网站经营者、通过我们接入的第三方服务和通过我们接收您的个人信息的第三方可能有自己的隐私权保护政策;当您查看第三方创建的网页或使用第三方开发的应用程序时,这些第三方可能会放置他们自己的Cookie或网络Beacon,这些Cookie或网络Beacon不受我们的控制,且它们的使用不受本政策的约束,建议您与他们联系以获得关于他们的隐私权政策的详细情况。如您发现这些第三方创建的网页或第三方开发的应用程序存在风险时,建议您终止相关操作以保护您的合法权益。我们无法控制任何第三方网站或服务的内容、隐私政策,也不对第三方网站或服务承担任何责任。 + +### 八、 我们如何保护未成年人的信息 +1、我们非常重视对未成年人个人信息的保护。我们期望未成年人在父母或监护人指导下使用各项服务。我们将根据国家相关法律法规的规定保护未成年人的个人信息的保密性及安全性。 +2、如您为未成年人,建议请您的父母或监护人阅读本政策,并在征得您父母或监护人同意的前提下使用各项服务或向我们提供您的信息。对于经父母或监护人同意而收集您的信息的情况,我们只会在法律允许、父母或监护人明确同意或者保护您的权益所必要的情况下使用或公开披露此信息。如您的监护人不同意您按照本政策使用服务或提供信息,请您立即终止使用服务并及时通知我们,以便我们采取相应的措施。 +3、如您为未成年人的父母或监护人,当您对您所监护的未成年人的个人信息处理存在疑问时,请通过我们的客服邮箱联系我们。 +4、特别提示:我们的服务对象不包含未满14周岁的个人。我们不会有意收集此类个人的个人信息。 如果您发现有未满14周岁的个人向我们提供了个人信息,请通过我们的客服邮箱通知我们。 + +### 九、 本政策更新 +为了进一步改善用户体验,我们将会持续更新服务,为用户提供版本升级、功能升级、规则升级等服务和内容的更新,本政策也可能会随之更新。我们会以公告、邮件或弹窗等方式(以下统称“通知”)就本政策的更新向您进行告知,更新内容将在前述通知指定日期开始生效。若您不同意更新后的条款内容,您有权停止使用相关服务;如您继续使用本服务,表示您愿意接受变更后的政策条款。 + +### 十、 其他 +1、如果您对本隐私政策有任何疑问,您可以通过我们的客服邮箱 联系我们。 +2、本政策以中文编制并签署。本政策的任何其他语言版本仅为参考而提供。如果其他语言版本与中文版本之间存在不一致之处,以本中文版本为准。 diff --git a/client/app/layout.tsx b/client/app/layout.tsx index 72221698..b353186e 100644 --- a/client/app/layout.tsx +++ b/client/app/layout.tsx @@ -32,7 +32,9 @@ export default function RootLayout({ - {pathname === '/' ? ( + {pathname === '/' || + pathname === '/policy' || + pathname === '/terms' ? ( children ) : (
diff --git a/client/app/page.tsx b/client/app/page.tsx index b44175e5..48b1577b 100644 --- a/client/app/page.tsx +++ b/client/app/page.tsx @@ -693,7 +693,7 @@ export default function Homepage() { {I18N.app.page.policy} diff --git a/client/app/policy/page.tsx b/client/app/policy/page.tsx new file mode 100644 index 00000000..2848310b --- /dev/null +++ b/client/app/policy/page.tsx @@ -0,0 +1,99 @@ +'use client'; + +import React, { useState, Suspense, useEffect, useMemo } from 'react'; +import Image from 'next/image'; +import GitHubIcon from '@/public/icons/GitHubIcon'; +import StarIcon from '@/public/icons/StarIcon'; +import LanguageSwitcher from '@/components/LangSwitcher'; +import Markdown from '@/components/Markdown'; +import { useGlobal } from '@/app/contexts/GlobalContext'; +import GitHubStars from '@/components/GitHubStars'; +import { ThemeProvider } from 'antd-style'; + +import PolicyZhCN from '../../.kiwi/zh-CN/policy.md'; +import PolicyEN from '../../.kiwi/en/policy.md'; + +export default function Policy() { + const { language } = useGlobal(); + const [showMobileNav, setShowMobileNav] = useState(false); + const [stars, setStars] = useState(null); + useEffect(() => { + async function getStars() { + const starsData = await GitHubStars(); + setStars(starsData); + } + + if (stars === null) { + getStars(); + } + }, [stars]); + const markdownContent = useMemo(() => { + switch (language) { + case 'zh-CN': + return PolicyZhCN; + case 'en': + return PolicyEN; + default: + return PolicyEN; + } + }, [language]); + return ( + + ); +} diff --git a/client/components/Markdown.tsx b/client/components/Markdown.tsx new file mode 100644 index 00000000..dfa0d90e --- /dev/null +++ b/client/components/Markdown.tsx @@ -0,0 +1,18 @@ +'use client'; +import React from 'react'; +import { Markdown as AntMarkdown } from '@ant-design/pro-editor'; + +const Markdown: React.FC<{ markdownContent: string }> = ({ + markdownContent, +}) => { + return ( + + {markdownContent} + + ); +}; + +export default Markdown; diff --git a/client/components/Navbar.tsx b/client/components/Navbar.tsx index 3eee9939..dab2ca71 100644 --- a/client/components/Navbar.tsx +++ b/client/components/Navbar.tsx @@ -9,7 +9,6 @@ import { ShopIcon } from '@/public/icons/ShopIcon'; import { SpaceIcon } from '@/public/icons/SpaceIcon'; import { SearchIcon } from '@/public/icons/SearchIcon'; import { AddIcon } from '@/public/icons/AddIcon'; -import PublishBotEntity from './PublishBotEntity'; import { useGlobal } from '@/app/contexts/GlobalContext'; import LanguageSwitcher from '@/components/LangSwitcher'; @@ -116,7 +115,6 @@ export function Navbar() {
{pathname !== '/' && } - {!pathname.includes('/factory/list') && } {pathname.includes('/factory/list') && (