{
  "version": "1.3",
  "updated": "2026-10-23",
  "languages": {
    "zh-Hans": {
      "privacy": {
        "title": "雨水提醒隐私政策",
        "intro": "雨水提醒需要由提醒服务持续连接雨课堂并向你的设备推送消息。因此，它会在服务端处理账号授权、课程与通知数据。请在连接和授权前了解以下范围。",
        "sections": [
          {
            "title": "1. 适用范围与维护者",
            "paragraphs": [
              "雨水提醒是 Sparkle 旗下的独立课堂动态提醒 Web App，由唐梓耀 / AdrianSparkle、丁铭 / EliasSparkle 共同创作和维护。本政策适用于 Sparkle 提供的雨水提醒实例、其设备连接、雨课堂扫码授权、课堂监测与 Web Push 通知。 本政策也覆盖课堂进入状态查询及由你主动发起的好友共学邀请。",
              "它不是雨课堂官方产品，也不代表学校、教师、雨课堂、微信、Apple 或浏览器厂商。你使用这些独立服务时，还需阅读相应服务的隐私规则。其他人自行部署的实例由实际运营者另行说明，不当然适用本实例的托管地点和管理安排。"
            ]
          },
          {
            "title": "2. 账号资料、课程与登录凭证",
            "paragraphs": [
              "获取官方登录二维码时，服务会自动建立设备连接，无需连接码。通过官方二维码确认登录后，服务接收雨课堂返回的账号 ID、姓名或昵称、学校及学号（以平台实际返回为准），以及所听课程、课堂 ID、名称、教师与相关组织标识，用于识别你的账号和展示课程。",
              "服务还会在服务端保存官方登录 Cookie、会话授权与必要的课堂令牌，以便在你关闭页面后继续查询。我们不要求、也不存储你的雨课堂或微信密码。Cookie 和令牌能够代表登录权限，属于需要特别保护的凭证；扫码不是仅在手机本地保存授权。"
            ]
          },
          {
            "title": "3. 课堂动态及其他人的信息",
            "paragraphs": [
              "服务查询正在上课状态、必要的学习日志及签到方式，并在你启用课内提醒后接收官方课堂事件流。保留字段包括课程与课堂名称、事件类型、事件标识、平台时间或发现时间及通知所需摘要。",
              "随机点名事件可能包含教师向课堂公布的被点名者姓名和学号；这些内容可能存入加密事件记录并出现在通知正文中，可能涉及同班其他人。请谨慎使用锁屏预览及共享设备，不要将这些内容继续公开传播。服务不以这些数据建立学生画像。",
              "当前实现不将题目正文或答案作为持久化提醒内容保存，不代答题、不响应点名或抢答，也不获取设备定位。普通签到可能按启用的课内提醒自动发送进课请求；你也可为确认未进入的课堂主动发起好友共学，由好友提交匹配课堂的二维码文本，服务使用邀请人的官方会话处理已核实的普通进课流程。这些请求可能改变官方出勤或进入状态，具体边界见服务条款。"
            ]
          },
          {
            "title": "4. 设备连接、通知与技术信息",
            "paragraphs": [
              "我们处理随机设备标识、连接会话的哈希、设备名称、创建时间、最近打开时间、30 天有效期、账号关联及各项提醒开关。默认设备类别根据浏览器 User-Agent 判断；当前界面不提供设备改名或设备列表，相关数据与管理接口仍保留。",
              "开启通知时，浏览器提供推送端点、p256dh 公钥及 auth 密钥；服务保存订阅，用于向该设备推送。我们还保存发送次数、接受或失败状态、时间和随机回执的哈希，以排错、去重和确认系统处理情况。回执不证明你本人看见、听见或阅读了通知。",
              "提供网络服务必然处理 IP 地址、请求头、来源、连接时间和错误信息；IP 也用于内存中的防滥用限流。当前应用没有广告或行为分析 SDK，不以这些信息进行跨站跟踪或出售个人信息。基础设施和通信提供方可以依其自身规则处理技术日志。"
            ]
          },
          {
            "title": "5. 处理目的与授权边界",
            "paragraphs": [
              "上述信息用于建立设备连接、识别你授权的账号、查询和展示课堂、推送所选事件、维护会话、迁移入口、保护安全、排障和灾难恢复。账号与课程不是用于广告、商业画像或 AI 训练。拒绝扫码授权则无法读取课程；拒绝通知权限仍可在已登录页面查看信息，但不能向该设备发送系统通知。",
              "敏感凭证、其他学生信息以及跨地区处理应按适用法律履行必要的告知、合法性基础及同意程序。本政策说明实际数据流，不将浏览本页、获取登录二维码或扫描二维码一概视为已经完成所有依法需要的单独同意。你不应授权自己无权提供的账号或资料。"
            ]
          },
          {
            "title": "6. Cookie、浏览器存储与权限",
            "paragraphs": [
              "设备连接使用 rain_session Cookie。服务端保存其哈希；在 HTTPS 下该 Cookie 带有 Secure、HttpOnly 及 SameSite=Strict 属性，最长随设备连接维持 30 天，续期会重新设置。它用于认证，不是广告 Cookie；退出雨课堂账号不等于自动清除此设备连接 Cookie。",
              "设备通知由浏览器权限管理。共同学习及邀请协助页只在你主动启动扫描并授权后使用相机，也可选择图片；二维码在浏览器识别，仅提交识别文本，不上传视频或所选图片。相机变焦按设备能力使用硬件或数字缩放；不申请麦克风、定位或通讯录。"
            ]
          },
          {
            "title": "7. 接收方、处理位置与跨地区传递",
            "paragraphs": [
              "Sparkle 当前提供的实例运行在腾讯云中国香港节点。若你位于中国内地或其他地区，提交给该实例的账号资料、Cookie、课程、课堂事件及设备订阅会传到香港处理和保存。授权请求还会与雨课堂官方接口及课堂事件服务通信。 持有有效共学邀请的人可读取邀请人的显示名称、课堂名称、邀请有效期和处理状态，并可为指定课堂提交进课二维码。二维码文本经香港服务转交雨课堂官方接口；好友不接收邀请人的 Cookie、密码或完整课程列表。请只向可信且获准协助的人分享邀请链接。",
              "Web Push 根据浏览器使用 Apple、Google、Mozilla 或 Microsoft 等推送基础设施，相关服务可能位于其他国家或地区；服务会向订阅端点发送加密推送载荷及必要路由信息，浏览器和操作系统负责呈现。通知明文最终可出现在设备上，推送加密不表示整个提醒服务端无法读取。",
              "当前域名由 Cloudflare 提供注册与 DNS 服务，按现有配置业务流量不经过其 CDN 代理；DNS 服务仍可能处理解析所需信息。我们不出售或出租个人信息。依法披露、必要的安全处置或你明确指示的其他传递，应限于相应必要范围。"
            ]
          },
          {
            "title": "8. 加密与安全措施的限度",
            "paragraphs": [
              "账号资料、课程缓存、登录 Cookie、课堂凭证、事件载荷和推送订阅以 AES-256-GCM 加密保存。账号与设备标识、关联关系、开关、时间、状态及其他运行字段并非整库逐项加密。数据库与主密钥由同一服务主机管理，因此这不是能抵御服务器完全失陷的端到端加密。",
              "服务采用 HTTPS、会话哈希、来源校验、请求限流及限定推送端点等措施。管理者进行授权运维时可能具备解密所需权限。若发生个人信息安全事件，我们会采取补救措施，并依适用法律向受影响者和有关机关通知；通知会说明所涉信息、可能影响、处置措施及联系途径。我们不承诺绝对安全；请只在你信任的设备上连接，不转交连接码、Cookie、迁移链接或系统通知。"
            ]
          },
          {
            "title": "9. 在线数据的保存期限",
            "paragraphs": [
              "设备连接自创建或手动续期起为 30 天；到期后不能继续用该会话访问。官方登录失效会暂停相关监测。当账号最后一个仍有效的关联设备退出、被撤销或到期后，服务会在相应退出处理或定期维护中清空该账号的登录 Cookie 及已保存课堂凭证，并暂停连接。",
              "已结束课堂及其提醒记录、非当前课堂的历史事件和模拟推送记录，按代码中的 90 天阈值在定期维护时清理；活跃课堂及受保护的相关记录可能超过该期限。迁移凭证一次有效、5 分钟到期。 共学邀请使用随机令牌；服务以哈希索引在进程内存中保存邀请人显示名称、指定课堂、约 30 分钟有效期、尝试次数及结果状态。过期后不能继续使用，重启后不保留邀请；过期内存项在后续创建邀请时清理，不代表到期瞬间逐字节擦除。识别出的二维码文本用于当次处理，当前共学模块不将相机画面、所选图片或二维码文本写入数据库。官方平台上的进课记录及基础设施技术日志按各自实际规则处理。",
              "当前实现没有为所有账号档案、课程缓存、设备元数据、状态字段及备份设置统一的自动删除期限。30 天连接或 90 天历史规则不等于整账号在该时点彻底删除；如不再使用并希望删除其余数据，请向维护者提出请求。没有自动清理机制不等于获得无限期保留的授权；处理目的不再必要或依法应当删除时，我们会依法处理，并核对需人工清理的范围。"
            ]
          },
          {
            "title": "10. 备份、支持资料与清理范围",
            "paragraphs": [
              "为恢复服务，备份任务保存数据库快照、服务密钥、推送密钥及来源配置。导出备份采用随机 AES-256-GCM 数据密钥与独立 RSA-OAEP 公钥封装，解密私钥另行保管；但云端还可能保留受文件权限保护的 SQLite 快照，且同机运行数据可由主机权限访问。备份的保护程度因此取决于副本类型及存放位置。",
              "现有备份流程未设置统一自动过期时间，离线导出副本也可能继续保留。删除在线数据不立即清除历史备份。提出删除请求时可要求说明剩余备份、保留理由及处置安排；需人工核实，不能承诺尚未实现的一键即时抹除。支持对话和你主动提交的附件按处理事项的必要范围保留，不用于广告或训练。"
            ]
          },
          {
            "title": "11. 关闭、退出、撤销与删除请求",
            "paragraphs": [
              "你可分别关闭五类提醒、在系统中撤销通知、退出本设备的雨课堂登录，或不再续期连接。当前界面不提供设备列表与撤销入口；需要核对或撤销其他设备时，可联系维护者。关闭某个开关仅停止该设备该类提醒；其他设备开启时账号仍可能继续监测。退出会解绑本设备并清除其服务端推送订阅，浏览器本身的授权或订阅状态可能仍需在系统设置中管理。",
              "在最后一个有效关联设备退出后释放登录凭证，不代表账号档案、历史、其他设备元数据或备份全部删除。当前产品没有整账号自动删除按钮。你可联系维护者申请了解、访问、复制、更正、删除、限制处理、撤回授权或处理其他人的信息异议。"
            ]
          },
          {
            "title": "12. 请求核实、法定义务与救济",
            "paragraphs": [
              "我们会以与风险相称的方式确认请求与账号的关系，仅索取处理该请求所必要的信息；不要发送登录 Cookie、密码或迁移凭证。请求应依法及时处理。因技术隔离、备份、争议或法定保留义务不能立即全部处理时，应说明原因、范围及后续安排；法律要求停止其他处理时，保留的数据仅用于必要存储与安全保护，不恢复用于日常监测。备份恢复需核对已经处理的权利请求。产品现有按钮不限制法律赋予的权利。你可向有管辖权的监管机关投诉。"
            ]
          },
          {
            "title": "13. 未成年人及学习场景",
            "paragraphs": [
              "本服务面向能够合法授权其账号与设备的使用者。未成年人应在监护人及适用学校规则允许的范围内使用；不面向未满 14 周岁儿童主动提供账号连接服务。当前没有年龄核验机制；如发现未经所需授权处理儿童信息，可联系维护者核实并依法处置。",
              "课堂中的姓名、学号与动态只用于提醒目的，不应据此评价他人的出勤或学习表现；实际学校与教师记录以官方渠道为准。"
            ]
          },
          {
            "title": "14. 政策更新与语言版本",
            "paragraphs": [
              "新增数据类别、处理目的、托管地点或接收方等重要变化，会反映在本页并更新日期。依法需要额外告知、单独同意或其他程序时，不能仅以修改文字或继续使用替代。三个语言版本旨在表达相同范围；差异不减损适用法律赋予你的权利。"
            ]
          },
          {
            "title": "15. 联系我们",
            "paragraphs": [
              "隐私咨询、权利请求、产品支持或侵权通知，可联系维护者唐梓耀 / AdrianSparkle：QQ 2410710390；开发者公开主页为 https://github.com/Tang1206cc。请说明产品名称、所用版本及请求事项。首次联系请勿发送账号密码、登录 Cookie、连接码、完整录制或其他不必要的个人信息。",
              "请在请求中注明“雨水提醒”和希望处理的范围；涉及其他被点名者信息时，可提供最小化的事件时间与课程线索，无需公开完整姓名和学号。"
            ]
          },
          {
            "title": "15. 好友池、分别授权与协助共学",
            "paragraphs": [
              "“共同学习”的好友池固定包含本人，最多添加五位好友，按本人账号和当前设备隔离。每位好友须自行扫描官方登录二维码确认授权；服务保存其官方返回的账号标识、显示资料及登录会话，用于核对身份、显示登录状态和按主动扫描请求协助进课。不要求或保存好友密码；官方登录凭据由服务端处理，并非只保存在扫描者手机。好友会话不加入本人课内提醒账号表，也不自动开启该好友的课堂提醒。",
              "好友资料与登录凭据在独立好友库中加密保存，账号及设备关联、状态和时间等运行字段不等于整库加密。当前设备的持有人能看到该池的好友显示名、可取得的头像及登录状态，并可发起协助操作；好友应理解这一访问范围，只在可信且获准使用的设备上授权。服务可能从官方允许的头像来源取得显示图片；相关请求适用来源服务规则。",
              "“帮助好友共学”由你主动使用相机或选择图片。二维码在当前浏览器识别，服务接收识别文本，分别使用池内各账号会话核对课堂并提交支持的请求，逐项查询官方结果。它可能改变对应账号的官方进课记录，不代答题或响应点名。视频与所选图片不上传，识别文本用于当次处理；任务与结果在进程内存中短期保存，不能当作永久记录或到场证明。",
              "移除好友删除当前池中相应好友记录并使旧任务失效，不向雨课堂发送该好友退出请求。退出、切换本人账号或撤销设备时，作废该账号/设备池中的好友登录凭据；设备到期后在维护时作废。好友关系与资料保留为失效状态，未统一设置自动删除期限，可重新登录原好友或提出删除请求；其他有效设备的池不受影响。本人官方登录失效但设备仍有效时，不自动作废好友凭据，仍可协助有效好友。独立好友库纳入现有加密备份，删除在线记录不等于同时清除历史备份。"
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "雨水提醒服务条款",
        "intro": "雨水提醒提供辅助性的课堂动态提示。请特别留意账号授权、普通签到可能发生的实际操作，以及推送无法保证及时送达的边界。",
        "sections": [
          {
            "title": "1. 范围、提供者与条款接受",
            "paragraphs": [
              "本条款适用于 Sparkle 由唐梓耀 / AdrianSparkle、丁铭 / EliasSparkle 维护的雨水提醒 Web App 与提醒实例。请在连接服务、授权账号和开启提醒前阅读；不同意时不要进行这些操作。依法需要单独同意或监护人同意的事项，不能仅由继续使用推定。"
            ]
          },
          {
            "title": "2. 独立工具及官方渠道",
            "paragraphs": [
              "雨水提醒不是雨课堂、学校或教师的官方产品，与雨课堂、微信、Apple 及浏览器厂商不存在由本页面声明的合作、代理或背书。课程安排、作业、考勤和成绩以学校、教师及雨课堂官方记录为准。",
              "本产品只作辅助提醒，不替代官方客户端、课堂通知、手动核查和本人参加课程的义务。当前并非对所有课前、课后作业、考试或学校通知提供全覆盖提醒。"
            ]
          },
          {
            "title": "3. 使用资格与可信连接",
            "paragraphs": [
              "你应有权使用相应雨课堂账号和设备，并遵守学校、教师及上游平台的使用规则。不得代为连接未授权账号、借用他人会话。未成年人使用须具备适用法律要求的监护授权；未满 14 周岁请勿连接账号。",
              "只确认由你发起的官方登录二维码；不要向维护者、网页输入框或陌生人提交账号密码。当前首页无需连接码，获取二维码时自动建立设备会话；只有扫码确认后才能读取相应雨课堂账号的数据。"
            ]
          },
          {
            "title": "4. 你授予的处理范围",
            "paragraphs": [
              "扫码确认后，提醒服务需要在服务端保存并使用官方登录凭证，以查询账号、课程、正在上课状态和通知所需课堂事件，并向你登记的设备发送消息。详细数据、接收方、香港托管和保存规则见隐私政策。 你主动创建共学邀请时，还指示服务为该指定课堂使用你的官方会话处理好友提交的匹配进课二维码。邀请约 30 分钟有效，分享前应确认接收人及会展示的姓名、课堂信息；这不向好友授予你的密码、Cookie 或其他课堂的访问权。",
              "启用提醒前，请确认理解该处理范围。维护者不会把服务授权解释为读取所有无关资料、对外发布你的课程信息、营销或 AI 训练的许可。"
            ]
          },
          {
            "title": "5. 课内提醒与签到的实际影响",
            "paragraphs": [
              "开启课堂内练习、随机点名、抢答或弹幕提醒后，服务会按平台返回的规则取得课堂授权。平台明确标记普通签到时，服务可能自动发送进入课堂请求，该请求可能在官方平台产生进入或签到记录；不能将本服务描述为完全没有写入操作的只读工具。",
              "当前支持主动邀请好友扫描匹配课堂的进课二维码，仅限已核实的普通二维码流程。位置、未知流程或其他未支持的限制仍须在官方客户端完成；服务不伪造位置、不破解二维码、不代答题、不响应点名或代为抢答。使用自动进入或好友共学均须符合学校、教师和平台规则，不得将账号进课状态表述为本人到场或用其伪造出勤。"
            ]
          },
          {
            "title": "6. 通知开关、测试与显示内容",
            "paragraphs": [
              "五类提醒分别按设备设置；开启系统通知与具体提醒开关是不同授权。推送测试会发送标注为模拟的五类消息，即使相应开关关闭也可能发送，但不会改变开关。测试可达不证明真实课堂事件源已经接通。",
              "点名通知可能显示课堂公开的被点名者姓名和学号，其他通知会显示课程和事件摘要。请管理锁屏预览和共享设备，不公开转发其他学生的信息。平台未提供可信开课时间时，页面显示的是发现时间。"
            ]
          },
          {
            "title": "7. 及时性与可靠性边界",
            "paragraphs": [
              "正常情况下约 5 秒查询与课堂事件连接并行工作，但它不是送达时限或服务等级承诺。平台接口变化、网络、服务维护、系统省电、通知权限、推送厂商、浏览器退出策略、登录失效及连接到期，均可能造成延迟、遗漏、重复或停止。",
              "“推送服务已接受”表示请求被其接受；“设备已接收”表示系统处理回执，不等于用户已阅读或听见。请持续检查官方渠道，勿将本工具作为考勤、考试或重要截止日期的唯一保障。"
            ]
          },
          {
            "title": "8. 多设备、有效期与入口迁移",
            "paragraphs": [
              "设备连接通常为 30 天，到期前七天页面显示续期提示。当前界面不提供设备命名、设备列表或撤销入口；发现陌生连接时请联系维护者核对和处理。官方授权失效或连接到期会影响监测与提醒。",
              "正式入口与保留的旧入口属于不同浏览器来源。迁移使用 5 分钟内一次有效的凭证，转移账号、设置及所需历史；新来源通知权限仍需重新授权。迁移链接具有临时访问能力，不应转发。旧订阅停用规则以新订阅实际登记状态为准。"
            ]
          },
          {
            "title": "9. 合理使用与禁止行为",
            "paragraphs": [
              "不得借本服务绕过学校或平台的访问控制、伪造出勤、窃取或共享凭证、抓取无关人员资料、实施骚扰或侵权、恶意刷推送、攻击接口或转售未经授权的访问。不得把课程、姓名、学号及学习动态用于广告画像或公开曝光。",
              "正常使用仍应符合上游平台及学校规则；本产品无法替你取得第三方授权。发现异常设备或错误发送时，请及时关闭相关提醒并联系维护者核对、撤销异常设备。"
            ]
          },
          {
            "title": "10. 可用性、费用、支持与变更",
            "paragraphs": [
              "当前为公测阶段，不承诺永久可用、永久免费、固定响应时间或特定容量。任何实际收费、订阅或新增重要使用条件都应在生效前明确展示并履行必要程序，本条款本身不创建付款义务。",
              "为维护、安全、资源约束或上游变更，可能调整或暂停服务；在可合理预见的情况下，应提供适当说明与迁移、导出或停止使用的指引。紧急风险处置可先采取必要措施，并在适当时说明，不以此排除法定义务。"
            ]
          },
          {
            "title": "11. 退出、暂停与终止",
            "paragraphs": [
              "你可以关闭提醒、退出账号、请求维护者撤销设备或停止使用。最后一个有效设备解绑后释放登录凭证，但账号档案、历史和备份的删除规则另见隐私政策；停止使用不自动完成整账号删除。",
              "对于明显滥用、侵权或安全风险，可在必要范围限制相关连接；适当时应说明理由并允许反馈或纠正。服务终止后依法存续的保密、知识产权与数据保护义务仍有效。"
            ]
          },
          {
            "title": "12. 权利、保证与责任",
            "paragraphs": [
              "你保留自己资料的权利；第三方课程资料归相应权利人。本服务不会因处理数据而取得任意使用或再授权的权利。产品使用许可与开源组件另见“许可证”和“第三方声明”。",
              "在法律允许范围内，服务按实际可用状态提供，不保证无错、持续运行或每条消息及时送达。损失责任依实际事实、过错及适用法律确定。本条款不免除故意、重大过失、人身损害、违法处理个人信息或其他依法不得免责的责任，不削减强制性消费者救济。"
            ]
          },
          {
            "title": "13. 争议、解释与更新",
            "paragraphs": [
              "有疑问或争议可先联系维护者；你仍可向依法有管辖权的法院或监管机关寻求救济，不受强制仲裁、指定境外法院或放弃法定权利的限制。个别条款不能执行时，其余独立有效条款继续适用。",
              "重要修订会更新日期并按适用法律履行通知或同意程序。三个语言版本力求同义，不以翻译差异排除当地法律保护。"
            ]
          },
          {
            "title": "14. 联系方式",
            "paragraphs": [
              "隐私咨询、权利请求、产品支持或侵权通知，可联系维护者唐梓耀 / AdrianSparkle：QQ 2410710390；开发者公开主页为 https://github.com/Tang1206cc。请说明产品名称、所用版本及请求事项。首次联系请勿发送账号密码、登录 Cookie、连接码、完整录制或其他不必要的个人信息。"
            ]
          },
          {
            "title": "15. 好友池授权与协助边界",
            "paragraphs": [
              "添加好友须由好友本人确认官方二维码登录，并了解凭据会由提醒服务保存、当前账号和设备持有人可发起协助。不得未经许可保留、转交或使用他人的会话，不得规避学校、教师或官方平台规则。本人和最多五位好友不代表对任何课堂都有访问或签到资格。",
              "邀请链接与好友池是不同流程：前者的协助者不必登录，后者必须逐人授权。帮助好友共学须主动扫描适用课堂二维码，结果按各账号分别核实；提交、等待或进入记录均不证明本人到场。受限或未支持流程仍需使用官方客户端，不能承诺所有学校、课堂或账号均可用。退出、移除、失效、备份及其余数据的处理范围见隐私政策。"
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "雨水提醒软件与服务许可证",
        "intro": "本许可说明 Web App 自有代码和界面可如何使用。访问服务不等于获得源码再分发、独立部署或使用 Sparkle 品牌的授权；第三方开源组件另按各自许可证处理。",
        "sections": [
          {
            "title": "1. 权利人与适用范围",
            "paragraphs": [
              "雨水提醒的原创代码、界面、图形及文档由其各自权利人保留权利，Sparkle 由唐梓耀 / AdrianSparkle、丁铭 / EliasSparkle 共同维护。本许可适用于维护者提供的 Web App 客户端与服务访问，不改变第三方内容及开源软件的授权。"
            ]
          },
          {
            "title": "2. 有限访问与客户端使用",
            "paragraphs": [
              "在遵守服务条款的情况下，授予你有限、非独占、不可转让、不可再许可的权利，在你拥有或获准使用的设备上访问实际开放的服务、加载运行随页面提供的客户端代码，并使用浏览器“添加到主屏幕”等正常安装功能。可按产品支持的方式连接本人有权授权的账号。",
              "可按产品支持的方式连接本人账号，或经好友本人扫描官方二维码授权后使用好友池；不因此取得超出原授权的账号、课程或平台使用权。"
            ]
          },
          {
            "title": "3. 未授予的自有代码权利",
            "paragraphs": [
              "浏览器能够查看或下载脚本，不等于原创代码已按开源许可证发布。除法律允许或另有书面授权外，不得复制分发产品本体、修改并运营自有服务、将其打包销售、出租、再许可、移除权利声明，或将后台接口作为未经许可的商业服务提供。使用自己账号合法产生的数据不受此项软件权利保留限制。"
            ]
          },
          {
            "title": "4. 法定例外与安全研究",
            "paragraphs": [
              "本许可不限制适用法律允许的备份、互操作性、安全研究或其他不可被合同排除的权利。研究不得以非法取得账号凭证、侵害他人隐私或破坏线上服务为手段；报告漏洞时请提供最小必要的复现信息，不公开有效密钥或用户资料。"
            ]
          },
          {
            "title": "5. 第三方开源许可的优先效力",
            "paragraphs": [
              "服务使用 Express、qrcode、tough-cookie、web-push 及其依赖。具体版本、版权和许可文本见第三方声明；其中包含 MIT、ISC、BSD-3-Clause、Apache-2.0 与 MPL-2.0，不能把它们一概称为 MIT。 好友共学页面另使用 Apache-2.0 许可的 jsQR 二维码识别组件，其独立许可同样优先适用。",
              "各组件可依法依其许可证使用、修改或分发，本许可对自有软件的限制不适用于与组件独立许可冲突的范围。web-push 适用 MPL-2.0；本页提供其所用版本的组件源码副本。组件源码的提供不包含对整个雨水提醒项目的开源授权。"
            ]
          },
          {
            "title": "6. 数据、平台与商标",
            "paragraphs": [
              "本许可不授予雨课堂课程内容、其他学生资料或官方平台接口的额外使用权。你对自己资料依法享有的权利保持不变。Sparkle、雨水提醒及第三方品牌、标识的权利各自保留；不得冒用官方身份或声称获得未存在的合作、认证或背书。"
            ]
          },
          {
            "title": "7. 无独立部署或转售承诺",
            "paragraphs": [
              "本服务的访问许可不包含后台源码交付、服务器运维、服务转售或独立部署授权。需要这些权利时，应另行取得明确许可。开发目录中存在 package.json、依赖清单或可阅读源码，不等于自有项目已经授予通用开源许可。"
            ]
          },
          {
            "title": "8. 期限、终止与更新",
            "paragraphs": [
              "本许可在你依法使用所提供客户端与服务期间适用。你可以停止使用并移除主屏幕入口；严重违反许可或服务条款时，可依法限制相关访问，在适当且可补救时给予合理改正机会。终止不影响你的法定数据权利、此前责任及独立开源许可证的效力。",
              "更新未另附条款时继续适用本许可。服务访问不保证永久在线、任何特定版本持续维护或无限期兼容；重要变更应依服务条款和适用法律处理。"
            ]
          },
          {
            "title": "9. 保证与责任",
            "paragraphs": [
              "在法律允许范围内，软件和服务按实际可用状态提供，保证和责任范围以服务条款、实际承诺及适用法律确定。任何表述均不排除法定消费者保护、不得免责的个人信息保护义务、故意或重大过失责任及其他强制性权利。"
            ]
          },
          {
            "title": "10. 许可咨询",
            "paragraphs": [
              "隐私咨询、权利请求、产品支持或侵权通知，可联系维护者唐梓耀 / AdrianSparkle：QQ 2410710390；开发者公开主页为 https://github.com/Tang1206cc。请说明产品名称、所用版本及请求事项。首次联系请勿发送账号密码、登录 Cookie、连接码、完整录制或其他不必要的个人信息。",
              "团队部署、源码授权、商业合作或品牌使用请说明具体用途并联系权利人；未明确授予的自有软件权利予以保留。"
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "雨水提醒第三方与开源声明",
        "intro": "组件清单依据当前工程的 package-lock.json 与实际安装包核对，收录 110 个生产依赖包。原始版权声明和许可条件可在下方完整下载；它们不代表整个产品采用相同许可。",
        "sections": [
          {
            "title": "1. 主要依赖与用途",
            "paragraphs": [
              "Express 5.3.0（MIT）用于 HTTP 路由；qrcode 1.5.4（MIT）用于生成登录二维码；tough-cookie 6.0.2（BSD-3-Clause）用于官方会话 Cookie 管理；web-push 3.6.7（MPL-2.0）用于 Web Push 请求与加密。完整传递依赖按安装位置分别列入原始声明，不以四个主依赖代替全部清单。 好友共学浏览器页面另使用 jsQR（Apache-2.0）在本机识别二维码；该浏览器组件不属于上述 Node.js 生产依赖数量。随当前产品分发的原始许可文本另行提供，组件权利不因自有软件许可而缩减。"
            ]
          },
          {
            "title": "2. 原文、对应源码与适用范围",
            "paragraphs": [
              "下载文件保留所核对安装包中的 LICENSE、LICENCE、COPYING 或 NOTICE 原文。http_ece 1.2.0 安装包未附独立许可文本，其 MIT 文本取自对应上游 v1.2.0 标签并记录来源。web-push 的实际组件源码、README、package.json 和许可证另以 ZIP 提供，便于查阅 MPL 覆盖文件。",
              "清单描述当前工程使用的生产依赖，不表示每个服务器依赖都会被发送到浏览器，也不替代日后分发 Node.js、操作系统或其他新增软件时需要随附的声明。上游原文保留原语言，以相应许可证文本确定组件权利。"
            ]
          },
          {
            "title": "3. 平台关系与数据处理",
            "paragraphs": [
              "雨课堂、微信及浏览器通知基础设施由各自权利人运营。本产品通过账号授权和相关技术接口提供独立提醒，不代表这些主体认可本产品。使用 Apple 设备、主屏幕 Web App 或 Web Push 不表示产品由 Apple 制作、审核或担保。各平台的个人信息处理和本服务的数据流分别见相应政策及本产品隐私政策。"
            ]
          },
          {
            "title": "4. 权利与安全反馈",
            "paragraphs": [
              "如你认为组件清单、署名、源码提供或版权说明存在遗漏，请向维护者说明包名、版本和依据，我们会核实并更正。报告安全问题时请勿公开用户凭证。",
              "隐私咨询、权利请求、产品支持或侵权通知，可联系维护者唐梓耀 / AdrianSparkle：QQ 2410710390；开发者公开主页为 https://github.com/Tang1206cc。请说明产品名称、所用版本及请求事项。首次联系请勿发送账号密码、登录 Cookie、连接码、完整录制或其他不必要的个人信息。"
            ]
          }
        ],
        "links": [
          {
            "label": "jsQR 原始 Apache-2.0 许可 · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "en": {
      "privacy": {
        "title": "Rain Alert Privacy Policy",
        "intro": "Rain Alert connects to Rain Classroom through a reminder service and sends notifications to your devices. It therefore processes account authorization, course information, and notification data on a server. Review this scope before connecting or authorizing an account.",
        "sections": [
          {
            "title": "1. Scope and maintainers",
            "paragraphs": [
              "雨水提醒 (Rain Alert) is an independent classroom-event reminder Web App under Sparkle, created and maintained by 唐梓耀 / AdrianSparkle and 丁铭 / EliasSparkle. This policy covers the Sparkle-operated instance, device pairing, Rain Classroom QR authorization, classroom monitoring, and Web Push. This policy also covers classroom entry-status checks and Study with friends invitations that you actively create.",
              "It is not an official product of Rain Classroom and does not represent schools, teachers, Rain Classroom, WeChat, Apple, or browser vendors. Their services have separate privacy rules. Independently operated instances require disclosures from their own operators; our hosting and administration arrangements do not automatically apply to them."
            ]
          },
          {
            "title": "2. Account details, courses, and credentials",
            "paragraphs": [
              "Requesting an official sign-in QR code automatically creates a device session; no connection code is required. After you confirm the official QR sign-in, the service receives the account ID, name or nickname, school, and student number returned by Rain Classroom, along with enrolled courses, classroom IDs, names, teachers, and related organization identifiers. These identify the account and display courses.",
              "The server also stores official login cookies, session authorization, and necessary classroom tokens to continue querying after you close the page. We neither request nor store your Rain Classroom or WeChat password. Cookies and tokens can represent login authority and require special protection. Scanning does not keep authorization solely on your phone."
            ]
          },
          {
            "title": "3. Classroom events and information about others",
            "paragraphs": [
              "The service queries ongoing classes, necessary learning logs, and check-in modes. With in-class reminders enabled, it receives the official classroom event stream. Stored notification fields include course and classroom names, event types and identifiers, platform or detection times, and necessary summaries.",
              "Random-selection events can contain names and student numbers announced to the class by the teacher. These may be stored in encrypted event records and shown in notification bodies, including information about classmates. Manage lock-screen previews and shared devices carefully and do not republish these details. The service does not use them to profile students.",
              "The current implementation does not retain question text or answers as persistent reminder content, answer questions, respond to roll calls or quick answers, or collect device location. Ordinary attendance may trigger an entry request through enabled in-class reminders. You may also actively invite a friend for a class confirmed as not entered; the friend submits a matching classroom QR code’s decoded text, and the service uses the inviter’s official session for the verified normal entry flow. These requests may change official entry or attendance records; see the Terms of Service."
            ]
          },
          {
            "title": "4. Devices, notifications, and technical information",
            "paragraphs": [
              "We process random device identifiers, hashed connection sessions, device labels, creation and last-opened times, 30-day expiry, account associations, and reminder switches. The initial device category is derived from the browser User-Agent. Device renaming and the device list are not exposed in the current interface; the related data and management endpoints remain.",
              "When you enable notifications, the browser supplies a push endpoint, p256dh public key, and auth secret. The server stores the subscription to send to that device. Delivery attempts, accepted or failed status, timestamps, and hashes of random receipts support troubleshooting, deduplication, and confirmation of system handling. A receipt does not prove that you saw, heard, or read a notification.",
              "Providing a network service involves processing IP addresses, request headers, origins, connection times, and error information. IP addresses also support in-memory abuse-rate limiting. The current app has no advertising or behavioral analytics SDK and does not use these data for cross-site tracking or selling personal information. Infrastructure and communication providers may process technical logs under their own rules."
            ]
          },
          {
            "title": "5. Purposes and authorization boundaries",
            "paragraphs": [
              "These data support pairing, identifying your authorized account, querying and displaying classes, sending selected events, maintaining sessions, migrating origins, protecting security, troubleshooting, and recovery. Account and course data are not used for advertising, commercial profiling, or AI training. Without QR authorization, courses cannot be read. Without notification permission, a signed-in page can still display information but cannot send system notifications to that device.",
              "Sensitive credentials, information about classmates, and cross-region processing require the notices, lawful grounds, and consent procedures applicable under law. This policy explains actual flows. Viewing it, requesting a sign-in QR code, or scanning a QR code is not treated as satisfying every separately required consent. Do not authorize accounts or information you have no right to provide."
            ]
          },
          {
            "title": "6. Cookies, browser storage, and permissions",
            "paragraphs": [
              "Device connection uses a rain_session cookie; the server stores its hash. Over HTTPS it has Secure, HttpOnly, and SameSite=Strict attributes and lasts up to 30 days with the device connection, resetting upon renewal. It is an authentication cookie, not an advertising cookie. Signing out of Rain Classroom does not automatically clear this device-connection cookie.",
              "Browser permissions govern device notifications. Co-study and invitation-assistance pages use the camera only after you actively start scanning and grant access, and can also accept an image. QR decoding happens in the browser; only decoded text is submitted, without uploading video or selected images. Camera zoom uses hardware or digital zoom as the device supports. Microphone, location, and contacts are not requested."
            ]
          },
          {
            "title": "7. Recipients, hosting, and international transfers",
            "paragraphs": [
              "The current Sparkle-operated instance runs on Tencent Cloud in Hong Kong, China. If you are in mainland China or another region, account details, cookies, courses, events, and device subscriptions sent to this instance are transferred to and stored in Hong Kong. Authorization and monitoring also communicate with official Rain Classroom APIs and classroom-event services. Anyone holding a valid study invitation can read the inviter’s display name, class name, expiry time, and processing status and submit an entry QR code for the specified class. Decoded text passes through the Hong Kong service to official Rain Classroom interfaces. The friend does not receive the inviter’s cookies, password, or full course list. Share invitations only with trusted people who are permitted to help.",
              "Depending on the browser, Web Push uses infrastructure such as Apple, Google, Mozilla, or Microsoft, which may process data in other countries or regions. The service sends encrypted push payloads and necessary routing information to the subscription endpoint; browsers and operating systems display them. Plaintext notifications can appear on the device. Push encryption does not mean the reminder server cannot read the underlying data.",
              "Cloudflare currently provides domain registration and DNS. Under the existing configuration, application traffic does not pass through its CDN proxy; DNS processing still involves necessary query information. We do not sell or rent personal information. Disclosures required by law, necessary security handling, or other transfers you expressly direct should be limited to the relevant purpose."
            ]
          },
          {
            "title": "8. Encryption and security limits",
            "paragraphs": [
              "Account profiles, course caches, login cookies, classroom credentials, event payloads, and push subscriptions are stored using AES-256-GCM. Account and device identifiers, associations, switches, times, statuses, and other operational fields are not all individually encrypted. The database and master key are managed on the same host; this is not end-to-end encryption that withstands full server compromise.",
              "The service uses HTTPS, session hashing, origin checks, rate limiting, and restricted push endpoints. Authorized administrators may have access needed for decryption. For a personal-information security incident, we will take remedial action and notify affected people and authorities as required by applicable law, explaining the information involved, possible impact, measures taken, and contact routes. Absolute security is not promised. Connect only trusted devices and do not share connection codes, cookies, migration links, or private notifications."
            ]
          },
          {
            "title": "9. Online retention",
            "paragraphs": [
              "Device connections last 30 days from creation or manual renewal; an expired session no longer grants access. Invalid official authorization pauses relevant monitoring. When the last valid associated device signs out, is revoked, or expires, logout handling or periodic maintenance clears the account’s login cookies and stored classroom credentials and pauses connections.",
              "Completed classes and their delivery records, historical events outside active classes, and simulated push records are cleaned during periodic maintenance using a 90-day threshold in the code. Active classes and protected related records may remain longer. Migration credentials are single-use and expire after five minutes. Study invitations use random tokens. A hash index in process memory holds the inviter’s display name, specified class, approximately 30-minute expiry, attempt count, and result state. Expired invitations cannot be used, and invitations do not survive a service restart. Expired memory entries are cleared when later invitations are created, rather than guaranteed byte-level erasure at expiry. Decoded QR text is used for the current request; the study module does not write camera frames, selected images, or QR text to the database. Official entry records and infrastructure technical logs follow their respective actual handling rules.",
              "The current implementation has no uniform automatic deletion period for all account profiles, course caches, device metadata, status fields, or backups. The 30-day connection and 90-day history rules do not erase an entire account at those times. Contact maintainers if you stop using the service and want remaining data removed. The absence of automated cleanup is not permission for indefinite retention. When data are no longer necessary or deletion is legally required, we will act under applicable law and verify the scope requiring manual handling."
            ]
          },
          {
            "title": "10. Backups, support material, and cleanup scope",
            "paragraphs": [
              "Recovery backups include database snapshots, service keys, push keys, and origin configuration. Exported backups use a random AES-256-GCM data key wrapped with a separate RSA-OAEP public key; the decryption private key is held separately. However, cloud storage can also retain SQLite snapshots protected by file permissions, and host privileges can access operational data. Backup protection therefore depends on the type of copy and where it is held.",
              "The existing backup process has no uniform automatic expiry; offline exports may remain. Removing online data does not immediately erase historical backups. A deletion request may ask about remaining backups, retention reasons, and disposition arrangements. This requires manual verification; no unimplemented instant one-click erasure is promised. Support conversations and submitted attachments are retained as needed for the matter, not for advertising or training."
            ]
          },
          {
            "title": "11. Disable, sign out, revoke, and request deletion",
            "paragraphs": [
              "You can disable each of five reminder types, revoke system notifications, sign out of Rain Classroom on this device, or stop renewing a connection. The current interface has no device list or revocation controls; contact maintainers to review or revoke other devices. A switch stops only that device’s corresponding reminders. Monitoring may continue when another device has reminders enabled. Sign-out unlinks this device and removes its server-side push subscription; browser permissions or subscription state may require separate system management.",
              "Releasing login credentials after the last valid device leaves does not erase all profiles, history, other device metadata, or backups. There is no automatic whole-account deletion button in the current product. Contact maintainers to request information, access, a copy, correction, deletion, restriction, withdrawal of authorization, or handling of an objection concerning another person’s information."
            ]
          },
          {
            "title": "12. Verification, legal retention, and remedies",
            "paragraphs": [
              "We verify the relationship between a request and an account in proportion to risk and ask only for necessary information. Do not send cookies, passwords, or migration credentials. Requests should be handled promptly as required by law. If technical separation, backups, disputes, or legal retention obligations prevent immediate completion, reasons, scope, and subsequent arrangements should be explained. Where law requires other processing to stop, retained data are restricted to necessary storage and security rather than returned to ordinary monitoring. Restoration requires checking previously handled rights requests. Statutory rights are not limited to existing interface buttons. You may complain to the competent regulator."
            ]
          },
          {
            "title": "13. Minors and learning contexts",
            "paragraphs": [
              "The service is for users able to lawfully authorize their accounts and devices. Minors require appropriate guardian authorization and must follow school rules. Account connection is not directed to children under 14. There is currently no age-verification mechanism; contact maintainers if children’s information may have been processed without required authorization so it can be investigated and handled under law.",
              "Names, student numbers, and classroom events are used for reminders, not to judge another person’s attendance or performance. School and teacher records through official channels remain authoritative."
            ]
          },
          {
            "title": "14. Changes and language versions",
            "paragraphs": [
              "Material changes to data categories, purposes, hosting, or recipients will be described here and dated. Updating text or continued use cannot replace legally required additional notice, separate consent, or other procedures. The language versions aim to describe the same scope; differences do not diminish your rights under applicable law."
            ]
          },
          {
            "title": "15. Contact",
            "paragraphs": [
              "For privacy questions, rights requests, support, or infringement reports, contact maintainer 唐梓耀 / AdrianSparkle on QQ at 2410710390. The developer’s public profile is https://github.com/Tang1206cc. Identify the product, version, and your request. Do not include passwords, login cookies, connection codes, entire recordings, or unnecessary personal information in your initial message.",
              "Specify “Rain Alert / 雨水提醒” and the scope of your request. For another selected student’s information, provide minimal event-time and course context rather than publicly posting a full name and student number."
            ]
          },
          {
            "title": "15. Friend pools, individual authorization, and co-study assistance",
            "paragraphs": [
              "The Co-study friend pool always includes its owner and supports up to five friends, isolated by owner account and current device. Each friend must personally confirm official QR sign-in. The service stores the returned account identifier, display profile, and official session to verify identity, show sign-in status, and assist with entry following an active scan request. Friend passwords are neither requested nor stored. Official credentials are processed by the server, not solely on the scanning phone. Friend sessions are kept outside the owner’s reminder-account table and do not automatically enable classroom reminders for those friends.",
              "Friend profiles and credentials are encrypted in a separate friend database. Owner/device associations, statuses, timestamps, and other operational fields do not amount to whole-database encryption. The current device holder can view friend display names, available avatars, and sign-in status and initiate assistance. Friends should understand this scope and authorize only trusted, permitted devices. The service may retrieve display avatars from permitted official sources, whose rules govern those requests.",
              "Help friends co-study uses the camera or an image only when you initiate it. The browser decodes the QR locally. The service receives its text and uses each pooled account’s session separately to check the classroom, submit supported requests, and verify official results. This can change official entry records; it neither answers exercises nor responds to roll calls. Video and selected images are not uploaded; decoded text is used for that operation. Jobs and results are held temporarily in process memory, not as permanent records or proof of physical attendance.",
              "Removing a friend deletes that pool’s matching record and invalidates old jobs without sending an official sign-out request for the friend. Signing out, switching owner accounts, or revoking the device invalidates friend credentials for that owner/device pool. Expired devices are handled during maintenance. Friend relationships and profiles remain as invalid records, without a uniform automatic deletion deadline; reauthorize the same friend or request deletion. Other valid devices’ pools are unaffected. An expired owner official login does not automatically invalidate friend credentials while the device session remains valid, so valid friends may still be assisted. The separate friend database is included in existing encrypted backups; deleting online records does not simultaneously erase historical backups."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Rain Alert Terms of Service",
        "intro": "Rain Alert provides supplementary classroom-event notifications. Pay particular attention to account authorization, the actual effect of ordinary check-in requests, and the limits of push delivery.",
        "sections": [
          {
            "title": "1. Scope, provider, and acceptance",
            "paragraphs": [
              "These terms apply to the Rain Alert Web App and reminder instance maintained under Sparkle by 唐梓耀 / AdrianSparkle and 丁铭 / EliasSparkle. Read them before connecting, authorizing an account, or enabling reminders. Do not take those actions if you disagree. Continued use alone does not establish separately required consent or guardian authorization."
            ]
          },
          {
            "title": "2. Independent tool and official channels",
            "paragraphs": [
              "Rain Alert is not an official product of Rain Classroom, a school, or a teacher. This page claims no partnership, agency, or endorsement by Rain Classroom, WeChat, Apple, or browser vendors. Schools, teachers, and official Rain Classroom records determine schedules, assignments, attendance, and grades.",
              "The product supplements official clients, classroom announcements, manual checking, and your own attendance responsibilities. It does not currently provide comprehensive reminders for all pre-class or post-class assignments, examinations, or school announcements."
            ]
          },
          {
            "title": "3. Eligibility and trusted connections",
            "paragraphs": [
              "You must be authorized to use the account and device and follow school, teacher, and platform rules. Do not connect unauthorized accounts, borrow sessions. Minors require guardian authorization as required by law; children under 14 should not connect accounts.",
              "Confirm only official QR logins you initiated. Do not give passwords to maintainers, web forms, or strangers. The current home page needs no connection code. Requesting a QR code creates a device session; the associated Rain Classroom account’s data is accessible only after you confirm sign-in."
            ]
          },
          {
            "title": "4. Authorized processing",
            "paragraphs": [
              "After QR confirmation, the server needs to store and use official login credentials to query account details, courses, ongoing classes, and necessary classroom events and notify registered devices. The Privacy Policy explains data, recipients, Hong Kong hosting, and retention. By actively creating a study invitation, you also instruct the service to use your official session to process a friend’s matching entry QR code for that specified class. Invitations last about 30 minutes. Check the recipient and the display name and class information shown before sharing. This grants the friend neither your password or cookies nor access to other classes.",
              "Understand that scope before enabling reminders. Authorization is not permission to read unrelated material, publish your courses, perform marketing, or train AI models."
            ]
          },
          {
            "title": "5. In-class reminders and check-in effects",
            "paragraphs": [
              "Enabling exercise, random-selection, rapid-answer, or comment-availability reminders allows the service to obtain classroom authorization according to platform rules. Where the platform explicitly identifies an ordinary check-in, the service may automatically send a classroom-entry request. That request can create entry or check-in records on the official platform. The service is not entirely read-only.",
              "You can actively invite a friend to scan a matching classroom entry QR code, limited to the verified normal QR flow. Location, unknown flows, and other unsupported restrictions still require the official client. The service does not spoof location, crack QR codes, answer exercises, respond to roll calls, or submit quick answers. Automatic entry and Study with friends must follow school, teacher, and platform rules. Account entry state must not be represented as physical presence or used to falsify attendance."
            ]
          },
          {
            "title": "6. Switches, testing, and notification content",
            "paragraphs": [
              "Five reminder types are controlled per device. System permission and individual reminder switches are different settings. Push testing sends five clearly labeled simulated messages even if corresponding switches are off, without changing them. Successful testing does not verify the live classroom event source.",
              "Random-selection notifications may show names and student numbers announced to the class. Other notifications show course and event summaries. Manage previews and shared devices and do not publicly forward classmates’ information. If no trustworthy start time is supplied by the platform, displayed detection time is not the class start time."
            ]
          },
          {
            "title": "7. Timing and reliability",
            "paragraphs": [
              "Polling at approximately five seconds under normal conditions works alongside classroom-event connections. This is not a delivery deadline or service-level guarantee. Platform changes, networks, maintenance, power saving, permissions, push vendors, browser policies, invalid login, or expired pairing can delay, omit, repeat, or stop messages.",
              "“Accepted by push service” confirms acceptance of a request. A device receipt confirms system handling, not that a person read or heard the notification. Continue checking official channels; do not rely solely on this tool for attendance, exams, or important deadlines."
            ]
          },
          {
            "title": "8. Devices, expiry, and origin migration",
            "paragraphs": [
              "Device connections normally last 30 days. A renewal prompt appears during the final seven days. Device naming, the device list, and revocation controls are not available in the current interface; contact maintainers to investigate and revoke unfamiliar connections. Expired official authorization or device sessions affect monitoring and reminders.",
              "The main and retained legacy entry points are distinct browser origins. A single-use, five-minute credential migrates the account, settings, and necessary history; notification permission must be granted again on the new origin. A migration link confers temporary access and must not be shared. Deactivation of the old subscription depends on successful registration of the new one."
            ]
          },
          {
            "title": "9. Acceptable use",
            "paragraphs": [
              "Do not bypass school or platform controls, falsify attendance, steal or share credentials, collect unrelated people’s data, harass or infringe rights, abuse push delivery, attack interfaces, or resell unauthorized access. Do not use courses, names, student numbers, or learning activity for advertising profiles or public exposure.",
              "Ordinary use must still satisfy platform and school rules; the product cannot obtain third-party permission for you. If you find an unfamiliar device or incorrect delivery, disable relevant reminders and contact maintainers to investigate and revoke the device."
            ]
          },
          {
            "title": "10. Availability, fees, support, and changes",
            "paragraphs": [
              "The service is currently in public testing. Permanent availability, permanent free access, fixed response times, and specific capacity are not promised. Any charge, subscription, or material new condition should be clearly disclosed before taking effect and follow required procedures. These terms alone create no payment obligation.",
              "Maintenance, security, capacity, and upstream changes may require adjustment or suspension. Where reasonably foreseeable, appropriate explanations and guidance for migration, export, or discontinuation should be provided. Urgent risks may require necessary action first and an explanation when appropriate, without removing legal duties."
            ]
          },
          {
            "title": "11. Sign-out, suspension, and termination",
            "paragraphs": [
              "You may disable reminders, sign out, ask maintainers to revoke devices, or stop using the service. Unlinking the last valid device releases login credentials. The Privacy Policy separately explains remaining profiles, history, and backups; discontinuation does not automatically delete an entire account.",
              "Clear abuse, infringement, or security risk may justify restricting relevant connections to the necessary extent, with reasons and an opportunity for feedback or correction where appropriate. Applicable confidentiality, intellectual-property, and data-protection duties survive termination."
            ]
          },
          {
            "title": "12. Rights, warranties, and responsibility",
            "paragraphs": [
              "You retain rights in your information. Course materials belong to their rights holders. Processing does not grant the service unrestricted use or sublicensing rights. Product licensing and component terms appear in the Software License and Third-party Notices.",
              "To the extent permitted by law, service is provided in its available condition without a promise of error-free, continuous operation or timely delivery of every message. Responsibility depends on facts, fault, and applicable law. Liability for intentional misconduct, gross negligence, personal injury, unlawful personal-information processing, and other non-excludable matters remains, as do mandatory consumer remedies."
            ]
          },
          {
            "title": "13. Disputes, interpretation, and revisions",
            "paragraphs": [
              "Contact maintainers about questions or disputes. You remain free to seek relief from a court or regulator with lawful jurisdiction, without mandatory arbitration, a designated foreign court, or waiver of statutory rights. An unenforceable provision does not invalidate independently effective provisions.",
              "Material revisions will be dated and follow required notice or consent procedures. Language versions aim to be equivalent; translation differences do not exclude local legal protection."
            ]
          },
          {
            "title": "14. Contact",
            "paragraphs": [
              "For privacy questions, rights requests, support, or infringement reports, contact maintainer 唐梓耀 / AdrianSparkle on QQ at 2410710390. The developer’s public profile is https://github.com/Tang1206cc. Identify the product, version, and your request. Do not include passwords, login cookies, connection codes, entire recordings, or unnecessary personal information in your initial message."
            ]
          },
          {
            "title": "15. Friend-pool authorization and assistance boundaries",
            "paragraphs": [
              "Each friend must personally confirm official QR sign-in and understand that the reminder service stores credentials and the current account/device holder can initiate assistance. Do not retain, transfer, or use another person’s session without permission or circumvent school, teacher, or official-platform rules. Including the owner and up to five friends establishes no entitlement to access or check into any classroom.",
              "Invitation links and friend pools are separate flows: a link’s helper need not sign in, whereas every pooled friend must authorize individually. Assistance requires actively scanning an applicable classroom QR code, with outcomes verified separately per account. Submission, waiting, and entry records do not prove physical attendance. Restricted or unsupported flows still require the official client; availability for every school, classroom, or account is not promised. See the privacy policy for sign-out, removal, expiry, backups, and remaining data."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Rain Alert Software and Service License",
        "intro": "This license explains permitted use of the Web App’s original code and interface. Access does not grant source redistribution, independent deployment, or Sparkle branding rights. Open-source components retain their own licenses.",
        "sections": [
          {
            "title": "1. Rights holders and scope",
            "paragraphs": [
              "Rights in Rain Alert’s original code, interface, graphics, and documentation remain with their respective rights holders. Sparkle is maintained by 唐梓耀 / AdrianSparkle and 丁铭 / EliasSparkle. This license covers access to the supplied Web App client and service, without changing third-party content or open-source permissions."
            ]
          },
          {
            "title": "2. Limited client and access permission",
            "paragraphs": [
              "Subject to the Terms of Service, you receive a limited, nonexclusive, nontransferable, nonsublicensable right to access the service actually made available, load and run the client code supplied with its pages, and use ordinary browser installation such as adding to the home screen on devices you own or are authorized to use. You may connect accounts you are entitled to authorize through supported features.",
              "Use supported flows to connect your own account or a friend’s account after that friend personally authorizes official QR sign-in for the pool. This grants no account, course, or platform rights beyond the original authorization."
            ]
          },
          {
            "title": "3. Rights not granted in original code",
            "paragraphs": [
              "Visibility or downloadability of browser scripts does not place original code under an open-source license. Except as law permits or separately authorized in writing, do not redistribute the product, modify and operate an independent service, package it for sale, rent, sublicense, remove rights notices, or offer backend interfaces as an unauthorized commercial service. These software reservations do not restrict lawful use of data from your own account."
            ]
          },
          {
            "title": "4. Statutory exceptions and research",
            "paragraphs": [
              "This license does not restrict backups, interoperability, security research, or other rights that applicable law does not allow a contract to exclude. Research must not involve unlawful credential access, privacy violations, or disruption of the live service. Report vulnerabilities with minimal necessary reproduction details, without publishing valid keys or user data."
            ]
          },
          {
            "title": "5. Priority of component licenses",
            "paragraphs": [
              "The service uses Express, qrcode, tough-cookie, web-push, and their dependencies. Exact versions, copyright statements, and texts are in Third-party Notices. They include MIT, ISC, BSD-3-Clause, Apache-2.0, and MPL-2.0; they are not all MIT. The Study with friends page also uses the Apache-2.0-licensed jsQR decoder, whose independent license likewise takes priority.",
              "Each component may be used, modified, or distributed under its own license. Restrictions on proprietary software do not override conflicting independent component permissions. web-push uses MPL-2.0; a source copy of the version used is provided here. Supplying component source does not release the entire Rain Alert project as open source."
            ]
          },
          {
            "title": "6. Data, platforms, and trademarks",
            "paragraphs": [
              "No additional right is granted to Rain Classroom course content, other students’ information, or official platform APIs. You retain lawful rights in your information. Sparkle, Rain Alert, and third-party brands and marks retain their respective protections. Do not impersonate an official operator or claim nonexistent partnerships, certifications, or endorsements."
            ]
          },
          {
            "title": "7. Independent deployment and resale",
            "paragraphs": [
              "Access does not include delivery of backend source, server administration, service resale, or independent deployment permission. Obtain explicit separate authorization if needed. The presence of package.json, dependency lists, or readable code in a development directory is not a general open-source grant for the original project."
            ]
          },
          {
            "title": "8. Duration, termination, and updates",
            "paragraphs": [
              "This license applies during lawful use of the supplied client and service. You may stop use and remove the home-screen entry. Material violations may result in lawful access restrictions with a reasonable opportunity to correct where appropriate and remediable. Termination does not extinguish statutory data rights, accrued responsibilities, or independent open-source licenses.",
              "Updates remain subject to this license unless different terms accompany them. Access does not guarantee perpetual operation, maintenance of a particular version, or indefinite compatibility. Material changes follow the Terms of Service and applicable law."
            ]
          },
          {
            "title": "9. Warranties and responsibility",
            "paragraphs": [
              "To the extent permitted by law, software and service are provided in their available condition. Warranties and responsibility are determined by the Terms of Service, actual commitments, and applicable law. Mandatory consumer protection, non-excludable data-protection duties, liability for intentional misconduct or gross negligence, and other compulsory rights remain."
            ]
          },
          {
            "title": "10. Licensing inquiries",
            "paragraphs": [
              "For privacy questions, rights requests, support, or infringement reports, contact maintainer 唐梓耀 / AdrianSparkle on QQ at 2410710390. The developer’s public profile is https://github.com/Tang1206cc. Identify the product, version, and your request. Do not include passwords, login cookies, connection codes, entire recordings, or unnecessary personal information in your initial message.",
              "For team deployment, source licensing, commercial cooperation, or brand use, explain the intended use and contact rights holders. Proprietary software rights not expressly granted are reserved."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Rain Alert Third-party and Open-source Notices",
        "intro": "The inventory was checked against the current package-lock.json and installed packages and includes 110 production dependency packages. Original copyright and license conditions are available below. They do not license the entire product on the same terms.",
        "sections": [
          {
            "title": "1. Principal dependencies",
            "paragraphs": [
              "Express 5.3.0 (MIT) handles HTTP routing; qrcode 1.5.4 (MIT) generates login QR images; tough-cookie 6.0.2 (BSD-3-Clause) manages official session cookies; web-push 3.6.7 (MPL-2.0) handles Web Push requests and encryption. The full inventory includes transitive dependencies by installation location, rather than only these four packages. The Study with friends browser page additionally uses jsQR (Apache-2.0) to decode QR codes on the device. This browser component is separate from the Node.js production dependency count above. Its original license as supplied with the current product is provided separately; proprietary software terms do not diminish its independent permissions."
            ]
          },
          {
            "title": "2. Original texts, source, and scope",
            "paragraphs": [
              "The downloadable notice retains LICENSE, LICENCE, COPYING, and NOTICE texts found in the checked packages. The installed http_ece 1.2.0 package lacks a separate license file; its MIT text is taken from the matching upstream v1.2.0 tag with the source recorded. A ZIP separately contains the web-push component source, README, package.json, and license for examining MPL-covered files.",
              "This is the current project’s production dependency inventory. It does not imply that every server dependency is delivered to the browser or replace notices required when redistributing Node.js, operating systems, or additional software. Upstream texts retain their original language and govern component rights."
            ]
          },
          {
            "title": "3. Platform relationships and processing",
            "paragraphs": [
              "Rain Classroom, WeChat, and browser notification infrastructure are operated by their respective rights holders. Independent reminders using account authorization and relevant interfaces do not imply their endorsement. Use on Apple devices, as a home-screen Web App, or through Web Push does not mean Apple created, reviewed, or guarantees this product. Platform processing and this service’s data flows are described in the respective policies and this product’s Privacy Policy."
            ]
          },
          {
            "title": "4. Rights and security reports",
            "paragraphs": [
              "If an attribution, inventory, source provision, or copyright notice appears incomplete, tell maintainers the package, version, and evidence so it can be checked and corrected. Do not publish user credentials when reporting security issues.",
              "For privacy questions, rights requests, support, or infringement reports, contact maintainer 唐梓耀 / AdrianSparkle on QQ at 2410710390. The developer’s public profile is https://github.com/Tang1206cc. Identify the product, version, and your request. Do not include passwords, login cookies, connection codes, entire recordings, or unnecessary personal information in your initial message."
            ]
          }
        ],
        "links": [
          {
            "label": "Original jsQR Apache-2.0 license · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "zh-Hant": {
      "licenses": {
        "intro": "本許可說明 Web App 自有代碼和界面可如何使用。訪問服務不等於獲得原始碼再分發、獨立部署或使用 Sparkle 品牌的授權；第三方開源組件另按各自授權條款處理。",
        "links": [],
        "sections": [
          {
            "paragraphs": [
              "雨水提醒的原創代碼、界面、圖形及文件由其各自權利人保留權利，Sparkle 由唐梓耀 / AdrianSparkle、丁銘 / EliasSparkle 共同維護。本許可適用於維護者提供的 Web App 客戶端與服務訪問，不改變第三方內容及開源軟體的授權。"
            ],
            "title": "1. 權利人與適用範圍"
          },
          {
            "paragraphs": [
              "在遵守服務條款的情況下，授予你有限、非獨佔、不可轉讓、不可再許可的權利，在你擁有或獲准使用的設備上訪問實際開放的服務、加載運行隨頁面提供的客戶端代碼，並使用瀏覽器“添加到主畫面”等正常安裝功能。可按產品支持的方式連接本人有權授權的帳號。",
              "可依產品支援方式連接本人帳號，或經好友本人掃描官方二維碼授權後使用好友池；不因此取得超出原授權的帳號、課程或平台使用權。"
            ],
            "title": "2. 有限訪問與客戶端使用"
          },
          {
            "paragraphs": [
              "瀏覽器能夠查看或下載指令碼，不等於原創代碼已按開源授權條款發佈。除法律允許或另有書面授權外，不得複製分發產品本體、修改並運營自有服務、將其打包銷售、出租、再許可、移除權利聲明，或將後台介面作為未經許可的商業服務提供。使用自己帳號合法產生的資料不受此項軟體權利保留限制。"
            ],
            "title": "3. 未授予的自有代碼權利"
          },
          {
            "paragraphs": [
              "本許可不限制適用法律允許的備份、互操作性、安全研究或其他不可被合同排除的權利。研究不得以非法取得帳號憑證、侵害他人隱私或破壞線上服務為手段；報告漏洞時請提供最小必要的復現信息，不公開有效金鑰或使用者資料。"
            ],
            "title": "4. 法定例外與安全研究"
          },
          {
            "paragraphs": [
              "服務使用 Express、qrcode、tough-cookie、web-push 及其依賴。具體版本、版權和許可文字見第三方聲明；其中包含 MIT、ISC、BSD-3-Clause、Apache-2.0 與 MPL-2.0，不能把它們一概稱為 MIT。 好友共學頁面另使用 Apache-2.0 授權的 jsQR QR Code 識別元件，其獨立授權同樣優先適用。",
              "各組件可依法依其授權條款使用、修改或分發，本許可對自有軟體的限制不適用於與組件獨立許可衝突的範圍。web-push 適用 MPL-2.0；本頁提供其所用版本的組件原始碼副本。組件原始碼的提供不包含對整個雨水提醒項目的開源授權。"
            ],
            "title": "5. 第三方開源許可的優先效力"
          },
          {
            "paragraphs": [
              "本許可不授予雨課堂課程內容、其他學生資料或官方平台介面的額外使用權。你對自己資料依法享有的權利保持不變。Sparkle、雨水提醒及第三方品牌、標識的權利各自保留；不得冒用官方身份或聲稱獲得未存在的合作、認證或背書。"
            ],
            "title": "6. 資料、平台與商標"
          },
          {
            "paragraphs": [
              "本服務的訪問許可不包含後台原始碼交付、伺服器運維、服務轉售或獨立部署授權。需要這些權利時，應另行取得明確許可。開發目錄中存在 package.json、依賴清單或可閱讀原始碼，不等於自有項目已經授予通用開源許可。"
            ],
            "title": "7. 無獨立部署或轉售承諾"
          },
          {
            "paragraphs": [
              "本許可在你依法使用所提供客戶端與服務期間適用。你可以停止使用並移除主畫面入口；嚴重違反許可或服務條款時，可依法限制相關訪問，在適當且可補救時給予合理改正機會。終止不影響你的法定資料權利、此前責任及獨立開源授權條款的效力。",
              "更新未另附條款時繼續適用本許可。服務訪問不保證永久在線、任何特定版本持續維護或無限期兼容；重要變更應依服務條款和適用法律處理。"
            ],
            "title": "8. 期限、終止與更新"
          },
          {
            "paragraphs": [
              "在法律允許範圍內，軟體和服務按實際可用狀態提供，保證和責任範圍以服務條款、實際承諾及適用法律確定。任何表述均不排除法定消費者保護、不得免責的個人信息保護義務、故意或重大過失責任及其他強制性權利。"
            ],
            "title": "9. 保證與責任"
          },
          {
            "paragraphs": [
              "隱私咨詢、權利請求、產品支持或侵權通知，可聯繫維護者唐梓耀 / AdrianSparkle：QQ 2410710390；開發者公開主頁為 https://github.com/Tang1206cc。請說明產品名稱、所用版本及請求事項。首次聯繫請勿發送帳號密碼、登入 Cookie、連接碼、完整錄制或其他不必要的個人信息。",
              "團隊部署、原始碼授權、商業合作或品牌使用請說明具體用途並聯繫權利人；未明確授予的自有軟體權利予以保留。"
            ],
            "title": "10. 許可咨詢"
          }
        ],
        "title": "雨水提醒軟體與服務授權條款",
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "intro": "組件清單依據當前工程的 package-lock.json 與實際安裝包核對，收錄 110 個生產依賴包。原始版權聲明和許可條件可在下方完整下載；它們不代表整個產品採用相同許可。",
        "links": [
          {
            "label": "jsQR 原始 Apache-2.0 授權 · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "sections": [
          {
            "paragraphs": [
              "Express 5.3.0（MIT）用於 HTTP 路由；qrcode 1.5.4（MIT）用於生成登入二維碼；tough-cookie 6.0.2（BSD-3-Clause）用於官方工作階段 Cookie 管理；web-push 3.6.7（MPL-2.0）用於 Web Push 請求與加密。完整傳遞依賴按安裝位置分別列入原始聲明，不以四個主依賴代替全部清單。 好友共學瀏覽器頁面另使用 jsQR（Apache-2.0）在本機識別 QR Code；該瀏覽器元件不屬於上述 Node.js 正式環境依賴數量。隨目前產品散布的原始授權文本另行提供，元件權利不因自有軟體授權而縮減。"
            ],
            "title": "1. 主要依賴與用途"
          },
          {
            "paragraphs": [
              "下載文件保留所核對安裝包中的 LICENSE、LICENCE、COPYING 或 NOTICE 原文。http_ece 1.2.0 安裝包未附獨立許可文字，其 MIT 文字取自對應上游 v1.2.0 標籤並記錄來源。web-push 的實際組件原始碼、README、package.json 和授權條款另以 ZIP 提供，便於查閱 MPL 覆蓋文件。",
              "清單描述當前工程使用的生產依賴，不表示每個伺服器依賴都會被發送到瀏覽器，也不替代日後分發 Node.js、操作系統或其他新增軟體時需要隨附的聲明。上游原文保留原語言，以相應授權條款文字確定組件權利。"
            ],
            "title": "2. 原文、對應原始碼與適用範圍"
          },
          {
            "paragraphs": [
              "雨課堂、微信及瀏覽器通知基礎設施由各自權利人運營。本產品通過帳號授權和相關技術介面提供獨立提醒，不代表這些主體認可本產品。使用 Apple 設備、主畫面 Web App 或 Web Push 不表示產品由 Apple 製作、審核或擔保。各平台的個人信息處理和本服務的資料流分別見相應政策及本產品隱私權政策。"
            ],
            "title": "3. 平台關係與資料處理"
          },
          {
            "paragraphs": [
              "如你認為組件清單、署名、原始碼提供或版權說明存在遺漏，請向維護者說明包名、版本和依據，我們會覈實並更正。報告安全問題時請勿公開使用者憑證。",
              "隱私咨詢、權利請求、產品支持或侵權通知，可聯繫維護者唐梓耀 / AdrianSparkle：QQ 2410710390；開發者公開主頁為 https://github.com/Tang1206cc。請說明產品名稱、所用版本及請求事項。首次聯繫請勿發送帳號密碼、登入 Cookie、連接碼、完整錄制或其他不必要的個人信息。"
            ],
            "title": "4. 權利與安全反饋"
          }
        ],
        "title": "雨水提醒第三方與開源聲明",
        "updated": "2026-10-18",
        "version": "1.1"
      },
      "privacy": {
        "intro": "雨水提醒需要由提醒服務持續連接雨課堂並向你的設備推送消息。因此，它會在服務端處理帳號授權、課程與通知資料。請在連接和授權前瞭解以下範圍。",
        "links": [],
        "sections": [
          {
            "paragraphs": [
              "雨水提醒是 Sparkle 旗下的獨立課堂動態提醒 Web App，由唐梓耀 / AdrianSparkle、丁銘 / EliasSparkle 共同創作和維護。本政策適用於 Sparkle 提供的雨水提醒實例、其設備連接、雨課堂掃碼授權、課堂監測與 Web Push 通知。 本政策也涵蓋課堂進入狀態查詢及由你主動發起的好友共學邀請。",
              "它不是雨課堂官方產品，也不代表學校、教師、雨課堂、微信、Apple 或瀏覽器廠商。你使用這些獨立服務時，還需閱讀相應服務的隱私規則。其他人自行部署的實例由實際運營者另行說明，不當然適用本實例的托管地點和管理安排。"
            ],
            "title": "1. 適用範圍與維護者"
          },
          {
            "paragraphs": [
              "取得官方登入 QR Code 時，服務會自動建立裝置連線，無需連線碼。透過官方 QR Code 確認登入後，服務接收雨課堂返回的帳號 ID、姓名或暱稱、學校及學號（以平台實際返回為準），以及所聽課程、課堂 ID、名稱、教師與相關組織標識，用於識別帳號及展示課程。",
              "服務還會在服務端保存官方登入 Cookie、工作階段授權與必要的課堂令牌，以便在你關閉頁面後繼續查詢。我們不要求、也不存儲你的雨課堂或微信密碼。Cookie 和令牌能夠代表登入權限，屬於需要特別保護的憑證；掃碼不是僅在手機本地保存授權。"
            ],
            "title": "2. 帳號資料、課程與登入憑證"
          },
          {
            "paragraphs": [
              "服務查詢正在上課狀態、必要的學習日誌及簽到方式，並在你啓用課內提醒後接收官方課堂事件流。保留字段包括課程與課堂名稱、事件類型、事件標識、平台時間或發現時間及通知所需摘要。",
              "隨機點名事件可能包含教師向課堂公佈的被點名者姓名和學號；這些內容可能存入加密事件記錄並出現在通知正文中，可能涉及同班其他人。請謹慎使用鎖屏預覽及共享設備，不要將這些內容繼續公開傳播。服務不以這些資料建立學生畫像。",
              "目前實作不將題目正文或答案作為持久化提醒內容保存，不代答題、不回應點名或搶答，也不取得裝置位置。一般簽到可能依啟用的課內提醒自動傳送進課請求；你也可為確認未進入的課堂主動發起好友共學，由好友提交相符課堂的 QR Code 文字，服務使用邀請人的官方工作階段處理已核實的普通進課流程。這些請求可能改變官方出勤或進入狀態，具體界線見服務條款。"
            ],
            "title": "3. 課堂動態及其他人的信息"
          },
          {
            "paragraphs": [
              "我們處理隨機裝置識別碼、連線工作階段的雜湊、裝置名稱、建立時間、最近開啟時間、30 天有效期、帳號關聯及各項提醒開關。預設裝置類別依瀏覽器 User-Agent 判斷；目前介面不提供裝置改名或裝置列表，相關資料與管理介面仍保留。",
              "開啓通知時，瀏覽器提供推送端點、p256dh 公鑰及 auth 金鑰；服務保存訂閱，用於向該設備推送。我們還保存發送次數、接受或失敗狀態、時間和隨機回執的雜湊，以排錯、去重和確認系統處理情況。回執不證明你本人看見、聽見或閱讀了通知。",
              "提供網路服務必然處理 IP 地址、請求頭、來源、連接時間和錯誤信息；IP 也用於內存中的防濫用限流。當前應用沒有廣告或行為分析 SDK，不以這些信息進行跨站跟蹤或出售個人信息。基礎設施和通信提供方可以依其自身規則處理技術日誌。"
            ],
            "title": "4. 設備連接、通知與技術信息"
          },
          {
            "paragraphs": [
              "上述信息用於建立設備連接、識別你授權的帳號、查詢和展示課堂、推送所選事件、維護工作階段、遷移入口、保護安全、排障和災難恢復。帳號與課程不是用於廣告、商業畫像或 AI 訓練。拒絕掃碼授權則無法讀取課程；拒絕通知權限仍可在已登入頁面查看信息，但不能向該設備發送系統通知。",
              "敏感憑證、其他學生信息以及跨地區處理應按適用法律履行必要的告知、合法性基礎及同意程序。本政策說明實際資料流，不將瀏覽本頁、取得登入 QR Code或掃描二維碼一概視為已經完成所有依法需要的單獨同意。你不應授權自己無權提供的帳號或資料。"
            ],
            "title": "5. 處理目的與授權邊界"
          },
          {
            "paragraphs": [
              "設備連接使用 rain_session Cookie。服務端保存其雜湊；在 HTTPS 下該 Cookie 帶有 Secure、HttpOnly 及 SameSite=Strict 屬性，最長隨設備連接維持 30 天，續期會重新設置。它用於認證，不是廣告 Cookie；退出雨課堂帳號不等於自動清除此設備連接 Cookie。",
              "裝置通知由瀏覽器權限管理。共同學習及邀請協助頁只在你主動開始掃描並授權後使用相機，也可選擇圖片；二維碼在瀏覽器識別，只提交識別文字，不上傳影片或所選圖片。相機變焦依裝置能力使用硬體或數位縮放；不申請麥克風、定位或通訊錄。"
            ],
            "title": "6. Cookie、瀏覽器存儲與權限"
          },
          {
            "paragraphs": [
              "Sparkle 當前提供的實例運行在騰訊雲中國香港節點。若你位於中國內地或其他地區，提交給該實例的帳號資料、Cookie、課程、課堂事件及設備訂閱會傳到香港處理和保存。授權請求還會與雨課堂官方介面及課堂事件服務通信。 持有有效共學邀請的人可讀取邀請人的顯示名稱、課堂名稱、邀請有效期和處理狀態，並可為指定課堂提交進課 QR Code。QR Code 文字經香港服務轉交雨課堂官方介面；好友不接收邀請人的 Cookie、密碼或完整課程列表。請只向可信且獲准協助的人分享邀請連結。",
              "Web Push 根據瀏覽器使用 Apple、Google、Mozilla 或 Microsoft 等推送基礎設施，相關服務可能位於其他國家或地區；服務會向訂閱端點發送加密推送載荷及必要路由信息，瀏覽器和操作系統負責呈現。通知明文最終可出現在設備上，推送加密不表示整個提醒服務端無法讀取。",
              "當前域名由 Cloudflare 提供註冊與 DNS 服務，按現有配置業務流量不經過其 CDN 代理；DNS 服務仍可能處理解析所需信息。我們不出售或出租個人信息。依法披露、必要的安全處置或你明確指示的其他傳遞，應限於相應必要範圍。"
            ],
            "title": "7. 接收方、處理位置與跨地區傳遞"
          },
          {
            "paragraphs": [
              "帳號資料、課程快取、登入 Cookie、課堂憑證、事件載荷和推送訂閱以 AES-256-GCM 加密保存。帳號與設備標識、關聯關係、開關、時間、狀態及其他運行字段並非整庫逐項加密。資料庫與主金鑰由同一服務主機管理，因此這不是能抵御伺服器完全失陷的端到端加密。",
              "服務採用 HTTPS、工作階段雜湊、來源校驗、請求限流及限定推送端點等措施。管理者進行授權運維時可能具備解密所需權限。若發生個人信息安全事件，我們會採取補救措施，並依適用法律向受影響者和有關機關通知；通知會說明所涉信息、可能影響、處置措施及聯繫途徑。我們不承諾絕對安全；請只在你信任的設備上連接，不轉交連接碼、Cookie、遷移連結或系統通知。"
            ],
            "title": "8. 加密與安全措施的限度"
          },
          {
            "paragraphs": [
              "設備連接自創建或手動續期起為 30 天；到期後不能繼續用該工作階段訪問。官方登入失效會暫停相關監測。當帳號最後一個仍有效的關聯設備退出、被撤銷或到期後，服務會在相應退出處理或定期維護中清空該帳號的登入 Cookie 及已保存課堂憑證，並暫停連接。",
              "已結束課堂及其提醒記錄、非當前課堂的歷史事件和模擬推送記錄，按代碼中的 90 天閾值在定期維護時清理；活躍課堂及受保護的相關記錄可能超過該期限。遷移憑證一次有效、5 分鐘到期。 共學邀請使用隨機權杖；服務以雜湊索引在程序記憶體中保存邀請人顯示名稱、指定課堂、約 30 分鐘有效期、嘗試次數及結果狀態。過期後不能繼續使用，重新啟動後不保留邀請；過期記憶體項在後續建立邀請時清理，不代表到期瞬間逐位元組抹除。識別出的 QR Code 文字用於當次處理，目前共學模組不將相機畫面、所選圖片或 QR Code 文字寫入資料庫。官方平台的進課記錄及基礎設施技術日誌依各自實際規則處理。",
              "當前實現沒有為所有帳號檔案、課程快取、設備元資料、狀態字段及備份設置統一的自動刪除期限。30 天連接或 90 天歷史規則不等於整帳號在該時點徹底刪除；如不再使用並希望刪除其餘資料，請向維護者提出請求。沒有自動清理機制不等於獲得無限期保留的授權；處理目的不再必要或依法應當刪除時，我們會依法處理，並核對需人工清理的範圍。"
            ],
            "title": "9. 在線資料的保存期限"
          },
          {
            "paragraphs": [
              "為恢復服務，備份任務保存資料庫快照、服務金鑰、推送金鑰及來源配置。導出備份採用隨機 AES-256-GCM 資料金鑰與獨立 RSA-OAEP 公鑰封裝，解密私鑰另行保管；但雲端還可能保留受文件權限保護的 SQLite 快照，且同機運行資料可由主機權限訪問。備份的保護程度因此取決於副本類型及存放位置。",
              "現有備份流程未設置統一自動過期時間，離線導出副本也可能繼續保留。刪除在線資料不立即清除歷史備份。提出刪除請求時可要求說明剩餘備份、保留理由及處置安排；需人工覈實，不能承諾尚未實現的一鍵即時抹除。支持對話和你主動提交的附件按處理事項的必要範圍保留，不用於廣告或訓練。"
            ],
            "title": "10. 備份、支持資料與清理範圍"
          },
          {
            "paragraphs": [
              "你可分別關閉五類提醒、在系統中撤銷通知、退出本裝置的雨課堂登入，或不再續期連線。目前介面不提供裝置列表與撤銷入口；需要核對或撤銷其他裝置時，可聯絡維護者。關閉某個開關僅停止該裝置該類提醒；其他裝置開啟時帳號仍可能繼續監測。退出會解除本裝置連結並清除其伺服器端推播訂閱，瀏覽器的授權或訂閱狀態可能仍需在系統設定中管理。",
              "在最後一個有效關聯設備退出後釋放登入憑證，不代表帳號檔案、歷史、其他設備元資料或備份全部刪除。當前產品沒有整帳號自動刪除按鈕。你可聯繫維護者申請瞭解、訪問、複製、更正、刪除、限制處理、撤回授權或處理其他人的信息異議。"
            ],
            "title": "11. 關閉、退出、撤銷與刪除請求"
          },
          {
            "paragraphs": [
              "我們會以與風險相稱的方式確認請求與帳號的關係，僅索取處理該請求所必要的信息；不要發送登入 Cookie、密碼或遷移憑證。請求應依法及時處理。因技術隔離、備份、爭議或法定保留義務不能立即全部處理時，應說明原因、範圍及後續安排；法律要求停止其他處理時，保留的資料僅用於必要存儲與安全保護，不恢復用於日常監測。備份恢復需核對已經處理的權利請求。產品現有按鈕不限制法律賦予的權利。你可向有管轄權的監管機關投訴。"
            ],
            "title": "12. 請求覈實、法定義務與救濟"
          },
          {
            "paragraphs": [
              "本服務面向能夠合法授權其帳號與設備的使用者。未成年人應在監護人及適用學校規則允許的範圍內使用；不面向未滿 14 週歲兒童主動提供帳號連接服務。當前沒有年齡核驗機制；如發現未經所需授權處理兒童信息，可聯繫維護者覈實並依法處置。",
              "課堂中的姓名、學號與動態只用於提醒目的，不應據此評價他人的出勤或學習表現；實際學校與教師記錄以官方渠道為準。"
            ],
            "title": "13. 未成年人及學習場景"
          },
          {
            "paragraphs": [
              "新增資料類別、處理目的、托管地點或接收方等重要變化，會反映在本頁並更新日期。依法需要額外告知、單獨同意或其他程序時，不能僅以修改文字或繼續使用替代。各語言版本旨在表達相同範圍；差異不減損適用法律賦予你的權利。"
            ],
            "title": "14. 政策更新與語言版本"
          },
          {
            "paragraphs": [
              "隱私咨詢、權利請求、產品支持或侵權通知，可聯繫維護者唐梓耀 / AdrianSparkle：QQ 2410710390；開發者公開主頁為 https://github.com/Tang1206cc。請說明產品名稱、所用版本及請求事項。首次聯繫請勿發送帳號密碼、登入 Cookie、連接碼、完整錄制或其他不必要的個人信息。",
              "請在請求中注明“雨水提醒”和希望處理的範圍；涉及其他被點名者信息時，可提供最小化的事件時間與課程線索，無需公開完整姓名和學號。"
            ],
            "title": "15. 聯繫我們"
          },
          {
            "title": "15. 好友池、分別授權與協助共學",
            "paragraphs": [
              "「共同學習」的好友池固定包含本人，最多新增五位好友，依本人帳號與目前裝置隔離。每位好友須自行掃描官方登入二維碼確認授權；服務保存其官方回傳的帳號識別、顯示資料與登入工作階段，用於核對身分、顯示登入狀態及依主動掃描請求協助進課。不要求或保存好友密碼；官方登入憑證由伺服器處理，並非只保存在掃描者手機。好友工作階段不加入本人課內提醒帳號表，也不自動開啟該好友的課堂提醒。",
              "好友資料與登入憑證在獨立好友資料庫中加密保存，帳號及裝置關聯、狀態與時間等執行欄位不代表整庫加密。目前裝置持有人可看到該池好友顯示名稱、可取得的頭像與登入狀態，並可發起協助；好友應了解此存取範圍，只在可信且獲准使用的裝置授權。服務可能從官方允許的頭像來源取得顯示圖片；相關請求依來源服務規則處理。",
              "「幫助好友共學」由你主動使用相機或選擇圖片。二維碼在目前瀏覽器識別，服務接收識別文字，分別使用池內各帳號工作階段核對課堂並提交支援的請求，逐項查詢官方結果。它可能改變對應帳號的官方進課記錄，不代答題或回應點名。影片與所選圖片不上傳，識別文字用於當次處理；任務與結果在程序記憶體中短期保存，不能作為永久記錄或到場證明。",
              "移除好友會刪除目前池中對應記錄並使舊任務失效，不向雨課堂發送好友登出請求。退出、切換本人帳號或撤銷裝置時，作廢該帳號/裝置池的好友登入憑證；裝置到期後於維護時作廢。好友關係與資料保留為失效狀態，尚未統一設定自動刪除期限，可重新登入原好友或提出刪除請求；其他有效裝置的池不受影響。本人官方登入失效但裝置仍有效時，不自動作廢好友憑證，仍可協助有效好友。獨立好友資料庫納入現有加密備份，刪除線上記錄不代表同時清除歷史備份。"
            ]
          }
        ],
        "title": "雨水提醒隱私權政策",
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "intro": "雨水提醒提供輔助性的課堂動態提示。請特別留意帳號授權、普通簽到可能發生的實際操作，以及推送無法保證及時送達的邊界。",
        "links": [],
        "sections": [
          {
            "paragraphs": [
              "本條款適用於 Sparkle 由唐梓耀 / AdrianSparkle、丁銘 / EliasSparkle 維護的雨水提醒 Web App 與提醒實例。請在連接服務、授權帳號和開啓提醒前閱讀；不同意時不要進行這些操作。依法需要單獨同意或監護人同意的事項，不能僅由繼續使用推定。"
            ],
            "title": "1. 範圍、提供者與條款接受"
          },
          {
            "paragraphs": [
              "雨水提醒不是雨課堂、學校或教師的官方產品，與雨課堂、微信、Apple 及瀏覽器廠商不存在由本頁面聲明的合作、代理或背書。課程安排、作業、考勤和成績以學校、教師及雨課堂官方記錄為準。",
              "本產品只作輔助提醒，不替代官方客戶端、課堂通知、手動核查和本人參加課程的義務。當前並非對所有課前、課後作業、考試或學校通知提供全覆蓋提醒。"
            ],
            "title": "2. 獨立工具及官方渠道"
          },
          {
            "paragraphs": [
              "你應有權使用相應雨課堂帳號和設備，並遵守學校、教師及上游平台的使用規則。不得代為連接未授權帳號、借用他人工作階段。未成年人使用須具備適用法律要求的監護授權；未滿 14 週歲請勿連接帳號。",
              "只確認由你發起的官方登入 QR Code；不要向維護者、網頁輸入框或陌生人提交帳號密碼。目前首頁無需連線碼，取得 QR Code 時自動建立裝置連線；只有掃碼確認後才能讀取相應雨課堂帳號資料。"
            ],
            "title": "3. 使用資格與可信連接"
          },
          {
            "paragraphs": [
              "掃碼確認後，提醒服務需要在服務端保存並使用官方登入憑證，以查詢帳號、課程、正在上課狀態和通知所需課堂事件，並向你登記的設備發送消息。詳細資料、接收方、香港托管和保存規則見隱私權政策。 你主動建立共學邀請時，亦指示服務為該指定課堂使用你的官方工作階段處理好友提交的相符進課 QR Code。邀請約 30 分鐘有效，分享前應確認接收人及會展示的姓名、課堂資訊；這不向好友授予你的密碼、Cookie 或其他課堂的存取權。",
              "啓用提醒前，請確認理解該處理範圍。維護者不會把服務授權解釋為讀取所有無關資料、對外發佈你的課程信息、營銷或 AI 訓練的許可。"
            ],
            "title": "4. 你授予的處理範圍"
          },
          {
            "paragraphs": [
              "開啓課堂內練習、隨機點名、搶答或彈幕提醒後，服務會按平台返回的規則取得課堂授權。平台明確標記普通簽到時，服務可能自動發送進入課堂請求，該請求可能在官方平台產生進入或簽到記錄；不能將本服務描述為完全沒有寫入操作的唯讀工具。",
              "目前支援主動邀請好友掃描相符課堂的進課 QR Code，僅限已核實的普通 QR Code 流程。位置、未知流程或其他未支援的限制仍須於官方用戶端完成；服務不偽造位置、不破解 QR Code、不代答題、不回應點名或代為搶答。使用自動進入或好友共學均須符合學校、教師和平台規則，不得將帳號進課狀態表述為本人到場或用其偽造出勤。"
            ],
            "title": "5. 課內提醒與簽到的實際影響"
          },
          {
            "paragraphs": [
              "五類提醒分別按設備設置；開啓系統通知與具體提醒開關是不同授權。推送測試會發送標注為模擬的五類消息，即使相應開關關閉也可能發送，但不會改變開關。測試可達不證明真實課堂事件源已經接通。",
              "點名通知可能顯示課堂公開的被點名者姓名和學號，其他通知會顯示課程和事件摘要。請管理鎖屏預覽和共享設備，不公開轉發其他學生的信息。平台未提供可信開課時間時，頁面顯示的是發現時間。"
            ],
            "title": "6. 通知開關、測試與顯示內容"
          },
          {
            "paragraphs": [
              "正常情況下約 5 秒查詢與課堂事件連接並行工作，但它不是送達時限或服務等級承諾。平台介面變化、網路、服務維護、系統省電、通知權限、推送廠商、瀏覽器退出策略、登入失效及連接到期，均可能造成延遲、遺漏、重復或停止。",
              "“推送服務已接受”表示請求被其接受；“設備已接收”表示系統處理回執，不等於使用者已閱讀或聽見。請持續檢查官方渠道，勿將本工具作為考勤、考試或重要截止日期的唯一保障。"
            ],
            "title": "7. 及時性與可靠性邊界"
          },
          {
            "paragraphs": [
              "裝置連線通常為 30 天，到期前七天頁面顯示續期提示。目前介面不提供裝置命名、裝置列表或撤銷入口；發現陌生連線時請聯絡維護者核對處理。官方授權失效或連線到期會影響監測與提醒。",
              "正式入口與保留的舊入口屬於不同瀏覽器來源。遷移使用 5 分鐘內一次有效的憑證，轉移帳號、設置及所需歷史；新來源通知權限仍需重新授權。遷移連結具有暫存訪問能力，不應轉發。舊訂閱停用規則以新訂閱實際登記狀態為準。"
            ],
            "title": "8. 多設備、有效期與入口遷移"
          },
          {
            "paragraphs": [
              "不得借本服務繞過學校或平台的訪問控制、偽造出勤、竊取或共享憑證、抓取無關人員資料、實施騷擾或侵權、惡意刷推送、攻擊介面或轉售未經授權的訪問。不得把課程、姓名、學號及學習動態用於廣告畫像或公開曝光。",
              "正常使用仍應符合上游平台及學校規則；本產品無法替你取得第三方授權。發現異常裝置或錯誤發送時，請及時關閉相關提醒並聯絡維護者核對、撤銷異常裝置。"
            ],
            "title": "9. 合理使用與禁止行為"
          },
          {
            "paragraphs": [
              "當前為公測階段，不承諾永久可用、永久免費、固定響應時間或特定容量。任何實際收費、訂閱或新增重要使用條件都應在生效前明確展示並履行必要程序，本條款本身不創建付款義務。",
              "為維護、安全、資源約束或上游變更，可能調整或暫停服務；在可合理預見的情況下，應提供適當說明與遷移、導出或停止使用的指引。緊急風險處置可先採取必要措施，並在適當時說明，不以此排除法定義務。"
            ],
            "title": "10. 可用性、費用、支持與變更"
          },
          {
            "paragraphs": [
              "你可以關閉提醒、退出帳號、請求維護者撤銷裝置或停止使用。最後一個有效裝置解除連結後釋放登入憑證，但帳號檔案、歷史和備份的刪除規則另見隱私權政策；停止使用不自動完成整個帳號刪除。",
              "對於明顯濫用、侵權或安全風險，可在必要範圍限制相關連接；適當時應說明理由並允許反饋或糾正。服務終止後依法存續的保密、知識產權與資料保護義務仍有效。"
            ],
            "title": "11. 退出、暫停與終止"
          },
          {
            "paragraphs": [
              "你保留自己資料的權利；第三方課程資料歸相應權利人。本服務不會因處理資料而取得任意使用或再授權的權利。產品使用許可與開源組件另見“授權條款”和“第三方聲明”。",
              "在法律允許範圍內，服務按實際可用狀態提供，不保證無錯、持續運行或每條消息及時送達。損失責任依實際事實、過錯及適用法律確定。本條款不免除故意、重大過失、人身損害、違法處理個人信息或其他依法不得免責的責任，不削減強制性消費者救濟。"
            ],
            "title": "12. 權利、保證與責任"
          },
          {
            "paragraphs": [
              "有疑問或爭議可先聯繫維護者；你仍可向依法有管轄權的法院或監管機關尋求救濟，不受強制仲裁、指定境外法院或放棄法定權利的限制。個別條款不能執行時，其餘獨立有效條款繼續適用。",
              "重要修訂會更新日期並按適用法律履行通知或同意程序。各語言版本力求同義，不以翻譯差異排除當地法律保護。"
            ],
            "title": "13. 爭議、解釋與更新"
          },
          {
            "paragraphs": [
              "隱私咨詢、權利請求、產品支持或侵權通知，可聯繫維護者唐梓耀 / AdrianSparkle：QQ 2410710390；開發者公開主頁為 https://github.com/Tang1206cc。請說明產品名稱、所用版本及請求事項。首次聯繫請勿發送帳號密碼、登入 Cookie、連接碼、完整錄制或其他不必要的個人信息。"
            ],
            "title": "14. 聯繫方式"
          },
          {
            "title": "15. 好友池授權與協助邊界",
            "paragraphs": [
              "新增好友須由好友本人確認官方二維碼登入，並了解憑證會由提醒服務保存、目前帳號與裝置持有人可發起協助。不得未經許可保留、轉交或使用他人的工作階段，不得規避學校、教師或官方平台規則。本人及最多五位好友不代表對任何課堂都有存取或簽到資格。",
              "邀請連結與好友池是不同流程：前者的協助者不必登入，後者必須逐人授權。幫助好友共學須主動掃描適用課堂二維碼，結果依各帳號分別核實；提交、等待或進入記錄都不證明本人到場。受限或未支援流程仍須使用官方用戶端，不能保證所有學校、課堂或帳號均可用。退出、移除、失效、備份及其餘資料的處理範圍見隱私權政策。"
            ]
          }
        ],
        "title": "雨水提醒服務條款",
        "version": "1.3",
        "updated": "2026-10-23"
      }
    },
    "ja": {
      "privacy": {
        "title": "雨警報プライバシーポリシー",
        "intro": "Rain Alert は、リマインダー サービスを通じて Rain Classroom に接続し、デバイスに通知を送信します。したがって、アカウント認証、コース情報、通知データはサーバー上で処理されます。アカウントを接続または認証する前に、このスコープを確認してください。",
        "sections": [
          {
            "title": "1. 範囲と保守者",
            "paragraphs": [
              "雨水提醒 (Rain Alert) は、Sparkle の独立した教室イベント リマインダー Web アプリで、唐梓耀 / AdrianSparkle および丁铭 / EliasSparkle によって作成および管理されています。このポリシーは、Sparkle で運用されるインスタンス、デバイスのペアリング、Rain Classroom QR 認証、教室のモニタリング、および Web プッシュを対象としています。このポリシーは、教室への入室状況の確認や、積極的に作成する友達との学習への招待状も対象としています。",
              "これは Rain Classroom の公式製品ではなく、学校、教師、Rain Classroom、WeChat、Apple、またはブラウザ ベンダーを代表するものではありません。それらのサービスには個別のプライバシー ルールがあります。独立して運営されるインスタンスには、独自の運営者からの開示が必要です。当社のホスティングおよび管理の取り決めは自動的に適用されるわけではありません。"
            ]
          },
          {
            "title": "2. アカウントの詳細、コース、資格情報",
            "paragraphs": [
              "公式サインイン QR コードを要求すると、デバイス セッションが自動的に作成されます。接続コードは必要ありません。公式 QR サインインを確認すると、サービスは、Rain Classroom から返されたアカウント ID、名前またはニックネーム、学校、学生番号、および登録済みのコース、教室 ID、名前、教師、および関連組織の ID を受け取ります。これらはアカウントを識別し、コースを表示します。",
              "サーバーには、公式ログイン Cookie、セッション認証、ページを閉じた後もクエリを続行するために必要な教室トークンも保存されます。当社は、Rain Classroom または WeChat のパスワードを要求したり保存したりしません。 Cookie とトークンはログイン権限を表すことができるため、特別な保護が必要です。スキャンでは、認証が携帯電話にのみ保持されるわけではありません。"
            ]
          },
          {
            "title": "3. 教室のイベントやその他の情報",
            "paragraphs": [
              "このサービスは、進行中のクラス、必要な学習ログ、チェックイン モードを照会します。クラス内リマインダーを有効にすると、公式の教室イベント ストリームを受信します。保存される通知フィールドには、コースと教室の名前、イベントの種類と識別子、プラットフォームまたは検出時間、および必要な概要が含まれます。",
              "ランダム選択イベントには、教師がクラスに発表した名前と生徒番号を含めることができます。これらは暗号化されたイベント レコードに保存され、クラスメートに関する情報を含む通知本文に表示される場合があります。ロック画面のプレビューと共有デバイスは慎重に管理し、これらの詳細を再公開しないでください。このサービスは、学生のプロフィールを作成するためにそれらを使用しません。",
              "現在の実装では、質問テキストや回答を永続的なリマインダー コンテンツとして保持したり、質問に回答したり、点呼やクイック回答に応答したり、デバイスの位置情報を収集したりすることはありません。通常の出席は、有効になっているクラス内リマインダーを通じて入場リクエストをトリガーする場合があります。エントリーされていないことが確認されたクラスに積極的に友人を招待することもできます。友人は、一致する教室の QR コードのデコードされたテキストを送信し、サービスは検証された通常の入場フローに招待者の公式セッションを使用します。これらのリクエストにより、公式の入国記録または出席記録が変更される場合があります。利用規約を参照してください。"
            ]
          },
          {
            "title": "4. デバイス、通知、および技術情報",
            "paragraphs": [
              "当社は、ランダムなデバイス識別子、ハッシュされた接続セッション、デバイス ラベル、作成時刻と最後に開いた時刻、30 日間の有効期限、アカウントの関連付け、リマインダーの切り替えを処理します。初期デバイス カテゴリはブラウザのユーザー エージェントから派生します。デバイスの名前変更とデバイス リストは、現在のインターフェイスでは公開されません。関連するデータと管理エンドポイントは残ります。",
              "通知を有効にすると、ブラウザーはプッシュ エンドポイント、p256dh 公開キー、および認証シークレットを提供します。サーバーは、そのデバイスに送信するサブスクリプションを保存します。配信の試行、承認または失敗のステータス、タイムスタンプ、およびランダムな受信のハッシュは、トラブルシューティング、重複排除、およびシステム処理の確認をサポートします。領収書は、通知を見たり聞いたり読んだりしたことを証明するものではありません。",
              "ネットワーク サービスの提供には、IP アドレス、リクエスト ヘッダー、送信元、接続時間、エラー情報の処理が含まれます。 IP アドレスは、メモリ内の不正使用レート制限もサポートします。現在のアプリには広告や行動分析 SDK はなく、これらのデータをクロスサイト追跡や個人情報の販売に使用することはありません。インフラストラクチャおよび通信プロバイダーは、独自のルールに従って技術ログを処理する場合があります。"
            ]
          },
          {
            "title": "5. 目的と権限の範囲",
            "paragraphs": [
              "これらのデータは、ペアリング、承認されたアカウントの識別、クラスのクエリと表示、選択したイベントの送信、セッションの維持、オリジンの移行、セキュリティの保護、トラブルシューティング、および回復をサポートします。アカウントとコースのデータは、広告、商業プロファイリング、AI トレーニングには使用されません。 QR認証がないとコースを読むことができません。通知のアクセス許可がなければ、サインインしたページに情報を表示することはできますが、システム通知をそのデバイスに送信することはできません。",
              "機密の資格情報、クラスメートに関する情報、および地域を越えた処理には、法律に基づいて適用される通知、法的根拠、および同意手順が必要です。このポリシーでは実際の流れを説明します。それを表示したり、サインイン QR コードを要求したり、QR コードをスキャンしたりしても、個別に必要な同意をすべて満たしたものとして扱われません。提供する権利のないアカウントや情報を承認しないでください。"
            ]
          },
          {
            "title": "6. Cookie、ブラウザのストレージ、権限",
            "paragraphs": [
              "デバイス接続では、rain_session Cookie が使用されます。サーバーはそのハッシュを保存します。 HTTPS では、Secure、HttpOnly、および SameSite=Strict 属性があり、デバイス接続で最大 30 日間持続し、更新時にリセットされます。これは認証 Cookie であり、広告 Cookie ではありません。 Rain Classroom からサインアウトしても、このデバイス接続 Cookie は自動的に消去されません。",
              "ブラウザの権限はデバイスの通知を制御します。共同学習および招待支援ページでは、スキャンを積極的に開始してアクセスを許可した後にのみカメラが使用され、画像を受け入れることもできます。 QR デコードはブラウザーで行われます。デコードされたテキストのみが送信され、ビデオや選択した画像はアップロードされません。カメラのズームは、デバイスがサポートするハードウェアまたはデジタル ズームを使用します。マイク、場所、連絡先は要求されません。"
            ]
          },
          {
            "title": "7. 受信者、ホスティング、および国際転送",
            "paragraphs": [
              "現在の Sparkle が運用するインスタンスは、中国の香港にある Tencent Cloud 上で実行されています。中国本土または別の地域にお住まいの場合、このインスタンスに送信されたアカウントの詳細、Cookie、コース、イベント、デバイスのサブスクリプションは香港に転送され、香港に保存されます。承認と監視は、公式の Rain Classroom API および教室イベント サービスとも通信します。有効な研究招待状を持っている人は誰でも、招待者の表示名、クラス名、有効期限、処理ステータスを読み取り、指定されたクラスのエントリー QR コードを送信できます。デコードされたテキストは、香港のサービスを経由して、Rain Classroom の公式インターフェイスに渡されます。友人は、招待者の Cookie、パスワード、または完全なコース リストを受け取りません。招待状は、支援を許可されている信頼できる人とのみ共有してください。",
              "ブラウザーに応じて、Web プッシュは Apple、Google、Mozilla、Microsoft などのインフラストラクチャを使用し、他の国や地域でデータを処理する場合があります。このサービスは、暗号化されたプッシュ ペイロードと必要なルーティング情報をサブスクリプション エンドポイントに送信します。ブラウザとオペレーティング システムがそれらを表示します。平文の通知がデバイスに表示される場合があります。プッシュ暗号化は、リマインダー サーバーが基礎となるデータを読み取れないことを意味するものではありません。",
              "Cloudflareは現在、ドメイン登録とDNSを提供しています。既存の構成では、アプリケーション トラフィックは CDN プロキシを通過しません。 DNS 処理には依然として必要なクエリ情報が含まれます。当社は個人情報を販売または貸与することはありません。法律で要求される開示、必要なセキュリティ処理、または明示的に指示するその他の転送は、関連する目的に限定される必要があります。"
            ]
          },
          {
            "title": "8. 暗号化とセキュリティの制限",
            "paragraphs": [
              "アカウント プロファイル、コース キャッシュ、ログイン Cookie、教室の認証情報、イベント ペイロード、およびプッシュ サブスクリプションは、AES-256-GCM を使用して保存されます。アカウントとデバイスの識別子、関連付け、スイッチ、時間、ステータス、およびその他の操作フィールドがすべて個別に暗号化されるわけではありません。データベースとマスターキーは同じホスト上で管理されます。これは、サーバーの完全な侵害に耐えられるエンドツーエンドの暗号化ではありません。",
              "このサービスは、HTTPS、セッション ハッシュ、オリジン チェック、レート制限、制限付きプッシュ エンドポイントを使用します。権限のある管理者は、復号化に必要なアクセス権を持っている場合があります。個人情報セキュリティインシデントが発生した場合、当社は是正措置を講じ、適用法の要求に応じて影響を受ける人々および当局に通知し、関係する情報、考えられる影響、講じられた措置、連絡ルートを説明します。絶対的な安全は約束されません。信頼できるデバイスのみを接続し、接続コード、Cookie、移行リンク、またはプライベート通知を共有しないでください。"
            ]
          },
          {
            "title": "9. オンライン保持",
            "paragraphs": [
              "デバイスの接続は、作成または手動更新から 30 日間持続します。期限切れのセッションではアクセスが許可されなくなります。無効な公式承認により、関連する監視が一時停止されます。最後の有効な関連付けられたデバイスがサインアウトするか、取り消されるか、期限切れになると、ログアウト処理または定期メンテナンスにより、アカウントのログイン Cookie と保存されている教室の資格情報がクリアされ、接続が一時停止されます。",
              "完了したクラスとその配信レコード、アクティブなクラス以外の履歴イベント、およびシミュレートされたプッシュ レコードは、コード内の 90 日のしきい値を使用した定期メンテナンス中にクリーンアップされます。アクティブなクラスと保護された関連レコードは、より長く残る可能性があります。移行認証情報は 1 回のみ使用され、5 分後に期限切れになります。研究への招待状にはランダムなトークンが使用されます。プロセス メモリ内のハッシュ インデックスには、招待者の表示名、指定されたクラス、約 30 分の有効期限、試行回数、および結果の状態が保持されます。期限切れの招待は使用できません。また、招待はサービスの再起動後も存続しません。期限切れのメモリ エントリは、期限切れ時のバイト レベルの消去が保証されるのではなく、後で招待が作成されるときにクリアされます。デコードされた QR テキストが現在のリクエストに使用されます。スタディ モジュールは、カメラ フレーム、選択した画像、または QR テキストをデータベースに書き込みません。公式立ち入り記録とインフラ技術ログは、それぞれの実際の取り扱い規則に従います。",
              "現在の実装では、すべてのアカウント プロファイル、コース キャッシュ、デバイス メタデータ、ステータス フィールド、またはバックアップに対して均一な自動削除期間がありません。 30 日間の接続ルールと 90 日間の履歴ルールでは、その時点でアカウント全体が削除されるわけではありません。サービスの使用を停止し、残っているデータを削除したい場合は、メンテナに連絡してください。自動クリーンアップがないことは、無期限の保存を許可するものではありません。データが不要になった場合、または法的に削除が必要な場合は、適用法に基づいて対応し、手動での対応が必要な範囲を確認します。"
            ]
          },
          {
            "title": "10. バックアップ、サポート資料、およびクリーンアップの範囲",
            "paragraphs": [
              "リカバリ バックアップには、データベース スナップショット、サービス キー、プッシュ キー、および元の構成が含まれます。エクスポートされたバックアップでは、別の RSA-OAEP 公開キーでラップされたランダムな AES-256-GCM データ キーが使用されます。復号化用の秘密キーは別に保持されます。ただし、クラウド ストレージでは、ファイル アクセス許可によって保護された SQLite スナップショットを保持することもでき、ホスト権限で運用データにアクセスできます。したがって、バックアップ保護はコピーの種類とコピーが保存されている場所によって異なります。",
              "既存のバックアップ プロセスには、統一された自動有効期限がありません。オフラインエクスポートは残る可能性があります。オンライン データを削除しても、履歴バックアップはすぐには消去されません。削除リクエストでは、残りのバックアップ、保持理由、および処分の取り決めについて尋ねられる場合があります。これには手動による検証が必要です。実装されていないワンクリックの即時消去は約束されていません。サポートの会話と送信された添付ファイルは、広告やトレーニングのためではなく、問題の必要に応じて保持されます。"
            ]
          },
          {
            "title": "11. 無効化、サインアウト、取り消し、削除のリクエスト",
            "paragraphs": [
              "5 つのリマインダー タイプをそれぞれ無効にしたり、システム通知を取り消したり、このデバイスで Rain Classroom からサインアウトしたり、接続の更新を停止したりできます。現在のインターフェイスにはデバイス リストや失効制御がありません。他のデバイスを確認または取り消すには、メンテナに連絡してください。スイッチは、そのデバイスの対応するリマインダーのみを停止します。別のデバイスでリマインダーが有効になっている場合、監視は継続される場合があります。サインアウトすると、このデバイスのリンクが解除され、サーバー側のプッシュ サブスクリプションが削除されます。ブラウザのアクセス許可やサブスクリプションの状態によっては、個別のシステム管理が必要になる場合があります。",
              "最後の有効なデバイスが終了した後にログイン認証情報を解放しても、すべてのプロファイル、履歴、他のデバイスのメタデータ、またはバックアップは消去されません。現在の製品にはアカウント全体の自動削除ボタンはありません。他人の情報に関する情報、アクセス、コピー、修正、削除、制限、承認の取り消し、または異議申し立ての処理を要求するには、管理者に連絡してください。"
            ]
          },
          {
            "title": "12. 検証、法的保持、および救済",
            "paragraphs": [
              "リクエストとアカウントの関係をリスクに応じて検証し、必要な情報のみを伺います。 Cookie、パスワード、または移行認証情報を送信しないでください。リクエストは法律の要求に従って速やかに処理される必要があります。技術的な分離、バックアップ、紛争、または法的保持義務により直ちに完了できない場合は、その理由、範囲、およびその後の取り決めを説明する必要があります。法律により他の処理の停止が義務付けられている場合、保持されるデータは通常の監視に戻されるのではなく、必要なストレージとセキュリティに制限されます。復元するには、以前に処理された権利要求を確認する必要があります。法的権利は既存のインターフェイス ボタンに限定されません。管轄の規制当局に苦情を申し立てることができます。"
            ]
          },
          {
            "title": "13. 未成年者と学習の背景",
            "paragraphs": [
              "このサービスは、自分のアカウントとデバイスを合法的に認証できるユーザーを対象としています。未成年者は適切な保護者の許可が必要であり、学校の規則に従わなければなりません。アカウント接続は 14 歳未満の子供には向けられていません。現在、年齢確認メカニズムはありません。子供の情報が必要な許可なしに処理された可能性がある場合は、法に基づいて調査および処理できるよう、管理者に連絡してください。",
              "名前、生徒番号、教室での出来事は思い出させるために使用され、他の人の出席や成績を判断するために使用されるものではありません。公式ルートを通じた学校と教師の記録は依然として権威があります。"
            ]
          },
          {
            "title": "14. 変更点と言語バージョン",
            "paragraphs": [
              "データのカテゴリ、目的、ホスティング、または受信者に対する重大な変更は、日付とともにここに説明されます。テキストの更新や継続使用は、法的に必要な追加通知、個別の同意、またはその他の手順に代わるものではありません。言語バージョンは同じ範囲を記述することを目的としています。違いによって、適用法に基づくあなたの権利が損なわれることはありません。"
            ]
          },
          {
            "title": "15. 連絡先",
            "paragraphs": [
              "プライバシーに関する質問、権利要求、サポート、または侵害報告については、QQ のメンテナー唐梓耀 / AdrianSparkle (2410710390) までご連絡ください。開発者の公開プロフィールは https://github.com/Tang1206cc です。製品、バージョン、リクエストを特定します。最初のメッセージには、パスワード、ログイン Cookie、接続コード、録音全体、または不要な個人情報を含めないでください。",
              "「Rain Alert / 雨水提醒」とリクエストの範囲を指定してください。選択した別の学生の情報については、フルネームと学生番号を公開するのではなく、最小限のイベント時間とコースの背景を提供します。"
            ]
          },
          {
            "title": "15. フレンドプール、個人認証、共同学習支援",
            "paragraphs": [
              "Co-study の友人プールには常に所有者が含まれており、所有者のアカウントと現在のデバイスによって分離された最大 5 人の友人をサポートします。各友人は公式 QR サインインを個人的に確認する必要があります。このサービスは、返されたアカウント ID、表示プロファイル、および公式セッションを保存して、ID を検証し、サインイン ステータスを表示し、アクティブなスキャン リクエスト後の入力を支援します。友達のパスワードは要求も保存もされません。公式認証情報は、スキャン用電話機だけでなくサーバーによって処理されます。友人セッションは所有者のリマインダー アカウント テーブルの外に保持され、それらの友人に対する教室リマインダーが自動的に有効になることはありません。",
              "友人のプロフィールと資格情報は、別の友人データベースで暗号化されます。所有者/デバイスの関連付け、ステータス、タイムスタンプ、およびその他の操作フィールドは、データベース全体の暗号化には相当しません。現在のデバイス所有者は、友人の表示名、利用可能なアバター、サインイン ステータスを表示して、支援を開始できます。友人はこの範囲を理解し、信頼できる許可されたデバイスのみを認証する必要があります。このサービスは、許可された公式ソースから表示アバターを取得する場合があり、その規則によりリクエストが管理されます。",
              "友達の共同学習を支援すると、開始したときにのみカメラまたは画像が使用されます。ブラウザは QR をローカルでデコードします。サービスはテキストを受信し、プールされた各アカウントのセッションを個別に使用して、教室をチェックし、サポートされているリクエストを送信し、正式な結果を確認します。これにより、公式の入国記録が変更される可能性があります。演習にも応答せず、点呼にも応答しません。ビデオと選択した画像はアップロードされません。デコードされたテキストがその操作に使用されます。ジョブと結果は、永続的な記録や物理的な出席の証明としてではなく、プロセス メモリに一時的に保持されます。",
              "友人を削除すると、その友人に正式なサインアウト要求を送信せずに、そのプールの一致するレコードが削除され、古いジョブが無効になります。サインアウトしたり、所有者アカウントを切り替えたり、デバイスを取り消したりすると、その所有者/デバイス プールの友人の認証情報が無効になります。期限切れのデバイスはメンテナンス中に処理されます。友人関係とプロフィールは無効な記録として残り、一律の自動削除期限はありません。同じ友達を再認証するか、削除をリクエストしてください。他の有効なデバイスのプールは影響を受けません。有効期限が切れた所有者の公式ログインは、デバイス セッションが有効な間は友人の資格情報を自動的に無効にしないため、有効な友人は引き続き支援される可能性があります。別の友人データベースは既存の暗号化されたバックアップに含まれています。オンライン レコードを削除しても、履歴バックアップは同時に消去されません。"
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "雨警報利用規約",
        "intro": "Rain Alert は、追加の教室イベント通知を提供します。アカウントの認証、通常のチェックイン要求の実際の影響、およびプッシュ配信の制限に特に注意してください。",
        "sections": [
          {
            "title": "1. 範囲、プロバイダー、および受け入れ",
            "paragraphs": [
              "これらの規約は、唐梓耀 / AdrianSparkle および丁铭 / EliasSparkle によって Sparkle で管理されている Rain Alert Web アプリおよびリマインダー インスタンスに適用されます。接続、アカウントの認証、またはリマインダーの有効化の前に、これらをお読みください。同意できない場合は、そのような行動を取らないでください。継続使用だけでは、別途必要な同意または保護者の承認は確立されません。"
            ]
          },
          {
            "title": "2. 独立したツールと公式チャネル",
            "paragraphs": [
              "Rain Alert は、Rain Classroom、学校、または教師の公式製品ではありません。このページは、Rain Classroom、WeChat、Apple、またはブラウザ ベンダーによるパートナーシップ、代理店、または承認を主張するものではありません。学校、教師、Rain Classroom の公式記録によって、スケジュール、課題、出席、成績が決まります。",
              "この製品は、公式クライアント、教室でのお知らせ、手動チェック、およびあなた自身の出席責任を補います。現時点では、授業前または授業後のすべての課題、試験、学校からのお知らせについての包括的なリマインダーは提供されません。"
            ]
          },
          {
            "title": "3. 資格と信頼できる接続",
            "paragraphs": [
              "アカウントとデバイスを使用し、学校、教師、プラットフォームの規則に従うことが許可されている必要があります。不正なアカウントに接続したり、セッションを借用したりしないでください。未成年者は、法律で義務付けられているように、保護者の承認が必要です。 14 歳未満の子供はアカウントを接続しないでください。",
              "自分が開始した公式 QR ログインのみを確認してください。管理者、Web フォーム、または見知らぬ人にパスワードを与えないでください。現在のホームページには接続コードは必要ありません。 QR コードを要求すると、デバイス セッションが作成されます。関連付けられた Rain Classroom アカウントのデータは、サインインを確認した後にのみアクセス可能になります。"
            ]
          },
          {
            "title": "4. 認可された処理",
            "paragraphs": [
              "QR 確認後、サーバーは公式のログイン認証情報を保存および使用して、アカウントの詳細、コース、進行中のクラス、必要な教室イベントを照会し、登録されたデバイスに通知する必要があります。プライバシー ポリシーでは、データ、受信者、香港でのホスティング、および保持について説明しています。学習への招待状を積極的に作成することで、公式セッションを使用して、その指定されたクラスの友人の一致するエントリー QR コードを処理するようにサービスに指示することもできます。招待状の所要時間は約 30 分です。共有する前に、受信者と表示名およびクラス情報を確認してください。これにより、その友人にはあなたのパスワードや Cookie も、他のクラスへのアクセスも許可されません。",
              "リマインダーを有効にする前に、その範囲を理解してください。承認は、無関係な資料を読んだり、コースを公開したり、マーケティングを実行したり、AI モデルをトレーニングしたりするための許可ではありません。"
            ]
          },
          {
            "title": "5. 授業中のリマインダーとチェックイン効果",
            "paragraphs": [
              "演習、ランダム選択、即時回答、またはコメント利用可能リマインダーを有効にすると、サービスはプラットフォーム ルールに従って教室の承認を取得できます。プラットフォームが通常のチェックインを明示的に識別する場合、サービスは自動的に教室への入場リクエストを送信する場合があります。このリクエストにより、公式プラットフォームに入場またはチェックインの記録が作成される場合があります。このサービスは完全に読み取り専用ではありません。",
              "確認済みの通常の QR フローに限定して、一致する教室入場 QR コードをスキャンするように友人を積極的に招待できます。場所、不明なフロー、その他のサポートされていない制限には、引き続き公式クライアントが必要です。このサービスは、位置情報の偽装、QR コードの解読、演習の応答、点呼への応答、クイック回答の送信などは行いません。自動エントリーと友達との学習は、学校、教師、プラットフォームの規則に従う必要があります。アカウントのエントリ状態を物理的な存在として表現したり、出席を偽るために使用したりしてはなりません。"
            ]
          },
          {
            "title": "6. スイッチ、テスト、通知内容",
            "paragraphs": [
              "デバイスごとに 5 つのリマインダー タイプが制御されます。システム権限と個別のリマインダースイッチは異なる設定です。プッシュ テストでは、対応するスイッチがオフの場合でも、変更せずに、明確にラベル付けされた 5 つのシミュレートされたメッセージが送信されます。テストが成功しても、ライブ教室のイベント ソースは検証されません。",
              "ランダム選択の通知には、クラスに発表された名前と生徒番号が表示される場合があります。他の通知には、コースとイベントの概要が表示されます。プレビューと共有デバイスを管理し、クラスメートの情報を公的に転送しないでください。信頼できる開始時間がプラットフォームから提供されていない場合、表示される検出時間はクラスの開始時間ではありません。"
            ]
          },
          {
            "title": "7. タイミングと信頼性",
            "paragraphs": [
              "通常の状況では、ポーリングは約 5 秒で行われ、教室とイベントの接続と並行して機能します。これは納期やサービスレベルを保証するものではありません。プラットフォームの変更、ネットワーク、メンテナンス、省電力、権限、プッシュ ベンダー、ブラウザ ポリシー、無効なログイン、または期限切れのペアリングにより、メッセージが遅延、省略、繰り返し、または停止される可能性があります。",
              "「プッシュサービスで受け付けました」はリクエストの受け付けを確認します。デバイスの受領書はシステムの処理を確認するものであり、人が通知を読んだり聞いたりしたことを確認するものではありません。公式チャンネルを引き続きチェックしてください。出席、試験、または重要な締め切りについては、このツールのみに依存しないでください。"
            ]
          },
          {
            "title": "8. デバイス、有効期限、およびオリジンの移行",
            "paragraphs": [
              "デバイスの接続は通常 30 日間持続します。最後の 7 日間は更新のプロンプトが表示されます。デバイスの名前付け、デバイス リスト、および失効制御は、現在のインターフェイスでは使用できません。メンテナに連絡して、不明な接続を調査し、取り消してください。有効期限が切れた正式な認証またはデバイスセッションは、監視とリマインダーに影響します。",
              "メインのレガシー エントリ ポイントと保持されているレガシー エントリ ポイントは、異なるブラウザのオリジンです。 5 分間の 1 回限りの認証情報により、アカウント、設定、および必要な履歴が移行されます。新しいオリジンで通知権限を再度付与する必要があります。移行リンクは一時的なアクセスを提供するものであり、共有しないでください。古いサブスクリプションが非アクティブ化されるかどうかは、新しいサブスクリプションの登録が成功するかどうかによって異なります。"
            ]
          },
          {
            "title": "9. 許容される使用方法",
            "paragraphs": [
              "学校やプラットフォームの管理を回避したり、出席を偽造したり、認証情報を盗んだり共有したり、無関係の人々のデータを収集したり、嫌がらせや権利侵害をしたり、プッシュ配信の悪用、インターフェースの攻撃、不正アクセスの転売を行ったりしないでください。コース、名前、学生番号、または学習活動をプロフィールの宣伝や一般公開に使用しないでください。",
              "通常の使用でも、プラットフォームと学校の規則を満たす必要があります。製品は第三者の許可を得ることができません。見覚えのないデバイスや間違った配信を見つけた場合は、関連するリマインダーを無効にし、メンテナに連絡してデバイスを調査して取り消してください。"
            ]
          },
          {
            "title": "10. 可用性、料金、サポート、および変更",
            "paragraphs": [
              "このサービスは現在公開テスト中です。永続的な可用性、永続的な無料アクセス、固定応答時間、および特定の容量は約束されません。料金、サブスクリプション、または重要な新しい条件は、発効する前に明確に開示され、必要な手順に従う必要があります。これらの条件だけでは支払い義務は発生しません。",
              "メンテナンス、セキュリティ、容量、アップストリームの変更には、調整や一時停止が必要になる場合があります。合理的に予見可能な場合には、移行、輸出、または中止に関する適切な説明とガイダンスが提供されるべきです。緊急のリスクについては、法的義務を免除することなく、最初に必要な措置を講じ、必要に応じて説明を行う必要がある場合があります。"
            ]
          },
          {
            "title": "11. サインアウト、一時停止、終了",
            "paragraphs": [
              "リマインダーを無効にしたり、サインアウトしたり、保守者にデバイスの取り消しを依頼したり、サービスの使用を停止したりすることができます。最後の有効なデバイスのリンクを解除すると、ログイン資格情報が解放されます。プライバシー ポリシーでは、残りのプロファイル、履歴、バックアップについて個別に説明しています。中止してもアカウント全体が自動的に削除されるわけではありません。",
              "明らかな悪用、侵害、またはセキュリティリスクがある場合は、必要に応じて理由とフィードバックまたは修正の機会を設けて、関連する接続を必要な範囲で制限することが正当化される場合があります。適用される機密保持、知的財産、およびデータ保護義務は終了後も存続します。"
            ]
          },
          {
            "title": "12. 権利、保証、責任",
            "paragraphs": [
              "あなたは自分の情報に対する権利を保持します。コース教材は権利所有者に帰属します。処理によって、サービスに無制限の使用権やサブライセンス権が付与されるわけではありません。製品ライセンスとコンポーネントの条件は、ソフトウェア ライセンスとサードパーティ通知に記載されています。",
              "法律で認められる範囲において、サービスは、エラーのない継続的な動作やすべてのメッセージのタイムリーな配信を保証することなく、利用可能な状態で提供されます。責任は事実、過失、適用法によって異なります。意図的な違法行為、重過失、人身傷害、違法な個人情報処理、およびその他の除外できない事項に対する責任は、強制的な消費者救済と同様に残ります。"
            ]
          },
          {
            "title": "13. 紛争、解釈、修正",
            "paragraphs": [
              "質問や紛争についてはメンテナーに問い合わせてください。お客様は、強制的な仲裁、指定された外国裁判所、または法定権利の放棄なしに、法的管轄権を有する裁判所または規制当局に自由に救済を求めることができます。法的強制力のない条項は、独立して有効な条項を無効にするものではありません。",
              "重要な改訂には日付が付けられ、必要な通知または同意の手順に従います。言語バージョンは同等であることを目指しています。翻訳の違いによって現地の法的保護が排除されるわけではありません。"
            ]
          },
          {
            "title": "14. 連絡先",
            "paragraphs": [
              "プライバシーに関する質問、権利要求、サポート、または侵害報告については、QQ のメンテナー唐梓耀 / AdrianSparkle (2410710390) までご連絡ください。開発者の公開プロフィールは https://github.com/Tang1206cc です。製品、バージョン、リクエストを特定します。最初のメッセージには、パスワード、ログイン Cookie、接続コード、録音全体、または不要な個人情報を含めないでください。"
            ]
          },
          {
            "title": "15. フレンドプールの承認と支援の境界",
            "paragraphs": [
              "各友人は、公式 QR サインインを個人的に確認し、リマインダー サービスに認証情報が保存され、現在のアカウント/デバイス所有者が支援を開始できることを理解する必要があります。許可なく他人のセッションを保持、譲渡、使用したり、学校、教師、公式プラットフォームの規則を回避したりしないでください。所有者と最大 5 人の友人を含めると、教室にアクセスしたり、教室にチェックインしたりする権利は確立されません。",
              "招待リンクと友達プールは別個のフローです。リンクのヘルパーはサインインする必要はありませんが、プールされた友達はそれぞれ個別に認証する必要があります。支援するには、該当する教室の QR コードを積極的にスキャンし、結果をアカウントごとに個別に検証する必要があります。提出、待機、および入場の記録は、物理的な出席を証明するものではありません。制限されたフローまたはサポートされていないフローでは、引き続き公式クライアントが必要です。すべての学校、教室、アカウントでの利用が保証されるわけではありません。サインアウト、削除、有効期限、バックアップ、および残りのデータについては、プライバシー ポリシーを参照してください。"
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "雨警報ソフトウェアおよびサービスライセンス",
        "intro": "このライセンスでは、Web アプリの元のコードとインターフェイスの使用許可について説明します。 Access は、ソースの再配布、独立した展開、または Sparkle ブランドの権利を付与するものではありません。オープンソース コンポーネントは独自のライセンスを保持します。",
        "sections": [
          {
            "title": "1. 権利者と範囲",
            "paragraphs": [
              "Rain Alert のオリジナルのコード、インターフェイス、グラフィックス、およびドキュメントの権利は、それぞれの権利所有者に帰属します。 Sparkle は唐梓耀 / AdrianSparkle および丁铭 / EliasSparkle によって管理されています。このライセンスは、サードパーティのコンテンツやオープンソースの権限を変更することなく、提供された Web アプリ クライアントとサービスへのアクセスを対象としています。"
            ]
          },
          {
            "title": "2. クライアントとアクセス許可の制限",
            "paragraphs": [
              "利用規約に従い、お客様は、実際に利用可能になったサービスにアクセスし、そのページに付属のクライアント コードをロードして実行し、所有するデバイスまたは使用が許可されているデバイスのホーム画面に追加するなどの通常のブラウザ インストールを使用する、限定的、非独占的、譲渡不可、サブライセンス不可の権利を受け取ります。サポートされている機能を通じて、承認する資格のあるアカウントを接続できます。",
              "サポートされているフローを使用して、自分のアカウントまたは友人がプールへの公式 QR サインインを個人的に承認した後、そのアカウントを接続します。これにより、元の承認を超えてアカウント、コース、またはプラットフォームの権利が付与されることはありません。"
            ]
          },
          {
            "title": "3. 元のコードでは付与されていない権利",
            "paragraphs": [
              "ブラウザ スクリプトの可視性またはダウンロード可能性は、オリジナルのコードをオープンソース ライセンスの下に置くものではありません。法律で許可されている場合、または書面で別途許可されている場合を除き、製品の再配布、独立したサービスの変更および運用、販売用のパッケージ化、レンタル、サブライセンス、権利表示の削除、または無許可の商用サービスとしてバックエンド インターフェイスの提供を行わないでください。これらのソフトウェアの予約は、お客様自身のアカウントのデータの合法的な使用を制限するものではありません。"
            ]
          },
          {
            "title": "4. 法定例外と調査",
            "paragraphs": [
              "このライセンスは、バックアップ、相互運用性、セキュリティ調査、または適用法により契約で除外できないその他の権利を制限するものではありません。研究には、違法な資格情報へのアクセス、プライバシー侵害、またはライブ サービスの中断が含まれていてはなりません。有効なキーやユーザー データを公開せずに、必要最小限の再現詳細情報を含めて脆弱性を報告します。"
            ]
          },
          {
            "title": "5. コンポーネントライセンスの優先順位",
            "paragraphs": [
              "このサービスは、Express、qrcode、tough-cookie、web-push、およびそれらの依存関係を使用します。正確なバージョン、著作権表示、およびテキストは、サードパーティ通知に記載されています。これらには、MIT、ISC、BSD-3-Clause、Apache-2.0、および MPL-2.0 が含まれます。それらすべてが MIT であるわけではありません。 Study with friends ページでは、Apache-2.0 ライセンスの jsQR デコーダも使用されており、その独立したライセンスが同様に優先されます。",
              "各コンポーネントは、独自のライセンスに基づいて使用、変更、または配布できます。独自のソフトウェアに対する制限は、競合する独立したコンポーネントの権限をオーバーライドしません。 web-push は MPL-2.0 を使用します。使用されているバージョンのソース コピーがここに提供されています。コンポーネント ソースを提供しても、Rain Alert プロジェクト全体がオープン ソースとしてリリースされるわけではありません。"
            ]
          },
          {
            "title": "6. データ、プラットフォーム、商標",
            "paragraphs": [
              "Rain Classroom コースのコンテンツ、他の生徒の情報、または公式プラットフォーム API に対して追加の権利は付与されません。あなたは自分の情報に対する法的権利を保持します。 Sparkle、Rain Alert、およびサードパーティのブランドとマークは、それぞれの保護を保持します。公式の運営者になりすましたり、存在しないパートナーシップ、認定、または承認を主張したりしないでください。"
            ]
          },
          {
            "title": "7. 独立した展開と再販",
            "paragraphs": [
              "アクセスには、バックエンド ソースの配信、サーバー管理、サービスの再販、または独立した展開の許可は含まれません。必要に応じて、明示的に個別の許可を取得してください。開発ディレクトリ内の package.json、依存関係リスト、または読み取り可能なコードの存在は、元のプロジェクトに対する一般的なオープンソース許可ではありません。"
            ]
          },
          {
            "title": "8. 期間、終了、更新",
            "paragraphs": [
              "このライセンスは、提供されたクライアントとサービスの合法的な使用中に適用されます。使用を停止し、ホーム画面のエントリを削除することができます。重大な違反がある場合は、適切かつ是正可能な場合には修正する合理的な機会が与えられた上で、合法的なアクセス制限が課される場合があります。終了によって、法定のデータ権利、未払いの責任、または独立したオープンソース ライセンスが消滅するわけではありません。",
              "別の条件が付随しない限り、アップデートには引き続きこのライセンスが適用されます。 Access は、永続的な動作、特定のバージョンのメンテナンス、または無期限の互換性を保証するものではありません。重大な変更は利用規約および適用法に従います。"
            ]
          },
          {
            "title": "9. 保証と責任",
            "paragraphs": [
              "法律で認められる範囲で、ソフトウェアとサービスは利用可能な状態で提供されます。保証と責任は、利用規約、実際の約束、および適用法によって決定されます。強制的な消費者保護、除外不可能なデータ保護義務、意図的な違法行為または重大な過失に対する責任、およびその他の強制的な権利は残ります。"
            ]
          },
          {
            "title": "10. ライセンスに関する問い合わせ",
            "paragraphs": [
              "プライバシーに関する質問、権利要求、サポート、または侵害報告については、QQ のメンテナー唐梓耀 / AdrianSparkle (2410710390) までご連絡ください。開発者の公開プロフィールは https://github.com/Tang1206cc です。製品、バージョン、リクエストを特定します。最初のメッセージには、パスワード、ログイン Cookie、接続コード、録音全体、または不要な個人情報を含めないでください。",
              "チーム展開、ソースライセンス、商業協力、またはブランドの使用については、使用目的を説明し、権利所有者に連絡してください。明示的に付与されていない独自のソフトウェア権利は留保されます。"
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Rain Alert サードパーティおよびオープンソースの通知",
        "intro": "インベントリは、現在の package-lock.json およびインストールされたパッケージと照合してチェックされ、110 個の運用依存パッケージが含まれています。オリジナルの著作権とライセンス条件は以下でご覧いただけます。製品全体を同じ条件でライセンス供与するわけではありません。",
        "sections": [
          {
            "title": "1. 主な依存関係",
            "paragraphs": [
              "Express 5.3.0 (MIT) は HTTP ルーティングを処理します。 qrcode 1.5.4 (MIT) はログイン QR 画像を生成します。 tough-cookie 6.0.2 (BSD-3-Clause) は公式セッション Cookie を管理します。 web-push 3.6.7 (MPL-2.0) は、Web プッシュ リクエストと暗号化を処理します。完全なインベントリには、これら 4 つのパッケージだけではなく、インストール場所ごとの推移的な依存関係が含まれています。さらに、Study with friends ブラウザ ページでは、jsQR (Apache-2.0) を使用してデバイス上で QR コードをデコードします。このブラウザ コンポーネントは、上記の Node.js 運用依存関係の数とは別のものです。現在の製品に付属しているオリジナルのライセンスは別途提供されます。独自のソフトウェア規約によって、その独立した権限が減じられることはありません。"
            ]
          },
          {
            "title": "2. 原文、出典、範囲",
            "paragraphs": [
              "ダウンロード可能な通知には、チェックされたパッケージにあるLICENSE、LICENCE、COPYING、NOTICEのテキストが保持されます。インストールされた http_ece 1.2.0 パッケージには個別のライセンス ファイルがありません。その MIT テキストは、ソースが記録された一致するアップストリーム v1.2.0 タグから取得されます。 ZIP には、Web プッシュ コンポーネントのソース、README、package.json、および MPL でカバーされるファイルを調べるためのライセンスが個別に含まれています。",
              "これは、現在のプロジェクトの実稼働依存関係インベントリです。これは、すべてのサーバーの依存関係がブラウザーに配信されること、または Node.js、オペレーティング システム、または追加のソフトウェアを再配布するときに必要な通知を置き換えることを意味するものではありません。上流のテキストは元の言語を保持し、コンポーネントの権利を管理します。"
            ]
          },
          {
            "title": "3. プラットフォームの関係と処理",
            "paragraphs": [
              "Rain Classroom、WeChat、およびブラウザ通知インフラストラクチャは、それぞれの権利所有者によって運営されています。アカウント認証および関連インターフェイスを使用した独立したリマインダーは、その承認を意味するものではありません。 Apple デバイス上で、ホーム画面 Web アプリとして、または Web プッシュを通じて使用することは、Apple がこの製品を作成、レビュー、または保証することを意味するものではありません。プラットフォームの処理と本サービスのデータ フローについては、それぞれのポリシーと本製品のプライバシー ポリシーに記載されています。"
            ]
          },
          {
            "title": "4. 権利およびセキュリティレポート",
            "paragraphs": [
              "帰属、目録、ソースの提供、または著作権表示が不完全であると思われる場合は、チェックして修正できるように、パッケージ、バージョン、および証拠をメンテナに伝えてください。セキュリティ問題を報告する場合は、ユーザーの資格情報を公開しないでください。",
              "プライバシーに関する質問、権利要求、サポート、または侵害報告については、QQ のメンテナー唐梓耀 / AdrianSparkle (2410710390) までご連絡ください。開発者の公開プロフィールは https://github.com/Tang1206cc です。製品、バージョン、リクエストを特定します。最初のメッセージには、パスワード、ログイン Cookie、接続コード、録音全体、または不要な個人情報を含めないでください。"
            ]
          }
        ],
        "links": [
          {
            "label": "オリジナルのjsQR Apache-2.0ライセンス・TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "de": {
      "privacy": {
        "title": "Datenschutzrichtlinie für Rain Alert",
        "intro": "Rain Alert stellt über einen Erinnerungsdienst eine Verbindung zu Rain Classroom her und sendet Benachrichtigungen an Ihre Geräte. Es verarbeitet daher Kontoberechtigungen, Kursinformationen und Benachrichtigungsdaten auf einem Server. Überprüfen Sie diesen Bereich, bevor Sie ein Konto verbinden oder autorisieren.",
        "sections": [
          {
            "title": "1. Umfang und Betreuer",
            "paragraphs": [
              "雨水提醒 (Rain Alert) ist eine unabhängige Web-App zur Erinnerung an Klassenzimmerveranstaltungen unter Sparkle, erstellt und verwaltet von 唐梓耀 / AdrianSparkle und 丁铭 / EliasSparkle. Diese Richtlinie gilt für die von Sparkle betriebene Instanz, die Gerätekopplung, die Rain Classroom QR-Autorisierung, die Klassenzimmerüberwachung und Web Push. Diese Richtlinie gilt auch für die Prüfung des Zugangsstatus zum Klassenzimmer und für Einladungen zum Lernen mit Freunden, die Sie aktiv erstellen.",
              "Es ist kein offizielles Produkt von Rain Classroom und repräsentiert keine Schulen, Lehrer, Rain Classroom, WeChat, Apple oder Browser-Anbieter. Für ihre Dienste gelten gesonderte Datenschutzbestimmungen. Unabhängig betriebene Instanzen verlangen Offenlegungen von ihren eigenen Betreibern; Unsere Hosting- und Verwaltungsvereinbarungen gelten nicht automatisch für sie."
            ]
          },
          {
            "title": "2. Kontodaten, Kurse und Anmeldeinformationen",
            "paragraphs": [
              "Durch die Anforderung eines offiziellen Anmelde-QR-Codes wird automatisch eine Gerätesitzung erstellt. Es ist kein Verbindungscode erforderlich. Nachdem Sie die offizielle QR-Anmeldung bestätigt haben, erhält der Dienst die von Rain Classroom zurückgegebene Konto-ID, Name oder Spitzname, Schul- und Schülernummer sowie eingeschriebene Kurse, Klassenraum-IDs, Namen, Lehrer und zugehörige Organisationskennungen. Diese identifizieren das Konto und zeigen Kurse an.",
              "Der Server speichert außerdem offizielle Anmeldecookies, Sitzungsautorisierungen und erforderliche Klassenzimmer-Tokens, um die Abfrage fortzusetzen, nachdem Sie die Seite geschlossen haben. Wir fordern Ihr Rain Classroom- oder WeChat-Passwort weder an noch speichern wir es. Cookies und Token können Anmeldeberechtigungen darstellen und bedürfen eines besonderen Schutzes. Durch das Scannen wird die Autorisierung nicht nur auf Ihrem Telefon gespeichert."
            ]
          },
          {
            "title": "3. Unterrichtsveranstaltungen und Informationen über andere",
            "paragraphs": [
              "Der Dienst fragt laufende Kurse, erforderliche Lernprotokolle und Check-in-Modi ab. Wenn die Erinnerungen im Unterricht aktiviert sind, wird der offizielle Stream der Unterrichtsveranstaltungen empfangen. Zu den gespeicherten Benachrichtigungsfeldern gehören Kurs- und Klassenraumnamen, Veranstaltungstypen und -kennungen, Plattform- oder Erkennungszeiten sowie notwendige Zusammenfassungen.",
              "Zufallsauswahlereignisse können Namen und Schülernummern enthalten, die der Klasse vom Lehrer bekannt gegeben werden. Diese können in verschlüsselten Ereignisaufzeichnungen gespeichert und in Benachrichtigungsfeldern angezeigt werden, einschließlich Informationen über Klassenkameraden. Verwalten Sie Sperrbildschirmvorschauen und freigegebene Geräte sorgfältig und veröffentlichen Sie diese Details nicht erneut. Der Dienst nutzt sie nicht zur Profilierung von Studierenden.",
              "Die aktuelle Implementierung speichert den Fragentext oder die Antworten nicht als permanenten Erinnerungsinhalt, beantwortet keine Fragen, reagiert nicht auf Namensaufrufe oder Schnellantworten und erfasst nicht den Gerätestandort. Bei normaler Anwesenheit kann durch aktivierte Erinnerungen im Unterricht eine Teilnahmeanforderung ausgelöst werden. Sie können auch aktiv einen Freund zu einem Kurs einladen, der als nicht angemeldet bestätigt wurde; Der Freund übermittelt den entschlüsselten Text eines passenden Klassenzimmer-QR-Codes und der Dienst nutzt die offizielle Sitzung des Einladenden für den verifizierten normalen Anmeldevorgang. Durch diese Anfragen können sich offizielle Einreise- oder Anwesenheitslisten ändern; siehe die Nutzungsbedingungen."
            ]
          },
          {
            "title": "4. Geräte, Benachrichtigungen und technische Informationen",
            "paragraphs": [
              "Wir verarbeiten zufällige Gerätekennungen, gehashte Verbindungssitzungen, Gerätebezeichnungen, Erstellungs- und letzte Öffnungszeiten, 30-Tage-Ablauf, Kontozuordnungen und Erinnerungswechsel. Die anfängliche Gerätekategorie wird vom Browser-Benutzeragenten abgeleitet. Das Umbenennen von Geräten und die Geräteliste werden in der aktuellen Benutzeroberfläche nicht angezeigt. Die zugehörigen Daten- und Verwaltungsendpunkte bleiben erhalten.",
              "Wenn Sie Benachrichtigungen aktivieren, stellt der Browser einen Push-Endpunkt, einen öffentlichen p256dh-Schlüssel und ein Authentifizierungsgeheimnis bereit. Der Server speichert das Abonnement, das an dieses Gerät gesendet werden soll. Zustellversuche, Status „Akzeptiert“ oder „Fehlgeschlagen“, Zeitstempel und Hashes zufälliger Empfangsvorgänge unterstützen die Fehlerbehebung, Deduplizierung und Bestätigung der Systemverarbeitung. Eine Quittung beweist nicht, dass Sie eine Benachrichtigung gesehen, gehört oder gelesen haben.",
              "Die Bereitstellung eines Netzwerkdienstes umfasst die Verarbeitung von IP-Adressen, Anforderungsheadern, Ursprüngen, Verbindungszeiten und Fehlerinformationen. IP-Adressen unterstützen auch die Begrenzung der Missbrauchsrate im Arbeitsspeicher. Die aktuelle App verfügt über kein Werbe- oder Verhaltensanalyse-SDK und verwendet diese Daten nicht für standortübergreifendes Tracking oder den Verkauf persönlicher Informationen. Infrastruktur- und Kommunikationsanbieter können technische Protokolle nach ihren eigenen Regeln verarbeiten."
            ]
          },
          {
            "title": "5. Zwecke und Berechtigungsgrenzen",
            "paragraphs": [
              "Diese Daten unterstützen das Pairing, die Identifizierung Ihres autorisierten Kontos, das Abfragen und Anzeigen von Klassen, das Senden ausgewählter Ereignisse, das Verwalten von Sitzungen, das Migrieren von Ursprüngen, den Schutz der Sicherheit, die Fehlerbehebung und die Wiederherstellung. Konto- und Kursdaten werden nicht für Werbung, kommerzielles Profiling oder KI-Training verwendet. Ohne QR-Autorisierung können Kurse nicht gelesen werden. Ohne Benachrichtigungsberechtigung kann eine angemeldete Seite weiterhin Informationen anzeigen, aber keine Systembenachrichtigungen an dieses Gerät senden.",
              "Für vertrauliche Anmeldeinformationen, Informationen über Mitschüler und die überregionale Verarbeitung sind die gesetzlich geltenden Bekanntmachungen, Rechtsgrundlagen und Einwilligungsverfahren erforderlich. Diese Richtlinie erläutert die tatsächlichen Ströme. Das Ansehen, das Anfordern eines Anmelde-QR-Codes oder das Scannen eines QR-Codes gilt nicht als Erfüllung jeder gesondert erforderlichen Einwilligung. Autorisieren Sie keine Konten oder Informationen, zu deren Bereitstellung Sie kein Recht haben."
            ]
          },
          {
            "title": "6. Cookies, Browserspeicher und Berechtigungen",
            "paragraphs": [
              "Die Geräteverbindung verwendet ein rain_session-Cookie. Der Server speichert seinen Hash. Über HTTPS verfügt es über die Attribute „Secure“, „HttpOnly“ und „SameSite=Strict“ und hält bis zu 30 Tage bei der Geräteverbindung und wird bei Erneuerung zurückgesetzt. Es handelt sich um ein Authentifizierungs-Cookie und nicht um ein Werbe-Cookie. Durch die Abmeldung von Rain Classroom wird dieses Geräteverbindungs-Cookie nicht automatisch gelöscht.",
              "Browserberechtigungen steuern Gerätebenachrichtigungen. Co-Study- und Einladungshilfeseiten verwenden die Kamera erst, nachdem Sie aktiv mit dem Scannen beginnen und Zugriff gewähren, und können auch ein Bild akzeptieren. Die QR-Dekodierung erfolgt im Browser; Es wird nur entschlüsselter Text übermittelt, ohne dass Videos oder ausgewählte Bilder hochgeladen werden. Beim Kamerazoom wird je nach Gerät Hardware- oder Digitalzoom verwendet. Mikrofon, Standort und Kontakte werden nicht abgefragt."
            ]
          },
          {
            "title": "7. Empfänger, Hosting und internationale Übertragungen",
            "paragraphs": [
              "Die aktuelle von Sparkle betriebene Instanz läuft auf Tencent Cloud in Hongkong, China. Wenn Sie sich auf dem chinesischen Festland oder in einer anderen Region befinden, werden an diese Instanz gesendete Kontodaten, Cookies, Kurse, Veranstaltungen und Geräteabonnements nach Hongkong übertragen und dort gespeichert. Autorisierung und Überwachung kommunizieren auch mit offiziellen Rain Classroom-APIs und Klassenraum-Veranstaltungsdiensten. Jeder Inhaber einer gültigen Studieneinladung kann den Anzeigenamen, den Kursnamen, die Ablaufzeit und den Bearbeitungsstatus des Einladenden lesen und einen Eintritts-QR-Code für den angegebenen Kurs übermitteln. Entschlüsselter Text wird über den Hong Kong-Dienst an die offiziellen Rain Classroom-Schnittstellen weitergeleitet. Der Freund erhält weder die Cookies, das Passwort noch die vollständige Kursliste des Einladenden. Geben Sie Einladungen nur an vertrauenswürdige Personen weiter, die helfen dürfen.",
              "Je nach Browser nutzt Web Push Infrastrukturen wie Apple, Google, Mozilla oder Microsoft, die möglicherweise Daten in anderen Ländern oder Regionen verarbeiten. Der Dienst sendet verschlüsselte Push-Payloads und notwendige Routing-Informationen an den Abonnement-Endpunkt; Browser und Betriebssysteme zeigen sie an. Auf dem Gerät können Klartextbenachrichtigungen angezeigt werden. Push-Verschlüsselung bedeutet nicht, dass der Erinnerungsserver die zugrunde liegenden Daten nicht lesen kann.",
              "Cloudflare bietet derzeit Domänenregistrierung und DNS. In der bestehenden Konfiguration wird der Anwendungsverkehr nicht über den CDN-Proxy geleitet. Bei der DNS-Verarbeitung sind immer noch die erforderlichen Abfrageinformationen erforderlich. Wir verkaufen oder vermieten keine personenbezogenen Daten. Gesetzlich vorgeschriebene Offenlegungen, erforderliche Sicherheitsmaßnahmen oder andere von Ihnen ausdrücklich angeordnete Übermittlungen sollten auf den jeweiligen Zweck beschränkt sein."
            ]
          },
          {
            "title": "8. Verschlüsselungs- und Sicherheitsgrenzen",
            "paragraphs": [
              "Kontoprofile, Kurs-Caches, Anmeldecookies, Anmeldeinformationen für den Unterricht, Event-Nutzlasten und Push-Abonnements werden mit AES-256-GCM gespeichert. Konto- und Gerätekennungen, Zuordnungen, Schalter, Zeiten, Status und andere Betriebsfelder werden nicht alle einzeln verschlüsselt. Die Datenbank und der Hauptschlüssel werden auf demselben Host verwaltet; Hierbei handelt es sich nicht um eine Ende-zu-Ende-Verschlüsselung, die einer vollständigen Serverkompromittierung standhält.",
              "Der Dienst verwendet HTTPS, Sitzungs-Hashing, Ursprungsprüfungen, Ratenbegrenzung und eingeschränkte Push-Endpunkte. Autorisierte Administratoren verfügen möglicherweise über den für die Entschlüsselung erforderlichen Zugriff. Bei einem Vorfall im Bereich der Sicherheit personenbezogener Daten ergreifen wir Abhilfemaßnahmen und benachrichtigen die betroffenen Personen und Behörden gemäß den geltenden Gesetzen. Dabei erläutern wir die betreffenden Informationen, mögliche Auswirkungen, ergriffene Maßnahmen und Kontaktwege. Absolute Sicherheit wird nicht versprochen. Verbinden Sie nur vertrauenswürdige Geräte und geben Sie keine Verbindungscodes, Cookies, Migrationslinks oder privaten Benachrichtigungen weiter."
            ]
          },
          {
            "title": "9. Online-Aufbewahrung",
            "paragraphs": [
              "Geräteverbindungen dauern 30 Tage ab Erstellung oder manueller Erneuerung; Eine abgelaufene Sitzung gewährt keinen Zugriff mehr. Eine ungültige behördliche Genehmigung unterbricht die entsprechende Überwachung. Wenn sich das letzte gültige verbundene Gerät abmeldet, widerrufen wird oder abläuft, werden durch die Abmeldebehandlung oder die regelmäßige Wartung die Anmeldecookies und die gespeicherten Anmeldeinformationen für den Unterricht gelöscht und die Verbindungen unterbrochen.",
              "Abgeschlossene Klassen und ihre Zustellungsdatensätze, historische Ereignisse außerhalb aktiver Klassen und simulierte Push-Datensätze werden während der regelmäßigen Wartung mithilfe eines 90-Tage-Schwellenwerts im Code bereinigt. Aktive Klassen und geschützte zugehörige Datensätze bleiben möglicherweise länger bestehen. Migrationszugangsdaten sind nur für den einmaligen Gebrauch bestimmt und laufen nach fünf Minuten ab. Bei Studieneinladungen werden zufällige Token verwendet. Ein Hash-Index im Prozessspeicher enthält den Anzeigenamen des Einladenden, die angegebene Klasse, den etwa 30-minütigen Ablauf, die Anzahl der Versuche und den Ergebnisstatus. Abgelaufene Einladungen können nicht verwendet werden und Einladungen überleben einen Dienstneustart nicht. Abgelaufene Speichereinträge werden gelöscht, wenn spätere Einladungen erstellt werden, und nicht bei Ablauf wird eine Löschung auf Byte-Ebene garantiert. Für die aktuelle Anfrage wird dekodierter QR-Text verwendet; Das Lernmodul schreibt keine Kamerabilder, ausgewählten Bilder oder QR-Text in die Datenbank. Amtliche Einreiseprotokolle und technische Infrastrukturprotokolle folgen den jeweiligen tatsächlichen Handhabungsregeln.",
              "Die aktuelle Implementierung verfügt über keinen einheitlichen Zeitraum für die automatische Löschung aller Kontoprofile, Kurs-Caches, Gerätemetadaten, Statusfelder oder Backups. Die 30-Tage-Verbindungs- und 90-Tage-Verlaufsregeln führen zu diesem Zeitpunkt nicht zur Löschung eines gesamten Kontos. Wenden Sie sich an die Betreuer, wenn Sie den Dienst nicht mehr nutzen und verbleibende Daten entfernt werden möchten. Das Fehlen einer automatischen Bereinigung ist kein Grund für eine unbefristete Aufbewahrung. Wenn Daten nicht mehr erforderlich sind oder eine Löschung gesetzlich vorgeschrieben ist, werden wir gemäß geltendem Recht handeln und den Umfang überprüfen, der eine manuelle Bearbeitung erfordert."
            ]
          },
          {
            "title": "10. Backups, Supportmaterial und Bereinigungsumfang",
            "paragraphs": [
              "Wiederherstellungssicherungen umfassen Datenbank-Snapshots, Dienstschlüssel, Push-Schlüssel und Ursprungskonfiguration. Exportierte Sicherungen verwenden einen zufälligen AES-256-GCM-Datenschlüssel, der mit einem separaten öffentlichen RSA-OAEP-Schlüssel umschlossen ist; Der private Entschlüsselungsschlüssel wird separat aufbewahrt. Allerdings kann der Cloud-Speicher auch SQLite-Snapshots speichern, die durch Dateiberechtigungen geschützt sind, und Host-Berechtigungen können auf Betriebsdaten zugreifen. Der Backup-Schutz hängt daher von der Art der Kopie und dem Speicherort ab.",
              "Der bestehende Backup-Prozess hat keinen einheitlichen automatischen Ablauf; Offline-Exporte können bestehen bleiben. Durch das Entfernen von Online-Daten werden historische Backups nicht sofort gelöscht. In einer Löschanforderung werden möglicherweise verbleibende Backups, Aufbewahrungsgründe und Entsorgungsvereinbarungen abgefragt. Dies erfordert eine manuelle Überprüfung; Es wird keine nicht implementierte sofortige Löschung mit einem Klick versprochen. Support-Gespräche und eingereichte Anhänge werden nach Bedarf aufbewahrt, nicht für Werbe- oder Schulungszwecke."
            ]
          },
          {
            "title": "11. Deaktivieren, abmelden, widerrufen und Löschung beantragen",
            "paragraphs": [
              "Sie können jeden der fünf Erinnerungstypen deaktivieren, Systembenachrichtigungen widerrufen, sich auf diesem Gerät von Rain Classroom abmelden oder die Erneuerung einer Verbindung beenden. Die aktuelle Schnittstelle verfügt über keine Geräteliste oder Sperrkontrollen; Wenden Sie sich an die Betreuer, um andere Geräte zu überprüfen oder zu widerrufen. Ein Schalter stoppt nur die entsprechenden Erinnerungen dieses Geräts. Die Überwachung kann fortgesetzt werden, wenn auf einem anderen Gerät Erinnerungen aktiviert sind. Durch die Abmeldung wird die Verknüpfung dieses Geräts aufgehoben und sein serverseitiges Push-Abonnement entfernt. Browserberechtigungen oder Abonnementstatus erfordern möglicherweise eine separate Systemverwaltung.",
              "Durch die Freigabe der Anmeldeinformationen nach dem Verlassen des letzten gültigen Geräts werden nicht alle Profile, der Verlauf, andere Gerätemetadaten oder Sicherungen gelöscht. Im aktuellen Produkt gibt es keine Schaltfläche zum automatischen Löschen des gesamten Kontos. Wenden Sie sich an die Betreuer, um Informationen, Zugang, eine Kopie, Korrektur, Löschung, Einschränkung, Entzug der Autorisierung oder die Bearbeitung eines Einspruchs bezüglich der Informationen einer anderen Person anzufordern."
            ]
          },
          {
            "title": "12. Prüfung, gesetzliche Aufbewahrung und Rechtsbehelfe",
            "paragraphs": [
              "Wir überprüfen die Beziehung zwischen einer Anfrage und einem Konto im Verhältnis zum Risiko und fragen nur nach den notwendigen Informationen. Senden Sie keine Cookies, Passwörter oder Migrationszugangsdaten. Anfragen sollten umgehend bearbeitet werden, sofern dies gesetzlich vorgeschrieben ist. Sollten technische Trennung, Sicherungen, Streitigkeiten oder gesetzliche Aufbewahrungspflichten einer sofortigen Fertigstellung entgegenstehen, sind Gründe, Umfang und Folgeregelungen zu erläutern. Wenn das Gesetz die Einstellung anderer Verarbeitungen vorschreibt, werden die gespeicherten Daten auf die erforderliche Speicherung und Sicherheit beschränkt und nicht der normalen Überwachung zugeführt. Die Wiederherstellung erfordert die Überprüfung zuvor bearbeiteter Rechteanfragen. Die gesetzlichen Rechte sind nicht auf vorhandene Schnittstellenschaltflächen beschränkt. Sie können sich bei der zuständigen Aufsichtsbehörde beschweren."
            ]
          },
          {
            "title": "13. Nebenfächer und Lernkontexte",
            "paragraphs": [
              "Der Dienst richtet sich an Benutzer, die ihre Konten und Geräte rechtmäßig autorisieren können. Minderjährige benötigen eine entsprechende Genehmigung eines Erziehungsberechtigten und müssen die Schulregeln befolgen. Die Kontoverknüpfung richtet sich nicht an Kinder unter 14 Jahren. Derzeit gibt es keinen Mechanismus zur Altersüberprüfung. Wenden Sie sich an die Betreuer, wenn die Informationen von Kindern möglicherweise ohne erforderliche Genehmigung verarbeitet wurden, damit sie untersucht und rechtlich gehandhabt werden können.",
              "Namen, Schülernummern und Unterrichtsereignisse werden zur Erinnerung verwendet und nicht zur Beurteilung der Anwesenheit oder Leistung einer anderen Person. Schul- und Lehreraufzeichnungen über offizielle Kanäle bleiben weiterhin maßgeblich."
            ]
          },
          {
            "title": "14. Änderungen und Sprachversionen",
            "paragraphs": [
              "Wesentliche Änderungen an Datenkategorien, Zwecken, Hosting oder Empfängern werden hier beschrieben und datiert. Die Aktualisierung des Textes oder die weitere Nutzung können keine gesetzlich vorgeschriebenen zusätzlichen Hinweise, gesonderten Einwilligungen oder andere Verfahren ersetzen. Die Sprachversionen zielen darauf ab, den gleichen Umfang zu beschreiben; Unterschiede schmälern nicht Ihre Rechte nach geltendem Recht."
            ]
          },
          {
            "title": "15. Kontakt",
            "paragraphs": [
              "Bei Fragen zum Datenschutz, Anfragen zu Rechten, Support oder Meldungen zu Verstößen wenden Sie sich an den Betreuer 唐梓耀 / AdrianSparkle auf QQ unter 2410710390. Das öffentliche Profil des Entwicklers ist https://github.com/Tang1206cc. Identifizieren Sie das Produkt, die Version und Ihre Anfrage. Geben Sie in Ihrer ersten Nachricht keine Passwörter, Anmeldecookies, Verbindungscodes, vollständige Aufzeichnungen oder unnötige persönliche Informationen an.",
              "Geben Sie „Regenwarnung / 雨水提醒“ und den Umfang Ihrer Anfrage an. Geben Sie für die Informationen eines anderen ausgewählten Studenten möglichst wenig Veranstaltungszeit und Kurskontext an, anstatt öffentlich den vollständigen Namen und die Studentennummer zu veröffentlichen."
            ]
          },
          {
            "title": "15. Freundeskreise, individuelle Autorisierung und Unterstützung beim Mitstudium",
            "paragraphs": [
              "Der Co-Study-Freundespool umfasst immer seinen Besitzer und unterstützt bis zu fünf Freunde, isoliert nach Besitzerkonto und aktuellem Gerät. Jeder Freund muss die offizielle QR-Anmeldung persönlich bestätigen. Der Dienst speichert die zurückgegebene Kontokennung, das Anzeigeprofil und die offizielle Sitzung, um die Identität zu überprüfen, den Anmeldestatus anzuzeigen und bei der Eingabe nach einer aktiven Scan-Anfrage zu helfen. Freundespasswörter werden weder abgefragt noch gespeichert. Offizielle Anmeldeinformationen werden vom Server verarbeitet, nicht nur auf dem Scan-Telefon. Freundessitzungen werden außerhalb der Erinnerungskontotabelle des Besitzers geführt und aktivieren nicht automatisch Klassenerinnerungen für diese Freunde.",
              "Freundesprofile und Anmeldeinformationen werden in einer separaten Freundesdatenbank verschlüsselt. Eigentümer-/Gerätezuordnungen, Status, Zeitstempel und andere Betriebsfelder stellen keine Verschlüsselung der gesamten Datenbank dar. Der aktuelle Geräteinhaber kann die Anzeigenamen von Freunden, verfügbare Avatare und den Anmeldestatus anzeigen und Hilfe veranlassen. Freunde sollten diesen Umfang verstehen und nur vertrauenswürdige, zugelassene Geräte autorisieren. Der Dienst kann Anzeige-Avatare aus zugelassenen offiziellen Quellen abrufen, deren Regeln diese Anfragen regeln.",
              "Helfen Sie Freunden beim gemeinsamen Lernen. Verwenden Sie die Kamera oder ein Bild nur, wenn Sie es initiieren. Der Browser dekodiert den QR lokal. Der Dienst empfängt seinen Text und nutzt die Sitzung jedes gepoolten Kontos separat, um den Klassenraum zu überprüfen, unterstützte Anfragen einzureichen und offizielle Ergebnisse zu überprüfen. Dadurch können sich offizielle Einreiseunterlagen ändern; Es nimmt weder an Übungen noch an Appellen teil. Videos und ausgewählte Bilder werden nicht hochgeladen; Für diesen Vorgang wird dekodierter Text verwendet. Jobs und Ergebnisse werden vorübergehend im Prozessspeicher gespeichert und nicht als dauerhafte Aufzeichnungen oder als Nachweis der physischen Anwesenheit.",
              "Durch das Entfernen eines Freundes wird der übereinstimmende Datensatz dieses Pools gelöscht und alte Jobs werden ungültig, ohne dass eine offizielle Abmeldeanfrage für den Freund gesendet wird. Wenn Sie sich abmelden, das Besitzerkonto wechseln oder das Gerät widerrufen, werden die Anmeldeinformationen des Freundes für diesen Besitzer-/Gerätepool ungültig. Abgelaufene Geräte werden im Rahmen der Wartung behandelt. Freundschaftsbeziehungen und Profile bleiben als ungültige Datensätze bestehen, ohne dass es eine einheitliche automatische Löschfrist gibt; denselben Freund erneut autorisieren oder die Löschung beantragen. Die Pools anderer gültiger Geräte sind davon nicht betroffen. Ein abgelaufener offizieller Besitzer-Login führt nicht automatisch dazu, dass die Anmeldeinformationen eines Freundes ungültig werden, während die Gerätesitzung gültig bleibt, sodass gültige Freunde weiterhin unterstützt werden können. Die separate Freundesdatenbank ist in vorhandenen verschlüsselten Backups enthalten; Durch das Löschen von Online-Datensätzen werden nicht gleichzeitig historische Backups gelöscht."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Nutzungsbedingungen für Regenalarm",
        "intro": "Rain Alert bietet zusätzliche Benachrichtigungen zu Klassenraumereignissen. Achten Sie besonders auf die Kontoautorisierung, die tatsächlichen Auswirkungen gewöhnlicher Check-in-Anfragen und die Grenzen der Push-Zustellung.",
        "sections": [
          {
            "title": "1. Geltungsbereich, Anbieter und Akzeptanz",
            "paragraphs": [
              "Diese Bedingungen gelten für die Rain Alert Web App und die Erinnerungsinstanz, die unter Sparkle von 唐梓耀 / AdrianSparkle und 丁铭 / EliasSparkle verwaltet wird. Lesen Sie sie, bevor Sie eine Verbindung herstellen, ein Konto autorisieren oder Erinnerungen aktivieren. Ergreifen Sie diese Maßnahmen nicht, wenn Sie anderer Meinung sind. Eine alleinige fortgesetzte Nutzung begründet weder eine gesondert erforderliche Einwilligung noch eine Genehmigung des Erziehungsberechtigten."
            ]
          },
          {
            "title": "2. Unabhängiges Tool und offizielle Kanäle",
            "paragraphs": [
              "Rain Alert ist kein offizielles Produkt von Rain Classroom, einer Schule oder einem Lehrer. Diese Seite erhebt keinen Anspruch auf Partnerschaft, Agentur oder Unterstützung durch Rain Classroom, WeChat, Apple oder Browser-Anbieter. Schulen, Lehrer und offizielle Rain Classroom-Aufzeichnungen bestimmen Stundenpläne, Aufgaben, Anwesenheit und Noten.",
              "Das Produkt ergänzt offizielle Kunden, Unterrichtsankündigungen, manuelle Überprüfungen und Ihre eigenen Anwesenheitspflichten. Derzeit werden keine umfassenden Erinnerungen für alle Aufgaben, Prüfungen oder Schulankündigungen vor oder nach dem Unterricht bereitgestellt."
            ]
          },
          {
            "title": "3. Berechtigung und vertrauenswürdige Verbindungen",
            "paragraphs": [
              "Sie müssen zur Nutzung des Kontos und Geräts berechtigt sein und die Schul-, Lehrer- und Plattformregeln befolgen. Verbinden Sie keine nicht autorisierten Konten und leihen Sie keine Sitzungen aus. Minderjährige benötigen die gesetzlich vorgeschriebene Genehmigung eines Erziehungsberechtigten; Kinder unter 14 Jahren sollten keine Konten verbinden.",
              "Bestätigen Sie nur die offiziellen QR-Anmeldungen, die Sie initiiert haben. Geben Sie Passwörter nicht an Betreuer, Webformulare oder Fremde weiter. Die aktuelle Homepage benötigt keinen Verbindungscode. Durch das Anfordern eines QR-Codes wird eine Gerätesitzung erstellt. Auf die Daten des zugehörigen Rain Classroom-Kontos kann erst zugegriffen werden, nachdem Sie die Anmeldung bestätigt haben."
            ]
          },
          {
            "title": "4. Autorisierte Verarbeitung",
            "paragraphs": [
              "Nach der QR-Bestätigung muss der Server offizielle Anmeldeinformationen speichern und verwenden, um Kontodetails, Kurse, laufende Kurse und notwendige Klassenzimmerveranstaltungen abzufragen und registrierte Geräte zu benachrichtigen. In der Datenschutzrichtlinie werden Daten, Empfänger, Hosting in Hongkong und Speicherung erläutert. Indem Sie aktiv eine Studieneinladung erstellen, weisen Sie den Dienst auch an, Ihre offizielle Sitzung zu verwenden, um den passenden QR-Code eines Freundes für den angegebenen Kurs zu verarbeiten. Die Einladungen dauern etwa 30 Minuten. Überprüfen Sie vor dem Teilen den Empfänger sowie den angezeigten Anzeigenamen und die Kursinformationen. Dadurch erhält der Freund weder Ihr Passwort oder Cookies noch Zugang zu anderen Kursen.",
              "Machen Sie sich mit diesem Bereich vertraut, bevor Sie Erinnerungen aktivieren. Eine Autorisierung ist keine Erlaubnis, nicht damit zusammenhängendes Material zu lesen, Ihre Kurse zu veröffentlichen, Marketing zu betreiben oder KI-Modelle zu trainieren."
            ]
          },
          {
            "title": "5. Erinnerungen im Unterricht und Check-in-Effekte",
            "paragraphs": [
              "Durch die Aktivierung von Übungs-, Zufallsauswahl-, Schnellantwort- oder Kommentarverfügbarkeitserinnerungen kann der Dienst eine Unterrichtsberechtigung gemäß den Plattformregeln erhalten. Wenn die Plattform ausdrücklich einen normalen Check-in identifiziert, sendet der Dienst möglicherweise automatisch eine Anfrage zum Zutritt zum Klassenzimmer. Mit dieser Anfrage können Einreise- oder Check-in-Datensätze auf der offiziellen Plattform erstellt werden. Der Dienst ist nicht vollständig schreibgeschützt.",
              "Sie können einen Freund aktiv einladen, einen passenden QR-Code für den Klassenzimmerzugang zu scannen, beschränkt auf den verifizierten normalen QR-Flow. Standort, unbekannte Flüsse und andere nicht unterstützte Einschränkungen erfordern weiterhin den offiziellen Client. Der Dienst fälscht nicht den Standort, knackt keine QR-Codes, beantwortet keine Übungen, reagiert nicht auf Appelle und übermittelt keine schnellen Antworten. Beim automatischen Zutritt und beim Lernen mit Freunden müssen die Schul-, Lehrer- und Plattformregeln eingehalten werden. Der Kontoeintragsstatus darf nicht als physische Anwesenheit dargestellt oder zur Fälschung der Anwesenheit verwendet werden."
            ]
          },
          {
            "title": "6. Schalter, Tests und Benachrichtigungsinhalte",
            "paragraphs": [
              "Pro Gerät werden fünf Erinnerungsarten gesteuert. Systemberechtigungen und individuelle Erinnerungsschalter sind unterschiedliche Einstellungen. Push-Tests senden fünf klar gekennzeichnete simulierte Nachrichten, auch wenn die entsprechenden Schalter ausgeschaltet sind, ohne sie zu ändern. Bei einem erfolgreichen Test wird die Quelle des Live-Klassenzimmerereignisses nicht überprüft.",
              "In Zufallsauswahlbenachrichtigungen können Namen und Schülernummern angezeigt werden, die der Klasse bekannt gegeben wurden. Andere Benachrichtigungen zeigen Kurs- und Veranstaltungszusammenfassungen. Verwalten Sie Vorschauen und gemeinsam genutzte Geräte und geben Sie die Informationen Ihrer Klassenkameraden nicht öffentlich weiter. Wenn von der Plattform keine vertrauenswürdige Startzeit bereitgestellt wird, ist die angezeigte Erkennungszeit nicht die Startzeit des Unterrichts."
            ]
          },
          {
            "title": "7. Timing und Zuverlässigkeit",
            "paragraphs": [
              "Unter normalen Bedingungen funktioniert die Abstimmung mit einer Dauer von etwa fünf Sekunden parallel zu den Verbindungen zwischen Klassenzimmer und Veranstaltung. Dies ist keine Lieferfrist oder Service-Level-Garantie. Plattformänderungen, Netzwerke, Wartung, Energiesparen, Berechtigungen, Push-Anbieter, Browserrichtlinien, ungültige Anmeldung oder abgelaufene Kopplung können Nachrichten verzögern, auslassen, wiederholen oder stoppen.",
              "„Akzeptiert durch Push-Dienst“ bestätigt die Annahme einer Anfrage. Eine Gerätequittung bestätigt die Systembedienung, nicht aber, dass eine Person die Benachrichtigung gelesen oder gehört hat. Überprüfen Sie weiterhin die offiziellen Kanäle. Verlassen Sie sich bei Anwesenheitskontrollen, Prüfungen oder wichtigen Terminen nicht ausschließlich auf dieses Tool."
            ]
          },
          {
            "title": "8. Geräte, Ablauf und Ursprungsmigration",
            "paragraphs": [
              "Geräteverbindungen dauern normalerweise 30 Tage. Während der letzten sieben Tage erscheint eine Aufforderung zur Verlängerung. Gerätebenennung, Geräteliste und Sperrkontrollen sind in der aktuellen Schnittstelle nicht verfügbar; Wenden Sie sich an die Betreuer, um unbekannte Verbindungen zu untersuchen und zu widerrufen. Abgelaufene behördliche Berechtigungen oder Gerätesitzungen wirken sich auf Überwachung und Erinnerungen aus.",
              "Die wichtigsten und beibehaltenen Legacy-Einstiegspunkte sind unterschiedliche Browser-Ursprünge. Mit einer einmaligen, fünfminütigen Anmeldeinformation werden das Konto, die Einstellungen und der erforderliche Verlauf migriert. Die Benachrichtigungserlaubnis muss für den neuen Ursprung erneut erteilt werden. Ein Migrationslink gewährt temporären Zugriff und darf nicht weitergegeben werden. Die Deaktivierung des alten Abonnements hängt von der erfolgreichen Registrierung des neuen ab."
            ]
          },
          {
            "title": "9. Akzeptable Verwendung",
            "paragraphs": [
              "Umgehen Sie nicht die Schul- oder Plattformkontrollen, fälschen Sie die Anwesenheit, stehlen oder teilen Sie keine Zugangsdaten, sammeln Sie keine Daten Dritter, belästigen oder verletzen Sie keine Rechte, missbrauchen Sie die Push-Zustellung nicht, greifen Sie keine Schnittstellen an und verkaufen Sie den unbefugten Zugriff nicht weiter. Verwenden Sie keine Kurse, Namen, Studentennummern oder Lernaktivitäten für Werbeprofile oder öffentliche Bekanntmachung.",
              "Die normale Nutzung muss weiterhin den Plattform- und Schulregeln entsprechen; Das Produkt kann keine Genehmigung Dritter für Sie einholen. Wenn Sie ein unbekanntes Gerät oder eine falsche Lieferung finden, deaktivieren Sie die entsprechenden Erinnerungen und wenden Sie sich an den Betreuer, um das Gerät zu untersuchen und zu widerrufen."
            ]
          },
          {
            "title": "10. Verfügbarkeit, Gebühren, Support und Änderungen",
            "paragraphs": [
              "Der Dienst befindet sich derzeit in der öffentlichen Testphase. Ständige Verfügbarkeit, dauerhafter kostenloser Zugang, feste Reaktionszeiten und bestimmte Kapazitäten werden nicht zugesagt. Jede Gebühr, jedes Abonnement oder jede wesentliche neue Bedingung sollte vor Inkrafttreten klar offengelegt werden und die erforderlichen Verfahren befolgen. Diese Bedingungen allein begründen keine Zahlungsverpflichtung.",
              "Wartungs-, Sicherheits-, Kapazitäts- und Upstream-Änderungen erfordern möglicherweise eine Anpassung oder Aussetzung. Wo vernünftigerweise vorhersehbar, sollten geeignete Erklärungen und Anleitungen für Migration, Export oder Einstellung bereitgestellt werden. Bei dringenden Risiken kann es erforderlich sein, zunächst Maßnahmen zu ergreifen und gegebenenfalls eine Erklärung abzugeben, ohne dass rechtliche Verpflichtungen aufgehoben werden."
            ]
          },
          {
            "title": "11. Abmeldung, Aussetzung und Kündigung",
            "paragraphs": [
              "Sie können Erinnerungen deaktivieren, sich abmelden, die Betreuer bitten, Geräte zu widerrufen, oder die Nutzung des Dienstes beenden. Durch das Aufheben der Verknüpfung mit dem letzten gültigen Gerät werden die Anmeldedaten freigegeben. In der Datenschutzrichtlinie werden die verbleibenden Profile, der Verlauf und die Backups separat erläutert. Durch die Kündigung wird nicht automatisch ein gesamtes Konto gelöscht.",
              "Ein eindeutiger Missbrauch, eine Verletzung oder ein Sicherheitsrisiko können es rechtfertigen, relevante Verbindungen auf das erforderliche Maß einzuschränken, mit Begründung und gegebenenfalls der Möglichkeit einer Rückmeldung oder Korrektur. Die geltenden Vertraulichkeits-, geistigen Eigentums- und Datenschutzpflichten gelten auch nach der Kündigung."
            ]
          },
          {
            "title": "12. Rechte, Gewährleistungen und Verantwortung",
            "paragraphs": [
              "Sie behalten die Rechte an Ihren Daten. Kursmaterialien gehören ihren Rechteinhabern. Durch die Verarbeitung werden dem Dienst keine uneingeschränkten Nutzungs- oder Unterlizenzrechte eingeräumt. Produktlizenz- und Komponentenbedingungen finden Sie in den Softwarelizenz- und Drittanbieterhinweisen.",
              "Soweit gesetzlich zulässig, wird der Dienst im verfügbaren Zustand bereitgestellt, ohne die Zusicherung eines fehlerfreien, kontinuierlichen Betriebs oder der rechtzeitigen Zustellung jeder Nachricht. Die Verantwortlichkeit richtet sich nach Sachverhalt, Verschulden und geltendem Recht. Die Haftung für vorsätzliches Fehlverhalten, grobe Fahrlässigkeit, Personenschäden, rechtswidrige Verarbeitung personenbezogener Daten und andere nicht ausschließbare Angelegenheiten bleibt bestehen, ebenso wie die zwingenden Rechtsmittel für Verbraucher."
            ]
          },
          {
            "title": "13. Streitigkeiten, Auslegung und Überarbeitungen",
            "paragraphs": [
              "Wenden Sie sich bei Fragen oder Streitigkeiten an die Betreuer. Es steht Ihnen weiterhin frei, sich an ein Gericht oder eine Aufsichtsbehörde mit rechtmäßiger Zuständigkeit zu wenden, ohne dass ein Schiedsverfahren, ein bestimmtes ausländisches Gericht oder ein Verzicht auf gesetzliche Rechte vorgeschrieben ist. Eine undurchführbare Bestimmung führt nicht zur Unwirksamkeit selbständig wirksamer Bestimmungen.",
              "Wesentliche Änderungen werden mit einem Datum versehen und unterliegen den erforderlichen Mitteilungs- oder Zustimmungsverfahren. Sprachversionen streben nach Gleichwertigkeit; Übersetzungsunterschiede schließen den örtlichen Rechtsschutz nicht aus."
            ]
          },
          {
            "title": "14. Kontakt",
            "paragraphs": [
              "Bei Fragen zum Datenschutz, Anfragen zu Rechten, Support oder Meldungen zu Verstößen wenden Sie sich an den Betreuer 唐梓耀 / AdrianSparkle auf QQ unter 2410710390. Das öffentliche Profil des Entwicklers ist https://github.com/Tang1206cc. Identifizieren Sie das Produkt, die Version und Ihre Anfrage. Geben Sie in Ihrer ersten Nachricht keine Passwörter, Anmeldecookies, Verbindungscodes, vollständige Aufzeichnungen oder unnötige persönliche Informationen an."
            ]
          },
          {
            "title": "15. Grenzen der Autorisierung und Unterstützung des Freundespools",
            "paragraphs": [
              "Jeder Freund muss die offizielle QR-Anmeldung persönlich bestätigen und verstehen, dass der Erinnerungsdienst seine Anmeldedaten speichert und der aktuelle Konto-/Geräteinhaber Hilfe veranlassen kann. Behalten, übertragen oder nutzen Sie die Sitzung einer anderen Person nicht ohne deren Erlaubnis oder umgehen Sie die Regeln der Schule, des Lehrers oder der offiziellen Plattform. Die Einbeziehung des Eigentümers und von bis zu fünf Freunden begründet keinen Anspruch auf Zutritt oder Einchecken in einen Klassenraum.",
              "Einladungslinks und Freundespools sind separate Abläufe: Der Helfer eines Links muss sich nicht anmelden, während sich jeder zusammengefasste Freund einzeln autorisieren muss. Für die Unterstützung ist das aktive Scannen eines entsprechenden QR-Codes im Klassenzimmer erforderlich, wobei die Ergebnisse für jedes Konto separat überprüft werden. Einreichungs-, Warte- und Eintrittsaufzeichnungen beweisen nicht die physische Anwesenheit. Für eingeschränkte oder nicht unterstützte Flows ist weiterhin der offizielle Client erforderlich. Die Verfügbarkeit für jede Schule, jedes Klassenzimmer oder jedes Konto wird nicht versprochen. Informationen zu Abmeldung, Entfernung, Ablauf, Sicherungen und verbleibenden Daten finden Sie in der Datenschutzrichtlinie."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Software- und Servicelizenz für Regenwarnung",
        "intro": "Diese Lizenz erläutert die zulässige Nutzung des Originalcodes und der Originalschnittstelle der Web-App. Access gewährt keine Quellweiterverteilung, unabhängige Bereitstellung oder Sparkle-Branding-Rechte. Open-Source-Komponenten behalten ihre eigenen Lizenzen.",
        "sections": [
          {
            "title": "1. Rechteinhaber und Geltungsbereich",
            "paragraphs": [
              "Die Rechte am Originalcode, der Benutzeroberfläche, den Grafiken und der Dokumentation von Rain Alert verbleiben bei den jeweiligen Rechteinhabern. Sparkle wird von 唐梓耀 / AdrianSparkle und 丁铭 / EliasSparkle gepflegt. Diese Lizenz deckt den Zugriff auf den bereitgestellten Web-App-Client und -Dienst ab, ohne dass Inhalte Dritter oder Open-Source-Berechtigungen geändert werden."
            ]
          },
          {
            "title": "2. Begrenzte Client- und Zugriffsberechtigung",
            "paragraphs": [
              "Gemäß den Nutzungsbedingungen erhalten Sie ein begrenztes, nicht ausschließliches, nicht übertragbares und nicht unterlizenzierbares Recht, auf den tatsächlich zur Verfügung gestellten Dienst zuzugreifen, den mit seinen Seiten gelieferten Client-Code zu laden und auszuführen und eine normale Browserinstallation zu verwenden, z. B. das Hinzufügen zum Startbildschirm auf Geräten, die Sie besitzen oder zu deren Nutzung Sie berechtigt sind. Sie können Konten verbinden, zu deren Autorisierung Sie über unterstützte Funktionen berechtigt sind.",
              "Verwenden Sie unterstützte Abläufe, um Ihr eigenes Konto oder das Konto eines Freundes zu verbinden, nachdem dieser Freund persönlich die offizielle QR-Anmeldung für den Pool autorisiert hat. Dadurch werden keine über die ursprüngliche Autorisierung hinausgehenden Konto-, Kurs- oder Plattformrechte gewährt."
            ]
          },
          {
            "title": "3. Im Originalcode nicht gewährte Rechte",
            "paragraphs": [
              "Durch die Sichtbarkeit oder Herunterladbarkeit von Browserskripten wird der Originalcode nicht unter eine Open-Source-Lizenz gestellt. Sofern nicht gesetzlich zulässig oder gesondert schriftlich genehmigt, dürfen Sie das Produkt nicht weiterverbreiten, keinen unabhängigen Dienst modifizieren und betreiben, es zum Verkauf verpacken, vermieten, unterlizenzieren, Rechtehinweise entfernen oder Backend-Schnittstellen als nicht autorisierten kommerziellen Dienst anbieten. Diese Softwarevorbehalte schränken die rechtmäßige Nutzung der Daten Ihres eigenen Kontos nicht ein."
            ]
          },
          {
            "title": "4. Gesetzliche Ausnahmen und Forschung",
            "paragraphs": [
              "Diese Lizenz schränkt Backups, Interoperabilität, Sicherheitsforschung oder andere Rechte nicht ein, deren Ausschluss nach geltendem Recht in einem Vertrag nicht zulässig ist. Die Forschung darf keinen unrechtmäßigen Zugang zu Anmeldeinformationen, Datenschutzverletzungen oder Störungen des Live-Dienstes beinhalten. Melden Sie Schwachstellen mit minimalen Reproduktionsdetails, ohne gültige Schlüssel oder Benutzerdaten zu veröffentlichen."
            ]
          },
          {
            "title": "5. Priorität der Komponentenlizenzen",
            "paragraphs": [
              "Der Dienst nutzt Express, QRcode, tough-cookie, Web-Push und deren Abhängigkeiten. Genaue Versionen, Urheberrechtshinweise und Texte finden Sie in den Hinweisen Dritter. Dazu gehören MIT, ISC, BSD-3-Clause, Apache-2.0 und MPL-2.0; Sie sind nicht alle MIT. Die Seite „Lernen mit Freunden“ verwendet außerdem den Apache-2.0-lizenzierten jsQR-Decoder, dessen unabhängige Lizenz ebenfalls Vorrang hat.",
              "Jede Komponente darf unter ihrer eigenen Lizenz verwendet, geändert oder verteilt werden. Einschränkungen für proprietäre Software setzen widersprüchliche Berechtigungen unabhängiger Komponenten nicht außer Kraft. Web-Push verwendet MPL-2.0; Eine Quellkopie der verwendeten Version wird hier bereitgestellt. Durch die Bereitstellung der Komponentenquelle wird nicht das gesamte Rain Alert-Projekt als Open Source veröffentlicht."
            ]
          },
          {
            "title": "6. Daten, Plattformen und Marken",
            "paragraphs": [
              "Es werden keine zusätzlichen Rechte an den Kursinhalten von Rain Classroom, den Informationen anderer Studenten oder den offiziellen Plattform-APIs gewährt. Sie behalten die gesetzlichen Rechte an Ihren Daten. Sparkle, Rain Alert sowie Marken und Marken Dritter behalten ihren jeweiligen Schutz. Geben Sie sich nicht als offizieller Betreiber aus und behaupten Sie nicht, dass es keine Partnerschaften, Zertifizierungen oder Empfehlungen gibt."
            ]
          },
          {
            "title": "7. Unabhängiger Einsatz und Weiterverkauf",
            "paragraphs": [
              "Der Zugriff umfasst nicht die Bereitstellung von Backend-Quellen, die Serververwaltung, den Weiterverkauf von Diensten oder die Erlaubnis zur unabhängigen Bereitstellung. Holen Sie bei Bedarf eine ausdrückliche gesonderte Genehmigung ein. Das Vorhandensein von package.json, Abhängigkeitslisten oder lesbarem Code in einem Entwicklungsverzeichnis stellt keine allgemeine Open-Source-Bewilligung für das ursprüngliche Projekt dar."
            ]
          },
          {
            "title": "8. Dauer, Kündigung und Aktualisierungen",
            "paragraphs": [
              "Diese Lizenz gilt bei rechtmäßiger Nutzung des bereitgestellten Clients und Dienstes. Sie können die Nutzung beenden und den Startbildschirmeintrag entfernen. Wesentliche Verstöße können zu rechtmäßigen Zugangsbeschränkungen mit einer angemessenen Möglichkeit zur Korrektur führen, sofern angemessen und behebbar. Durch die Kündigung erlöschen weder gesetzliche Datenrechte noch aufgelaufene Verantwortlichkeiten oder unabhängige Open-Source-Lizenzen.",
              "Updates unterliegen weiterhin dieser Lizenz, sofern ihnen keine anderen Bedingungen beigefügt sind. Access garantiert keinen dauerhaften Betrieb, die Wartung einer bestimmten Version oder eine unbegrenzte Kompatibilität. Wesentliche Änderungen unterliegen den Nutzungsbedingungen und geltendem Recht."
            ]
          },
          {
            "title": "9. Gewährleistungen und Haftung",
            "paragraphs": [
              "Soweit gesetzlich zulässig, werden Software und Service im verfügbaren Zustand bereitgestellt. Garantien und Verantwortung richten sich nach den Nutzungsbedingungen, tatsächlichen Verpflichtungen und geltendem Recht. Der zwingende Verbraucherschutz, die nicht ausschließbaren Datenschutzpflichten, die Haftung für Vorsatz oder grobe Fahrlässigkeit sowie sonstige zwingende Rechte bleiben bestehen."
            ]
          },
          {
            "title": "10. Lizenzanfragen",
            "paragraphs": [
              "Bei Fragen zum Datenschutz, Anfragen zu Rechten, Support oder Meldungen zu Verstößen wenden Sie sich an den Betreuer 唐梓耀 / AdrianSparkle auf QQ unter 2410710390. Das öffentliche Profil des Entwicklers ist https://github.com/Tang1206cc. Identifizieren Sie das Produkt, die Version und Ihre Anfrage. Geben Sie in Ihrer ersten Nachricht keine Passwörter, Anmeldecookies, Verbindungscodes, vollständige Aufzeichnungen oder unnötige persönliche Informationen an.",
              "Erklären Sie bei Teameinsatz, Quelllizenzierung, kommerzieller Zusammenarbeit oder Markennutzung den Verwendungszweck und wenden Sie sich an die Rechteinhaber. Urheberrechte an der Software, die nicht ausdrücklich gewährt werden, bleiben vorbehalten."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Hinweise zu Regenwarnungen von Drittanbietern und Open-Source",
        "intro": "Das Inventar wurde mit der aktuellen package-lock.json und den installierten Paketen verglichen und umfasst 110 Produktionsabhängigkeitspakete. Die Original-Urheber- und Lizenzbedingungen finden Sie unten. Sie lizenzieren nicht das gesamte Produkt zu den gleichen Bedingungen.",
        "sections": [
          {
            "title": "1. Hauptabhängigkeiten",
            "paragraphs": [
              "Express 5.3.0 (MIT) übernimmt das HTTP-Routing; qrcode 1.5.4 (MIT) generiert Login-QR-Bilder; tough-cookie 6.0.2 (BSD-3-Clause) verwaltet offizielle Sitzungscookies; web-push 3.6.7 (MPL-2.0) verarbeitet Web Push-Anfragen und Verschlüsselung. Das vollständige Inventar umfasst transitive Abhängigkeiten nach Installationsort und nicht nur diese vier Pakete. Die Browserseite „Study with friends“ verwendet zusätzlich jsQR (Apache-2.0), um QR-Codes auf dem Gerät zu dekodieren. Diese Browserkomponente ist unabhängig von der oben genannten Node.js-Produktionsabhängigkeitszählung. Die mit dem aktuellen Produkt gelieferte Originallizenz wird separat bereitgestellt; Proprietäre Softwarebedingungen schmälern nicht ihre unabhängigen Berechtigungen."
            ]
          },
          {
            "title": "2. Originaltexte, Quelle und Umfang",
            "paragraphs": [
              "Der herunterladbare Hinweis enthält die Texte LICENSE, LICENCE, COPYING und NOTICE, die in den überprüften Paketen enthalten sind. Dem installierten http_ece 1.2.0-Paket fehlt eine separate Lizenzdatei; Sein MIT-Text wird aus dem passenden Upstream-v1.2.0-Tag entnommen, wobei die Quelle aufgezeichnet wird. Eine ZIP-Datei enthält separat die Quelle der Web-Push-Komponente, README, package.json und eine Lizenz zum Untersuchen von MPL-gedeckten Dateien.",
              "Dies ist das Produktionsabhängigkeitsinventar des aktuellen Projekts. Dies bedeutet nicht, dass jede Serverabhängigkeit an den Browser übermittelt wird, oder ersetzt Hinweise, die bei der Weiterverteilung von Node.js, Betriebssystemen oder zusätzlicher Software erforderlich sind. Vorgelagerte Texte behalten ihre Originalsprache und regeln die Komponentenrechte."
            ]
          },
          {
            "title": "3. Plattformbeziehungen und -verarbeitung",
            "paragraphs": [
              "Rain Classroom, WeChat und die Browser-Benachrichtigungsinfrastruktur werden von den jeweiligen Rechteinhabern betrieben. Unabhängige Mahnungen über die Kontoautorisierung und entsprechende Schnittstellen bedeuten nicht deren Billigung. Die Verwendung auf Apple-Geräten, als Web-App auf dem Startbildschirm oder über Web Push bedeutet nicht, dass Apple dieses Produkt erstellt, überprüft oder garantiert. Die Plattformverarbeitung und die Datenflüsse dieses Dienstes werden in den jeweiligen Richtlinien und der Datenschutzrichtlinie dieses Produkts beschrieben."
            ]
          },
          {
            "title": "4. Rechte- und Sicherheitsberichte",
            "paragraphs": [
              "Wenn eine Namensnennung, ein Inventar, eine Quellenangabe oder ein Urheberrechtshinweis unvollständig erscheint, teilen Sie den Betreuern das Paket, die Version und die Beweise mit, damit sie überprüft und korrigiert werden können. Veröffentlichen Sie keine Benutzeranmeldeinformationen, wenn Sie Sicherheitsprobleme melden.",
              "Bei Fragen zum Datenschutz, Anfragen zu Rechten, Support oder Meldungen zu Verstößen wenden Sie sich an den Betreuer 唐梓耀 / AdrianSparkle auf QQ unter 2410710390. Das öffentliche Profil des Entwicklers ist https://github.com/Tang1206cc. Identifizieren Sie das Produkt, die Version und Ihre Anfrage. Geben Sie in Ihrer ersten Nachricht keine Passwörter, Anmeldecookies, Verbindungscodes, vollständige Aufzeichnungen oder unnötige persönliche Informationen an."
            ]
          }
        ],
        "links": [
          {
            "label": "Original jsQR Apache-2.0-Lizenz · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "fr": {
      "privacy": {
        "title": "Politique de confidentialité d'alerte de pluie",
        "intro": "Rain Alert se connecte à Rain Classroom via un service de rappel et envoie des notifications à vos appareils. Il traite donc l'autorisation de compte, les informations sur les cours et les données de notification sur un serveur. Vérifiez cette portée avant de vous connecter ou d’autoriser un compte.",
        "sections": [
          {
            "title": "1. Portée et responsables",
            "paragraphs": [
              "雨水提醒 (Rain Alert) est une application Web indépendante de rappel d'événements en classe sous Sparkle, créée et maintenue par 唐梓耀 / AdrianSparkle et 丁铭 / EliasSparkle. Cette politique couvre l'instance exploitée par Sparkle, le couplage d'appareils, l'autorisation QR Rain Classroom, la surveillance de la classe et Web Push. Cette politique couvre également les vérifications du statut d’entrée en classe et les invitations à étudier avec des amis que vous créez activement.",
              "Il ne s'agit pas d'un produit officiel de Rain Classroom et ne représente pas les écoles, les enseignants, Rain Classroom, WeChat, Apple ou les fournisseurs de navigateurs. Leurs services ont des règles de confidentialité distinctes. Les instances gérées de manière indépendante exigent des divulgations de la part de leurs propres opérateurs ; nos modalités d'hébergement et d'administration ne s'appliquent pas automatiquement à eux."
            ]
          },
          {
            "title": "2. Détails du compte, cours et informations d'identification",
            "paragraphs": [
              "La demande d'un code QR de connexion officiel crée automatiquement une session sur l'appareil ; aucun code de connexion n’est requis. Après avoir confirmé la connexion QR officielle, le service reçoit l'identifiant de compte, le nom ou le surnom, l'école et le numéro d'étudiant renvoyés par Rain Classroom, ainsi que les cours inscrits, les identifiants de classe, les noms, les enseignants et les identifiants d'organisation associés. Ceux-ci identifient le compte et affichent les cours.",
              "Le serveur stocke également les cookies de connexion officiels, l'autorisation de session et les jetons de classe nécessaires pour continuer à interroger après la fermeture de la page. Nous ne demandons ni ne stockons votre mot de passe Rain Classroom ou WeChat. Les cookies et les jetons peuvent représenter une autorité de connexion et nécessitent une protection spéciale. La numérisation ne conserve pas l'autorisation uniquement sur votre téléphone."
            ]
          },
          {
            "title": "3. Événements en classe et informations sur les autres",
            "paragraphs": [
              "Le service interroge les cours en cours, les journaux d'apprentissage nécessaires et les modes d'enregistrement. Lorsque les rappels en classe sont activés, il reçoit le flux officiel des événements en classe. Les champs de notification stockés incluent les noms des cours et des salles de classe, les types et identifiants d'événements, les heures de plateforme ou de détection et les résumés nécessaires.",
              "Les événements de sélection aléatoire peuvent contenir des noms et des numéros d'élèves annoncés à la classe par l'enseignant. Ceux-ci peuvent être stockés dans des enregistrements d’événements cryptés et affichés dans les organismes de notification, y compris des informations sur les camarades de classe. Gérez soigneusement les aperçus de l'écran de verrouillage et les appareils partagés et ne republiez pas ces détails. Le service ne les utilise pas pour profiler les étudiants.",
              "La mise en œuvre actuelle ne conserve pas le texte des questions ou les réponses en tant que contenu de rappel persistant, ne répond pas aux questions, ne répond pas aux appels nominaux ou aux réponses rapides, ni ne collecte l'emplacement de l'appareil. La fréquentation ordinaire peut déclencher une demande d'entrée via des rappels activés en classe. Vous pouvez également inviter activement un ami à un cours confirmé comme non inscrit ; l'ami soumet le texte décodé d'un code QR de classe correspondant, et le service utilise la session officielle de l'invitant pour le flux d'entrée normal vérifié. Ces demandes peuvent modifier les registres officiels d’entrée ou de présence ; voir les conditions d'utilisation."
            ]
          },
          {
            "title": "4. Appareils, notifications et informations techniques",
            "paragraphs": [
              "Nous traitons les identifiants aléatoires des appareils, les sessions de connexion hachées, les étiquettes des appareils, les heures de création et de dernière ouverture, l'expiration de 30 jours, les associations de comptes et les changements de rappel. La catégorie d'appareil initiale est dérivée de l'agent utilisateur du navigateur. Le renommage des appareils et la liste des appareils ne sont pas exposés dans l'interface actuelle ; les données associées et les points de terminaison de gestion restent.",
              "Lorsque vous activez les notifications, le navigateur fournit un point de terminaison push, une clé publique p256dh et un secret d'authentification. Le serveur stocke l'abonnement à envoyer à cet appareil. Les tentatives de livraison, l'état accepté ou échoué, les horodatages et les hachages de réceptions aléatoires prennent en charge le dépannage, la déduplication et la confirmation de la gestion du système. Un reçu ne prouve pas que vous avez vu, entendu ou lu une notification.",
              "La fourniture d'un service réseau implique le traitement des adresses IP, des en-têtes de requête, des origines, des temps de connexion et des informations sur les erreurs. Les adresses IP prennent également en charge la limitation du taux d'abus en mémoire. L'application actuelle ne dispose d'aucun SDK de publicité ou d'analyse comportementale et n'utilise pas ces données pour le suivi intersites ou la vente d'informations personnelles. Les fournisseurs d'infrastructures et de communications peuvent traiter les journaux techniques selon leurs propres règles."
            ]
          },
          {
            "title": "5. Finalités et limites de l'autorisation",
            "paragraphs": [
              "Ces données prennent en charge le couplage, l'identification de votre compte autorisé, l'interrogation et l'affichage des classes, l'envoi d'événements sélectionnés, la maintenance des sessions, la migration des origines, la protection de la sécurité, le dépannage et la récupération. Les données de compte et de cours ne sont pas utilisées à des fins de publicité, de profilage commercial ou de formation à l'IA. Sans autorisation QR, les cours ne peuvent pas être lus. Sans autorisation de notification, une page de connexion peut toujours afficher des informations mais ne peut pas envoyer de notifications système à cet appareil.",
              "Les informations d'identification sensibles, les informations sur les camarades de classe et le traitement inter-régional nécessitent les notifications, les motifs légaux et les procédures de consentement applicables en vertu de la loi. Cette politique explique les flux réels. Le consulter, demander un code QR de connexion ou scanner un code QR n'est pas considéré comme satisfaisant à chaque consentement requis séparément. N’autorisez pas les comptes ou les informations que vous n’avez pas le droit de fournir."
            ]
          },
          {
            "title": "6. Cookies, stockage du navigateur et autorisations",
            "paragraphs": [
              "La connexion de l'appareil utilise un cookie rain_session ; le serveur stocke son hachage. Sur HTTPS, il possède les attributs Secure, HttpOnly et SameSite=Strict et dure jusqu'à 30 jours avec la connexion de l'appareil, se réinitialisant lors du renouvellement. Il s'agit d'un cookie d'authentification et non d'un cookie publicitaire. La déconnexion de Rain Classroom n’efface pas automatiquement ce cookie de connexion à l’appareil.",
              "Les autorisations du navigateur régissent les notifications de l'appareil. Les pages d'étude conjointe et d'assistance sur invitation n'utilisent l'appareil photo qu'une fois que vous avez activement lancé la numérisation et accordé l'accès, et peuvent également accepter une image. Le décodage QR s'effectue dans le navigateur ; seul le texte décodé est soumis, sans télécharger de vidéo ou d'images sélectionnées. Le zoom de l'appareil photo utilise le zoom matériel ou numérique comme le prend en charge l'appareil. Le microphone, l’emplacement et les contacts ne sont pas demandés."
            ]
          },
          {
            "title": "7. Destinataires, hébergement et transferts internationaux",
            "paragraphs": [
              "L'instance actuelle exploitée par Sparkle s'exécute sur Tencent Cloud à Hong Kong, en Chine. Si vous êtes en Chine continentale ou dans une autre région, les détails du compte, les cookies, les cours, les événements et les abonnements aux appareils envoyés à cette instance sont transférés et stockés à Hong Kong. L'autorisation et la surveillance communiquent également avec les API officielles de Rain Classroom et les services d'événements en classe. Toute personne détenant une invitation à étudier valide peut lire le nom d’affichage de l’invitant, le nom du cours, l’heure d’expiration et l’état de traitement et soumettre un code QR d’entrée pour le cours spécifié. Le texte décodé passe par le service de Hong Kong vers les interfaces officielles de Rain Classroom. L’ami ne reçoit pas les cookies, le mot de passe ou la liste complète des cours de l’invitant. Partagez les invitations uniquement avec des personnes de confiance autorisées à vous aider.",
              "Selon le navigateur, Web Push utilise une infrastructure telle qu'Apple, Google, Mozilla ou Microsoft, qui peut traiter des données dans d'autres pays ou régions. Le service envoie des charges utiles push chiffrées et les informations de routage nécessaires au point de terminaison de l'abonnement ; les navigateurs et les systèmes d’exploitation les affichent. Des notifications en texte brut peuvent apparaître sur l'appareil. Le cryptage push ne signifie pas que le serveur de rappel ne peut pas lire les données sous-jacentes.",
              "Cloudflare fournit actuellement l'enregistrement de domaine et le DNS. Dans la configuration existante, le trafic des applications ne passe pas par son proxy CDN ; Le traitement DNS implique toujours les informations de requête nécessaires. Nous ne vendons ni ne louons d’informations personnelles. Les divulgations requises par la loi, les mesures de sécurité nécessaires ou d'autres transferts que vous ordonnez expressément doivent être limitées à l'objectif pertinent."
            ]
          },
          {
            "title": "8. Limites de cryptage et de sécurité",
            "paragraphs": [
              "Les profils de compte, les caches de cours, les cookies de connexion, les informations d'identification de la classe, les charges utiles des événements et les abonnements push sont stockés à l'aide d'AES-256-GCM. Les identifiants de compte et d'appareil, les associations, les commutateurs, les heures, les statuts et autres champs opérationnels ne sont pas tous cryptés individuellement. La base de données et la clé principale sont gérées sur le même hôte ; il ne s’agit pas d’un chiffrement de bout en bout qui résiste à une compromission totale du serveur.",
              "Le service utilise HTTPS, le hachage de session, les vérifications d'origine, la limitation de débit et les points de terminaison push restreints. Les administrateurs autorisés peuvent avoir l'accès nécessaire au décryptage. En cas d'incident de sécurité des informations personnelles, nous prendrons des mesures correctives et informerons les personnes et les autorités concernées comme l'exige la loi applicable, en expliquant les informations impliquées, l'impact possible, les mesures prises et les itinéraires de contact. La sécurité absolue n'est pas promise. Connectez uniquement des appareils de confiance et ne partagez pas de codes de connexion, de cookies, de liens de migration ou de notifications privées."
            ]
          },
          {
            "title": "9. Rétention en ligne",
            "paragraphs": [
              "Les connexions des appareils durent 30 jours à compter de la création ou du renouvellement manuel ; une session expirée ne donne plus accès. Une autorisation officielle invalide suspend la surveillance pertinente. Lorsque le dernier appareil associé valide se déconnecte, est révoqué ou expire, la gestion de la déconnexion ou la maintenance périodique efface les cookies de connexion du compte et les informations d'identification stockées en classe et met en pause les connexions.",
              "Les classes terminées et leurs enregistrements de livraison, les événements historiques en dehors des classes actives et les enregistrements push simulés sont nettoyés lors de la maintenance périodique en utilisant un seuil de 90 jours dans le code. Les classes actives et les enregistrements associés protégés peuvent rester plus longtemps. Les identifiants de migration sont à usage unique et expirent après cinq minutes. Les invitations à l'étude utilisent des jetons aléatoires. Un index de hachage dans la mémoire de processus contient le nom d'affichage de l'invitant, la classe spécifiée, l'expiration d'environ 30 minutes, le nombre de tentatives et l'état du résultat. Les invitations expirées ne peuvent pas être utilisées et les invitations ne survivent pas à un redémarrage du service. Les entrées de mémoire expirées sont effacées lors de la création d'invitations ultérieures, plutôt que d'être garanties par un effacement au niveau des octets à l'expiration. Le texte QR décodé est utilisé pour la demande en cours ; le module d'étude n'écrit pas les images de la caméra, les images sélectionnées ou le texte QR dans la base de données. Les registres officiels d’entrée et les journaux techniques des infrastructures suivent leurs règles de traitement réelles respectives.",
              "La mise en œuvre actuelle n'a pas de période de suppression automatique uniforme pour tous les profils de compte, caches de cours, métadonnées d'appareil, champs d'état ou sauvegardes. Les règles de connexion de 30 jours et d’historique de 90 jours n’effacent pas l’intégralité d’un compte à ces moments-là. Contactez les responsables si vous arrêtez d'utiliser le service et souhaitez que les données restantes soient supprimées. L'absence de nettoyage automatisé ne constitue pas une autorisation de conservation indéfinie. Lorsque les données ne sont plus nécessaires ou que leur suppression est légalement requise, nous agirons conformément à la loi applicable et vérifierons la portée nécessitant un traitement manuel."
            ]
          },
          {
            "title": "10. Sauvegardes, matériel de support et étendue du nettoyage",
            "paragraphs": [
              "Les sauvegardes de récupération incluent des instantanés de base de données, des clés de service, des clés push et la configuration d'origine. Les sauvegardes exportées utilisent une clé de données aléatoire AES-256-GCM enveloppée dans une clé publique RSA-OAEP distincte ; la clé privée de déchiffrement est conservée séparément. Cependant, le stockage cloud peut également conserver des instantanés SQLite protégés par des autorisations de fichiers, et les privilèges de l'hôte peuvent accéder aux données opérationnelles. La protection des sauvegardes dépend donc du type de copie et de l'endroit où elle est conservée.",
              "Le processus de sauvegarde existant n'a pas d'expiration automatique uniforme ; les exportations hors ligne peuvent persister. La suppression des données en ligne n'efface pas immédiatement les sauvegardes historiques. Une demande de suppression peut poser des questions sur les sauvegardes restantes, les raisons de conservation et les modalités de disposition. Cela nécessite une vérification manuelle ; aucun effacement instantané en un clic non mis en œuvre n’est promis. Les conversations d'assistance et les pièces jointes soumises sont conservées selon les besoins, et non à des fins de publicité ou de formation."
            ]
          },
          {
            "title": "11. Désactiver, déconnecter, révoquer et demander la suppression",
            "paragraphs": [
              "Vous pouvez désactiver chacun des cinq types de rappel, révoquer les notifications du système, vous déconnecter de Rain Classroom sur cet appareil ou arrêter de renouveler une connexion. L'interface actuelle n'a pas de liste de périphériques ni de contrôles de révocation ; contactez les responsables pour examiner ou révoquer d’autres appareils. Un commutateur arrête uniquement les rappels correspondants de cet appareil. La surveillance peut continuer lorsqu'un autre appareil a des rappels activés. La déconnexion dissocie cet appareil et supprime son abonnement push côté serveur ; les autorisations du navigateur ou l'état de l'abonnement peuvent nécessiter une gestion du système distincte.",
              "La libération des informations de connexion après le départ du dernier appareil valide n'efface pas tous les profils, l'historique, les autres métadonnées de l'appareil ou les sauvegardes. Il n'y a pas de bouton de suppression automatique de l'ensemble du compte dans le produit actuel. Contacter les responsables pour demander des informations, un accès, une copie, une correction, une suppression, une restriction, un retrait d'autorisation ou le traitement d'une objection concernant les informations d'une autre personne."
            ]
          },
          {
            "title": "12. Vérification, conservation légale et recours",
            "paragraphs": [
              "Nous vérifions la relation entre une demande et un compte proportionnellement au risque et ne demandons que les informations nécessaires. N'envoyez pas de cookies, de mots de passe ou d'informations d'identification de migration. Les demandes doivent être traitées rapidement, comme l'exige la loi. Si une séparation technique, des sauvegardes, des litiges ou des obligations légales de conservation empêchent une réalisation immédiate, les raisons, la portée et les dispositions ultérieures doivent être expliquées. Lorsque la loi exige l'arrêt d'autres traitements, les données conservées sont limitées au stockage et à la sécurité nécessaires plutôt que renvoyées à une surveillance ordinaire. La restauration nécessite de vérifier les demandes de droits précédemment traitées. Les droits statutaires ne se limitent pas aux boutons d'interface existants. Vous pouvez porter plainte auprès du régulateur compétent."
            ]
          },
          {
            "title": "13. Mineurs et contextes d'apprentissage",
            "paragraphs": [
              "Le service est destiné aux utilisateurs capables d'autoriser légalement leurs comptes et appareils. Les mineurs nécessitent une autorisation appropriée d’un tuteur et doivent suivre les règles de l’école. La connexion au compte n'est pas destinée aux enfants de moins de 14 ans. Il n'existe actuellement aucun mécanisme de vérification de l'âge ; contactez les responsables si les informations sur les enfants peuvent avoir été traitées sans l’autorisation requise afin qu’elles puissent faire l’objet d’une enquête et être traitées conformément à la loi.",
              "Les noms, numéros d’élèves et événements en classe sont utilisés à titre de rappel et non pour juger de l’assiduité ou des performances d’une autre personne. Les dossiers des écoles et des enseignants par les voies officielles font toujours autorité."
            ]
          },
          {
            "title": "14. Modifications et versions linguistiques",
            "paragraphs": [
              "Les modifications importantes apportées aux catégories de données, aux finalités, à l'hébergement ou aux destinataires seront décrites ici et datées. La mise à jour du texte ou l'utilisation continue ne peuvent pas remplacer l'avis supplémentaire légalement requis, le consentement séparé ou d'autres procédures. Les versions linguistiques visent à décrire le même champ d'application ; les différences ne diminuent pas vos droits en vertu de la loi applicable."
            ]
          },
          {
            "title": "15. Contacter",
            "paragraphs": [
              "Pour les questions de confidentialité, les demandes de droits, l'assistance ou les rapports d'infraction, contactez le responsable 唐梓耀 / AdrianSparkle sur QQ au 2410710390. Le profil public du développeur est https://github.com/Tang1206cc. Identifiez le produit, la version et votre demande. N'incluez pas de mots de passe, de cookies de connexion, de codes de connexion, d'enregistrements complets ou d'informations personnelles inutiles dans votre message initial.",
              "Précisez « Alerte pluie / 雨水提醒 » et la portée de votre demande. Pour les informations sur un autre étudiant sélectionné, fournissez un minimum d’heure de l’événement et de contexte du cours plutôt que de publier publiquement un nom complet et un numéro d’étudiant."
            ]
          },
          {
            "title": "15. Pools d'amis, autorisation individuelle et assistance à la co-étude",
            "paragraphs": [
              "Le pool d'amis de co-étude inclut toujours son propriétaire et prend en charge jusqu'à cinq amis, isolés par compte propriétaire et appareil actuel. Chaque ami doit personnellement confirmer la connexion officielle au QR. Le service stocke l'identifiant de compte renvoyé, le profil d'affichage et la session officielle pour vérifier l'identité, afficher l'état de connexion et faciliter l'entrée suite à une demande d'analyse active. Les mots de passe amis ne sont ni demandés ni stockés. Les informations d'identification officielles sont traitées par le serveur, et pas uniquement sur le téléphone scanné. Les sessions entre amis sont conservées en dehors de la table du compte de rappel du propriétaire et n'activent pas automatiquement les rappels en classe pour ces amis.",
              "Les profils d'amis et les informations d'identification sont cryptés dans une base de données d'amis distincte. Les associations propriétaire/appareil, les statuts, les horodatages et autres champs opérationnels ne constituent pas un chiffrement de l’intégralité de la base de données. Le titulaire actuel de l'appareil peut afficher les noms d'affichage de ses amis, les avatars disponibles et l'état de connexion et lancer une assistance. Les amis doivent comprendre cette portée et autoriser uniquement les appareils fiables et autorisés. Le service peut récupérer des avatars d'affichage à partir de sources officielles autorisées, dont les règles régissent ces demandes.",
              "Aidez vos amis à co-étudier en utilisant l'appareil photo ou une image uniquement lorsque vous le lancez. Le navigateur décode le QR localement. Le service reçoit son texte et utilise séparément la session de chaque compte groupé pour vérifier la classe, soumettre des demandes prises en charge et vérifier les résultats officiels. Cela peut modifier les enregistrements officiels d’entrée ; il ne répond ni aux exercices ni aux appels nominaux. La vidéo et les images sélectionnées ne sont pas téléchargées ; le texte décodé est utilisé pour cette opération. Les tâches et les résultats sont conservés temporairement dans la mémoire du processus, et non en tant qu'enregistrements permanents ou preuves de présence physique.",
              "La suppression d'un ami supprime l'enregistrement correspondant de ce pool et invalide les anciennes tâches sans envoyer de demande de déconnexion officielle pour l'ami. La déconnexion, le changement de compte de propriétaire ou la révocation de l'appareil invalident les informations d'identification des amis pour ce pool de propriétaire/appareil. Les appareils expirés sont traités pendant la maintenance. Les relations entre amis et les profils restent comme des enregistrements invalides, sans délai de suppression automatique uniforme ; réautoriser le même ami ou demander la suppression. Les pools d’autres appareils valides ne sont pas affectés. Une connexion officielle de propriétaire expirée n'invalide pas automatiquement les informations d'identification d'un ami tant que la session de l'appareil reste valide, de sorte que les amis valides peuvent toujours être aidés. La base de données d'amis distincte est incluse dans les sauvegardes cryptées existantes ; la suppression des enregistrements en ligne n’efface pas simultanément les sauvegardes historiques."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Conditions d'utilisation de l'alerte de pluie",
        "intro": "Rain Alert fournit des notifications supplémentaires sur les événements en classe. Portez une attention particulière à l'autorisation de compte, à l'effet réel des demandes d'enregistrement ordinaires et aux limites de la livraison push.",
        "sections": [
          {
            "title": "1. Portée, fournisseur et acceptation",
            "paragraphs": [
              "Ces conditions s'appliquent à l'application Web Rain Alert et à l'instance de rappel gérée sous Sparkle par 唐梓耀/AdrianSparkle et 丁铭/EliasSparkle. Lisez-les avant de vous connecter, d'autoriser un compte ou d'activer les rappels. Ne prenez pas ces mesures si vous n’êtes pas d’accord. L’utilisation continue à elle seule n’établit pas le consentement ou l’autorisation du tuteur requis séparément."
            ]
          },
          {
            "title": "2. Outil indépendant et canaux officiels",
            "paragraphs": [
              "Rain Alert n'est pas un produit officiel de Rain Classroom, d'une école ou d'un enseignant. Cette page ne revendique aucun partenariat, agence ou approbation de la part de Rain Classroom, WeChat, Apple ou des fournisseurs de navigateurs. Les écoles, les enseignants et les registres officiels de Rain Classroom déterminent les horaires, les devoirs, la fréquentation et les notes.",
              "Le produit complète les clients officiels, les annonces en classe, la vérification manuelle et vos propres responsabilités en matière de présence. Il ne fournit actuellement pas de rappels complets pour tous les devoirs, examens ou annonces scolaires avant ou après les cours."
            ]
          },
          {
            "title": "3. Éligibilité et connexions fiables",
            "paragraphs": [
              "Vous devez être autorisé à utiliser le compte et l'appareil et suivre les règles de l'école, de l'enseignant et de la plateforme. Ne connectez pas de comptes non autorisés, empruntez des sessions. Les mineurs nécessitent l’autorisation d’un tuteur comme l’exige la loi ; les enfants de moins de 14 ans ne doivent pas connecter de comptes.",
              "Confirmez uniquement les connexions QR officielles que vous avez initiées. Ne donnez pas de mots de passe aux responsables, aux formulaires Web ou à des étrangers. La page d'accueil actuelle ne nécessite aucun code de connexion. La demande d'un code QR crée une session sur l'appareil ; les données du compte Rain Classroom associé ne sont accessibles qu’après avoir confirmé la connexion."
            ]
          },
          {
            "title": "4. Traitement autorisé",
            "paragraphs": [
              "Après la confirmation QR, le serveur doit stocker et utiliser les informations de connexion officielles pour interroger les détails du compte, les cours, les cours en cours et les événements nécessaires en classe et notifier les appareils enregistrés. La politique de confidentialité explique les données, les destinataires, l'hébergement à Hong Kong et la conservation. En créant activement une invitation à étudier, vous demandez également au service d'utiliser votre session officielle pour traiter le code QR d'entrée correspondant d'un ami pour ce cours spécifié. Les invitations durent environ 30 minutes. Vérifiez le destinataire, le nom d'affichage et les informations de classe affichés avant le partage. Cela ne donne à l'ami ni votre mot de passe, ni vos cookies, ni l'accès à d'autres cours.",
              "Comprenez cette portée avant d’activer les rappels. L'autorisation ne signifie pas l'autorisation de lire du matériel sans rapport, de publier vos cours, d'effectuer du marketing ou de former des modèles d'IA."
            ]
          },
          {
            "title": "5. Rappels en classe et effets d'enregistrement",
            "paragraphs": [
              "L'activation des rappels d'exercices, de sélection aléatoire, de réponse rapide ou de disponibilité des commentaires permet au service d'obtenir l'autorisation de la salle de classe conformément aux règles de la plateforme. Lorsque la plateforme identifie explicitement un enregistrement ordinaire, le service peut envoyer automatiquement une demande d'entrée en classe. Cette demande peut créer des enregistrements d’entrée ou d’enregistrement sur la plateforme officielle. Le service n'est pas entièrement en lecture seule.",
              "Vous pouvez inviter activement un ami à scanner un code QR d'entrée en classe correspondant, limité au flux QR normal vérifié. L'emplacement, les flux inconnus et autres restrictions non prises en charge nécessitent toujours le client officiel. Le service n'usurpe pas la localisation, ne déchiffre pas les codes QR, ne répond pas aux exercices, ne répond pas aux appels nominaux et ne soumet pas de réponses rapides. L'entrée automatique et les études avec des amis doivent respecter les règles de l'école, de l'enseignant et de la plateforme. L’état d’entrée du compte ne doit pas être représenté comme une présence physique ou utilisé pour falsifier la présence."
            ]
          },
          {
            "title": "6. Contenu des commutateurs, des tests et des notifications",
            "paragraphs": [
              "Cinq types de rappels sont contrôlés par appareil. L'autorisation du système et les commutateurs de rappel individuels sont des paramètres différents. Les tests push envoient cinq messages simulés clairement étiquetés même si les commutateurs correspondants sont désactivés, sans les modifier. La réussite des tests ne vérifie pas la source de l'événement en classe en direct.",
              "Les notifications de sélection aléatoire peuvent afficher les noms et les numéros d'élèves annoncés à la classe. D'autres notifications affichent des résumés de cours et d'événements. Gérez les aperçus et les appareils partagés et ne transmettez pas publiquement les informations de vos camarades de classe. Si aucune heure de début fiable n'est fournie par la plateforme, l'heure de détection affichée n'est pas l'heure de début du cours."
            ]
          },
          {
            "title": "7. Calendrier et fiabilité",
            "paragraphs": [
              "L'interrogation à environ cinq secondes dans des conditions normales fonctionne parallèlement aux connexions classe-événement. Il ne s’agit pas d’un délai de livraison ni d’une garantie de niveau de service. Les modifications de plate-forme, les réseaux, la maintenance, les économies d'énergie, les autorisations, les fournisseurs push, les politiques de navigateur, les connexions invalides ou les couplages expirés peuvent retarder, omettre, répéter ou arrêter les messages.",
              "« Accepté par service push » confirme l'acceptation d'une demande. Un reçu de l'appareil confirme le fonctionnement du système, et non le fait qu'une personne a lu ou entendu la notification. Continuez à consulter les chaînes officielles ; ne comptez pas uniquement sur cet outil pour les présences, les examens ou les échéances importantes."
            ]
          },
          {
            "title": "8. Appareils, expiration et migration d'origine",
            "paragraphs": [
              "Les connexions des appareils durent normalement 30 jours. Une invite de renouvellement apparaît au cours des sept derniers jours. La dénomination des appareils, la liste des appareils et les contrôles de révocation ne sont pas disponibles dans l'interface actuelle ; contactez les responsables pour enquêter et révoquer les connexions inconnues. Les autorisations officielles expirées ou les sessions sur l'appareil affectent la surveillance et les rappels.",
              "Les points d’entrée hérités principaux et conservés sont des origines de navigateur distinctes. Un identifiant à usage unique de cinq minutes migre le compte, les paramètres et l'historique nécessaire ; l'autorisation de notification doit être accordée à nouveau sur la nouvelle origine. Un lien de migration confère un accès temporaire et ne doit pas être partagé. La désactivation de l'ancien abonnement dépend de l'enregistrement réussi du nouveau."
            ]
          },
          {
            "title": "9. Utilisation acceptable",
            "paragraphs": [
              "Ne contournez pas les contrôles de l’école ou de la plateforme, ne falsifiez pas la fréquentation, ne volez pas ou ne partagez pas d’informations d’identification, ne collectez pas les données de personnes non liées, ne harcelez pas ou ne violez pas les droits, n’abusez pas de la livraison push, n’attaquez pas les interfaces et ne revendez pas les accès non autorisés. N'utilisez pas de cours, de noms, de numéros d'étudiants ou d'activités d'apprentissage pour des profils publicitaires ou une exposition publique.",
              "L'utilisation ordinaire doit toujours respecter les règles de la plateforme et de l'école ; le produit ne peut pas obtenir l'autorisation d'un tiers pour vous. Si vous trouvez un appareil inconnu ou une livraison incorrecte, désactivez les rappels pertinents et contactez les responsables pour enquêter et révoquer l'appareil."
            ]
          },
          {
            "title": "10. Disponibilité, frais, assistance et modifications",
            "paragraphs": [
              "Le service est actuellement en test public. Une disponibilité permanente, un accès gratuit permanent, des temps de réponse fixes et une capacité spécifique ne sont pas promis. Tout frais, abonnement ou nouvelle condition importante doit être clairement divulgué avant de prendre effet et suivre les procédures requises. Ces conditions à elles seules ne créent aucune obligation de paiement.",
              "La maintenance, la sécurité, la capacité et les changements en amont peuvent nécessiter des ajustements ou une suspension. Lorsque cela est raisonnablement prévisible, des explications et des conseils appropriés concernant la migration, l’exportation ou l’arrêt doivent être fournis. Les risques urgents peuvent nécessiter d’abord les mesures nécessaires et une explication le cas échéant, sans supprimer les obligations légales."
            ]
          },
          {
            "title": "11. Déconnexion, suspension et résiliation",
            "paragraphs": [
              "Vous pouvez désactiver les rappels, vous déconnecter, demander aux responsables de révoquer les appareils ou cesser d'utiliser le service. La dissociation du dernier appareil valide libère les informations de connexion. La politique de confidentialité explique séparément les profils restants, l'historique et les sauvegardes ; la cessation ne supprime pas automatiquement un compte entier.",
              "Un abus, une violation ou un risque de sécurité évident peuvent justifier la restriction des connexions pertinentes dans la mesure nécessaire, avec des raisons et une opportunité de retour d'information ou de correction, le cas échéant. Les obligations applicables en matière de confidentialité, de propriété intellectuelle et de protection des données survivent à la résiliation."
            ]
          },
          {
            "title": "12. Droits, garanties et responsabilité",
            "paragraphs": [
              "Vous conservez des droits sur vos informations. Les supports de cours appartiennent à leurs ayants droit. Le traitement n'accorde pas au service un droit d'utilisation illimité ou de sous-licence. Les conditions de licence du produit et de composants apparaissent dans la licence du logiciel et les avis tiers.",
              "Dans la mesure permise par la loi, le service est fourni dans son état disponible sans promesse de fonctionnement continu et sans erreur ou de livraison ponctuelle de chaque message. La responsabilité dépend des faits, de la faute et de la loi applicable. La responsabilité en cas de faute intentionnelle, de négligence grave, de préjudice corporel, de traitement illégal d'informations personnelles et d'autres questions non exclusives demeure, tout comme les recours obligatoires des consommateurs."
            ]
          },
          {
            "title": "13. Litiges, interprétation et révisions",
            "paragraphs": [
              "Contactez les responsables en cas de questions ou de litiges. Vous restez libre de demander réparation auprès d'un tribunal ou d'un régulateur ayant une juridiction légale, sans arbitrage obligatoire, sans tribunal étranger désigné ou renonciation aux droits statutaires. Une disposition inapplicable n’invalide pas les dispositions indépendamment efficaces.",
              "Les révisions importantes seront datées et suivront les procédures d’avis ou de consentement requises. Les versions linguistiques visent à être équivalentes ; les différences de traduction n’excluent pas la protection juridique locale."
            ]
          },
          {
            "title": "14. Contacter",
            "paragraphs": [
              "Pour les questions de confidentialité, les demandes de droits, l'assistance ou les rapports d'infraction, contactez le responsable 唐梓耀 / AdrianSparkle sur QQ au 2410710390. Le profil public du développeur est https://github.com/Tang1206cc. Identifiez le produit, la version et votre demande. N'incluez pas de mots de passe, de cookies de connexion, de codes de connexion, d'enregistrements complets ou d'informations personnelles inutiles dans votre message initial."
            ]
          },
          {
            "title": "15. Autorisation du pool d'amis et limites de l'assistance",
            "paragraphs": [
              "Chaque ami doit personnellement confirmer la connexion officielle au QR et comprendre que le service de rappel stocke les informations d'identification et que le titulaire actuel du compte/de l'appareil peut lancer une assistance. Ne conservez pas, ne transférez pas ou n’utilisez pas la session d’une autre personne sans autorisation et ne contournez pas les règles de l’école, de l’enseignant ou de la plateforme officielle. Le fait d'inclure le propriétaire et jusqu'à cinq amis n'établit aucun droit d'accès ou d'enregistrement dans une salle de classe.",
              "Les liens d'invitation et les groupes d'amis sont des flux distincts : l'assistant d'un lien n'a pas besoin de se connecter, alors que chaque ami regroupé doit autoriser individuellement. L'assistance nécessite de scanner activement un code QR de classe applicable, avec des résultats vérifiés séparément par compte. Les registres de soumission, d’attente et d’entrée ne prouvent pas la présence physique. Les flux restreints ou non pris en charge nécessitent toujours le client officiel ; la disponibilité pour chaque école, classe ou compte n’est pas promise. Consultez la politique de confidentialité pour la déconnexion, la suppression, l'expiration, les sauvegardes et les données restantes."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Logiciel d'alerte de pluie et licence de service",
        "intro": "Cette licence explique l'utilisation autorisée du code et de l'interface d'origine de l'application Web. L'accès n'accorde pas de redistribution des sources, de déploiement indépendant ou de droits de marque Sparkle. Les composants open source conservent leurs propres licences.",
        "sections": [
          {
            "title": "1. Titulaires des droits et portée",
            "paragraphs": [
              "Les droits sur le code, l’interface, les graphiques et la documentation originaux de Rain Alert restent la propriété de leurs titulaires de droits respectifs. Sparkle est maintenu par 唐梓耀/AdrianSparkle et 丁铭/EliasSparkle. Cette licence couvre l'accès au client et au service Web App fournis, sans modifier le contenu tiers ou les autorisations open source."
            ]
          },
          {
            "title": "2. Client limité et autorisation d'accès",
            "paragraphs": [
              "Sous réserve des Conditions d'utilisation, vous recevez un droit limité, non exclusif, non transférable et ne pouvant faire l'objet d'une sous-licence pour accéder au service réellement mis à disposition, charger et exécuter le code client fourni avec ses pages et utiliser l'installation d'un navigateur ordinaire, comme l'ajout à l'écran d'accueil sur les appareils que vous possédez ou que vous êtes autorisé à utiliser. Vous pouvez connecter les comptes que vous êtes autorisé à autoriser via les fonctionnalités prises en charge.",
              "Utilisez les flux pris en charge pour connecter votre propre compte ou celui d'un ami après que cet ami ait personnellement autorisé la connexion QR officielle pour la piscine. Cela n'accorde aucun droit de compte, de cours ou de plateforme au-delà de l'autorisation originale."
            ]
          },
          {
            "title": "3. Droits non accordés dans le code original",
            "paragraphs": [
              "La visibilité ou la téléchargeabilité des scripts du navigateur ne place pas le code original sous une licence open source. Sauf si la loi le permet ou si cela est autorisé par écrit séparément, ne redistribuez pas le produit, ne modifiez pas et n'exploitez pas un service indépendant, ne le conditionnez pas à la vente, ne le louez pas, ne l'accordez pas en sous-licence, ne supprimez pas les avis de droits ou n'offrez pas d'interfaces back-end en tant que service commercial non autorisé. Ces réservations de logiciels ne limitent pas l'utilisation licite des données de votre propre compte."
            ]
          },
          {
            "title": "4. Exceptions légales et recherche",
            "paragraphs": [
              "Cette licence ne restreint pas les sauvegardes, l'interopérabilité, la recherche de sécurité ou d'autres droits que la loi applicable ne permet pas à un contrat d'exclure. La recherche ne doit pas impliquer un accès illégal aux informations d'identification, des violations de la vie privée ou une interruption du service en direct. Signalez les vulnérabilités avec le minimum de détails de reproduction nécessaires, sans publier de clés ou de données utilisateur valides."
            ]
          },
          {
            "title": "5. Priorité des licences de composants",
            "paragraphs": [
              "Le service utilise Express, qrcode, hard-cookie, web-push et leurs dépendances. Les versions exactes, les déclarations de droits d'auteur et les textes se trouvent dans les avis tiers. Ils incluent MIT, ISC, BSD-3-Clause, Apache-2.0 et MPL-2.0 ; ils ne sont pas tous du MIT. La page Étudier avec des amis utilise également le décodeur jsQR sous licence Apache-2.0, dont la licence indépendante est également prioritaire.",
              "Chaque composant peut être utilisé, modifié ou distribué sous sa propre licence. Les restrictions sur les logiciels propriétaires ne remplacent pas les autorisations conflictuelles des composants indépendants. Web-Push utilise MPL-2.0 ; une copie source de la version utilisée est fournie ici. La fourniture de la source des composants ne publie pas l'intégralité du projet Rain Alert en open source."
            ]
          },
          {
            "title": "6. Données, plateformes et marques",
            "paragraphs": [
              "Aucun droit supplémentaire n'est accordé sur le contenu des cours Rain Classroom, les informations des autres étudiants ou les API officielles de la plateforme. Vous conservez des droits légaux sur vos informations. Sparkle, Rain Alert et les marques et marques tierces conservent leurs protections respectives. Ne vous faites pas passer pour un opérateur officiel et ne revendiquez pas de partenariats, de certifications ou d’approbations inexistants."
            ]
          },
          {
            "title": "7. Déploiement et revente indépendants",
            "paragraphs": [
              "L'accès n'inclut pas la fourniture de la source back-end, l'administration du serveur, la revente de services ou l'autorisation de déploiement indépendant. Obtenez une autorisation distincte explicite si nécessaire. La présence de package.json, de listes de dépendances ou de code lisible dans un répertoire de développement ne constitue pas une subvention open source générale pour le projet d'origine."
            ]
          },
          {
            "title": "8. Durée, résiliation et mises à jour",
            "paragraphs": [
              "Cette licence s'applique lors d'une utilisation licite du client et du service fournis. Vous pouvez arrêter d'utiliser et supprimer l'entrée de l'écran d'accueil. Les violations substantielles peuvent entraîner des restrictions d'accès légales avec une possibilité raisonnable de corriger le cas échéant et de remédier. La résiliation n'éteint pas les droits légaux sur les données, les responsabilités accumulées ou les licences open source indépendantes.",
              "Les mises à jour restent soumises à cette licence à moins que des conditions différentes ne les accompagnent. Access ne garantit pas un fonctionnement perpétuel, la maintenance d'une version particulière ou une compatibilité indéfinie. Les modifications importantes suivent les conditions de service et la loi applicable."
            ]
          },
          {
            "title": "9. Garanties et responsabilité",
            "paragraphs": [
              "Dans la mesure permise par la loi, les logiciels et services sont fournis dans leur état disponible. Les garanties et la responsabilité sont déterminées par les conditions d'utilisation, les engagements réels et la loi applicable. La protection obligatoire des consommateurs, les obligations non exclusives en matière de protection des données, la responsabilité en cas de faute intentionnelle ou de négligence grave et d'autres droits obligatoires demeurent."
            ]
          },
          {
            "title": "10. Demandes de licence",
            "paragraphs": [
              "Pour les questions de confidentialité, les demandes de droits, l'assistance ou les rapports d'infraction, contactez le responsable 唐梓耀 / AdrianSparkle sur QQ au 2410710390. Le profil public du développeur est https://github.com/Tang1206cc. Identifiez le produit, la version et votre demande. N'incluez pas de mots de passe, de cookies de connexion, de codes de connexion, d'enregistrements complets ou d'informations personnelles inutiles dans votre message initial.",
              "Pour le déploiement en équipe, les licences sources, la coopération commerciale ou l'utilisation de la marque, expliquez l'utilisation prévue et contactez les titulaires des droits. Les droits de propriété sur les logiciels non expressément concédés sont réservés."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Avis de tiers et d'alerte de pluie",
        "intro": "L'inventaire a été vérifié par rapport au package-lock.json actuel et aux packages installés et comprend 110 packages de dépendances de production. Les conditions originales de copyright et de licence sont disponibles ci-dessous. Ils n'accordent pas de licence pour l'ensemble du produit dans les mêmes conditions.",
        "sections": [
          {
            "title": "1. Dépendances principales",
            "paragraphs": [
              "Express 5.3.0 (MIT) gère le routage HTTP ; qrcode 1.5.4 (MIT) génère des images QR de connexion ; hard-cookie 6.0.2 (BSD-3-Clause) gère les cookies de session officiels ; web-push 3.6.7 (MPL-2.0) gère les requêtes Web Push et le chiffrement. L'inventaire complet inclut les dépendances transitives par emplacement d'installation, plutôt que uniquement ces quatre packages. La page du navigateur Étudier avec des amis utilise également jsQR (Apache-2.0) pour décoder les codes QR sur l'appareil. Ce composant de navigateur est distinct du nombre de dépendances de production Node.js ci-dessus. Sa licence originale fournie avec le produit actuel est fournie séparément ; les conditions du logiciel propriétaire ne diminuent pas ses autorisations indépendantes."
            ]
          },
          {
            "title": "2. Textes originaux, source et portée",
            "paragraphs": [
              "L'avis téléchargeable conserve les textes LICENSE, LICENCE, COPYING et NOTICE trouvés dans les packages vérifiés. Le package http_ece 1.2.0 installé ne dispose pas d'un fichier de licence distinct ; son texte MIT est extrait de la balise v1.2.0 en amont correspondante avec la source enregistrée. Un ZIP contient séparément la source du composant Web-push, le README, le package.json et la licence pour examiner les fichiers couverts par MPL.",
              "Il s’agit de l’inventaire des dépendances de production du projet actuel. Cela n'implique pas que chaque dépendance du serveur soit transmise au navigateur ou remplace les notifications requises lors de la redistribution de Node.js, des systèmes d'exploitation ou de logiciels supplémentaires. Les textes en amont conservent leur langue d'origine et régissent les droits des composants."
            ]
          },
          {
            "title": "3. Relations avec la plateforme et traitement",
            "paragraphs": [
              "Rain Classroom, WeChat et l'infrastructure de notification du navigateur sont exploités par leurs titulaires de droits respectifs. Les rappels indépendants utilisant l'autorisation de compte et les interfaces pertinentes n'impliquent pas leur approbation. L'utilisation sur les appareils Apple, en tant qu'application Web sur l'écran d'accueil ou via Web Push ne signifie pas qu'Apple a créé, examiné ou garantit ce produit. Le traitement de la plateforme et les flux de données de ce service sont décrits dans les politiques respectives et dans la politique de confidentialité de ce produit."
            ]
          },
          {
            "title": "4. Rapports sur les droits et la sécurité",
            "paragraphs": [
              "Si une attribution, un inventaire, une fourniture de source ou un avis de droit d'auteur semble incomplet, indiquez aux responsables le package, la version et les preuves afin qu'ils puissent être vérifiés et corrigés. Ne publiez pas les informations d’identification de l’utilisateur lorsque vous signalez des problèmes de sécurité.",
              "Pour les questions de confidentialité, les demandes de droits, l'assistance ou les rapports d'infraction, contactez le responsable 唐梓耀 / AdrianSparkle sur QQ au 2410710390. Le profil public du développeur est https://github.com/Tang1206cc. Identifiez le produit, la version et votre demande. N'incluez pas de mots de passe, de cookies de connexion, de codes de connexion, d'enregistrements complets ou d'informations personnelles inutiles dans votre message initial."
            ]
          }
        ],
        "links": [
          {
            "label": "Licence jsQR Apache-2.0 originale · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "es": {
      "privacy": {
        "title": "Política de privacidad de alerta de lluvia",
        "intro": "Rain Alert se conecta a Rain Classroom a través de un servicio de recordatorio y envía notificaciones a sus dispositivos. Por lo tanto, procesa la autorización de la cuenta, la información del curso y los datos de notificación en un servidor. Revise este alcance antes de conectar o autorizar una cuenta.",
        "sections": [
          {
            "title": "1. Alcance y mantenedores",
            "paragraphs": [
              "雨水提醒 (Alerta de lluvia) es una aplicación web independiente de recordatorio de eventos en el aula bajo Sparkle, creada y mantenida por 唐梓耀 / AdrianSparkle y 丁铭 / EliasSparkle. Esta política cubre la instancia operada por Sparkle, el emparejamiento de dispositivos, la autorización QR de Rain Classroom, el monitoreo del aula y Web Push. Esta política también cubre las verificaciones del estado de ingreso al aula y las invitaciones de estudio con amigos que usted cree activamente.",
              "No es un producto oficial de Rain Classroom y no representa a escuelas, profesores, Rain Classroom, WeChat, Apple ni proveedores de navegadores. Sus servicios tienen reglas de privacidad independientes. Las instancias operadas de forma independiente requieren divulgaciones de sus propios operadores; Nuestros acuerdos de alojamiento y administración no se aplican automáticamente a ellos."
            ]
          },
          {
            "title": "2. Detalles de la cuenta, cursos y credenciales",
            "paragraphs": [
              "Solicitar un código QR de inicio de sesión oficial crea automáticamente una sesión en el dispositivo; no se requiere ningún código de conexión. Después de confirmar el inicio de sesión QR oficial, el servicio recibe la identificación de la cuenta, el nombre o apodo, la escuela y el número de estudiante devueltos por Rain Classroom, junto con los cursos inscritos, las identificaciones de las aulas, los nombres, los maestros y los identificadores de organizaciones relacionadas. Estos identifican la cuenta y muestran los cursos.",
              "El servidor también almacena cookies de inicio de sesión oficiales, autorización de sesión y tokens de aula necesarios para continuar realizando consultas después de cerrar la página. No solicitamos ni almacenamos su contraseña de Rain Classroom o WeChat. Las cookies y los tokens pueden representar una autoridad de inicio de sesión y requieren una protección especial. El escaneo no mantiene la autorización únicamente en su teléfono."
            ]
          },
          {
            "title": "3. Eventos en el aula e información sobre otros.",
            "paragraphs": [
              "El servicio consulta las clases en curso, los registros de aprendizaje necesarios y los modos de registro. Con los recordatorios en clase habilitados, recibe la transmisión oficial de eventos en el aula. Los campos de notificación almacenados incluyen nombres de cursos y aulas, tipos e identificadores de eventos, tiempos de detección o plataforma y resúmenes necesarios.",
              "Los eventos de selección aleatoria pueden contener nombres y números de estudiantes anunciados a la clase por el maestro. Estos pueden almacenarse en registros de eventos cifrados y mostrarse en cuerpos de notificación, incluida información sobre los compañeros de clase. Administre cuidadosamente las vistas previas de la pantalla de bloqueo y los dispositivos compartidos y no vuelva a publicar estos detalles. El servicio no los utiliza para perfilar a los estudiantes.",
              "La implementación actual no retiene el texto de las preguntas ni las respuestas como contenido de recordatorio persistente, no responde preguntas, no responde a listas o respuestas rápidas, ni recopila la ubicación del dispositivo. La asistencia ordinaria puede generar una solicitud de ingreso a través de recordatorios en clase habilitados. También puedes invitar activamente a un amigo a una clase confirmada como no inscrita; el amigo envía el texto decodificado de un código QR del aula coincidente y el servicio utiliza la sesión oficial del invitante para el flujo de entrada normal verificado. Estas solicitudes pueden cambiar los registros oficiales de entrada o asistencia; consulte los Términos de servicio."
            ]
          },
          {
            "title": "4. Dispositivos, notificaciones e información técnica",
            "paragraphs": [
              "Procesamos identificadores de dispositivos aleatorios, sesiones de conexión con hash, etiquetas de dispositivos, horas de creación y última apertura, vencimiento de 30 días, asociaciones de cuentas y cambios de recordatorio. La categoría de dispositivo inicial se deriva del agente de usuario del navegador. El cambio de nombre del dispositivo y la lista de dispositivos no están expuestos en la interfaz actual; los datos relacionados y los puntos finales de gestión permanecen.",
              "Cuando habilita las notificaciones, el navegador proporciona un punto final de inserción, una clave pública p256dh y un secreto de autenticación. El servidor almacena la suscripción para enviarla a ese dispositivo. Los intentos de entrega, el estado aceptado o fallido, las marcas de tiempo y los hashes de recibos aleatorios respaldan la resolución de problemas, la deduplicación y la confirmación del manejo del sistema. Un recibo no prueba que usted vio, escuchó o leyó una notificación.",
              "Proporcionar un servicio de red implica procesar direcciones IP, encabezados de solicitud, orígenes, tiempos de conexión e información de error. Las direcciones IP también admiten la limitación de la tasa de abuso en la memoria. La aplicación actual no tiene SDK de publicidad o análisis de comportamiento y no utiliza estos datos para el seguimiento entre sitios ni para vender información personal. Los proveedores de infraestructura y comunicaciones pueden procesar registros técnicos según sus propias reglas."
            ]
          },
          {
            "title": "5. Finalidades y límites de la autorización",
            "paragraphs": [
              "Estos datos admiten el emparejamiento, la identificación de su cuenta autorizada, la consulta y visualización de clases, el envío de eventos seleccionados, el mantenimiento de sesiones, la migración de orígenes, la protección de la seguridad, la resolución de problemas y la recuperación. Los datos de la cuenta y del curso no se utilizan para publicidad, elaboración de perfiles comerciales ni capacitación en inteligencia artificial. Sin autorización QR, los cursos no se pueden leer. Sin permiso de notificación, una página iniciada aún puede mostrar información pero no puede enviar notificaciones del sistema a ese dispositivo.",
              "Las credenciales confidenciales, la información sobre compañeros de clase y el procesamiento entre regiones requieren los avisos, los fundamentos legales y los procedimientos de consentimiento aplicables según la ley. Esta política explica los flujos reales. Verlo, solicitar un código QR de inicio de sesión o escanear un código QR no se considera como un cumplimiento de todos los consentimientos requeridos por separado. No autorice cuentas o información que no tenga derecho a proporcionar."
            ]
          },
          {
            "title": "6. Cookies, almacenamiento del navegador y permisos",
            "paragraphs": [
              "La conexión del dispositivo utiliza una cookie rain_session; el servidor almacena su hash. A través de HTTPS tiene atributos Secure, HttpOnly y SameSite=Strict y dura hasta 30 días con la conexión del dispositivo, restableciéndose al renovarse. Es una cookie de autenticación, no una cookie de publicidad. Cerrar sesión en Rain Classroom no borra automáticamente esta cookie de conexión de dispositivo.",
              "Los permisos del navegador rigen las notificaciones del dispositivo. Las páginas de coestudio y asistencia por invitación usan la cámara solo después de que usted comienza a escanear activamente y otorga acceso, y también puede aceptar una imagen. La decodificación QR ocurre en el navegador; sólo se envía texto decodificado, sin subir vídeos ni imágenes seleccionadas. El zoom de la cámara utiliza hardware o zoom digital según lo admita el dispositivo. No se solicitan micrófono, ubicación ni contactos."
            ]
          },
          {
            "title": "7. Destinatarios, hosting y transferencias internacionales",
            "paragraphs": [
              "La instancia actual operada por Sparkle se ejecuta en Tencent Cloud en Hong Kong, China. Si se encuentra en China continental u otra región, los detalles de la cuenta, las cookies, los cursos, los eventos y las suscripciones de dispositivos enviados a esta instancia se transfieren y almacenan en Hong Kong. La autorización y el monitoreo también se comunican con las API oficiales de Rain Classroom y los servicios de eventos en el aula. Cualquiera que tenga una invitación de estudio válida puede leer el nombre para mostrar del invitante, el nombre de la clase, el tiempo de vencimiento y el estado de procesamiento y enviar un código QR de entrada para la clase especificada. El texto decodificado pasa a través del servicio de Hong Kong a las interfaces oficiales de Rain Classroom. El amigo no recibe las cookies, la contraseña ni la lista completa de cursos del invitado. Comparta invitaciones solo con personas de confianza a las que se les permita ayudar.",
              "Dependiendo del navegador, Web Push utiliza infraestructura como Apple, Google, Mozilla o Microsoft, que pueden procesar datos en otros países o regiones. El servicio envía cargas útiles push cifradas e información de enrutamiento necesaria al punto final de la suscripción; Los navegadores y sistemas operativos los muestran. Las notificaciones de texto sin formato pueden aparecer en el dispositivo. El cifrado push no significa que el servidor de recordatorio no pueda leer los datos subyacentes.",
              "Actualmente, Cloudflare proporciona registro de dominio y DNS. Con la configuración existente, el tráfico de la aplicación no pasa a través de su proxy CDN; El procesamiento de DNS todavía implica información de consulta necesaria. No vendemos ni alquilamos información personal. Las divulgaciones requeridas por la ley, el manejo de seguridad necesario u otras transferencias que usted dirija expresamente deben limitarse al propósito relevante."
            ]
          },
          {
            "title": "8. Límites de cifrado y seguridad",
            "paragraphs": [
              "Los perfiles de cuentas, cachés de cursos, cookies de inicio de sesión, credenciales de aula, cargas útiles de eventos y suscripciones push se almacenan mediante AES-256-GCM. Los identificadores de cuentas y dispositivos, asociaciones, conmutadores, horas, estados y otros campos operativos no están todos cifrados individualmente. La base de datos y la clave maestra se administran en el mismo host; este no es un cifrado de extremo a extremo que resista el compromiso total del servidor.",
              "El servicio utiliza HTTPS, hash de sesión, comprobaciones de origen, limitación de velocidad y puntos finales de inserción restringidos. Es posible que los administradores autorizados tengan el acceso necesario para el descifrado. Para un incidente de seguridad de la información personal, tomaremos medidas correctivas y notificaremos a las personas y autoridades afectadas según lo exige la ley aplicable, explicando la información involucrada, el posible impacto, las medidas tomadas y las rutas de contacto. No se promete seguridad absoluta. Conecte solo dispositivos confiables y no comparta códigos de conexión, cookies, enlaces de migración ni notificaciones privadas."
            ]
          },
          {
            "title": "9. Retención en línea",
            "paragraphs": [
              "Las conexiones del dispositivo duran 30 días desde su creación o renovación manual; una sesión caducada ya no otorga acceso. La autorización oficial no válida suspende el seguimiento pertinente. Cuando el último dispositivo asociado válido cierra sesión, se revoca o caduca, el manejo del cierre de sesión o el mantenimiento periódico borra las cookies de inicio de sesión de la cuenta y las credenciales almacenadas del aula y pausa las conexiones.",
              "Las clases completadas y sus registros de entrega, los eventos históricos fuera de las clases activas y los registros de inserción simulados se limpian durante el mantenimiento periódico utilizando un umbral de 90 días en el código. Las clases activas y los registros relacionados protegidos pueden permanecer más tiempo. Las credenciales de migración son de un solo uso y caducan después de cinco minutos. Las invitaciones de estudio utilizan fichas aleatorias. Un índice hash en la memoria del proceso contiene el nombre para mostrar del invitador, la clase especificada, el vencimiento de aproximadamente 30 minutos, el recuento de intentos y el estado del resultado. Las invitaciones caducadas no se pueden utilizar y las invitaciones no sobreviven al reinicio del servicio. Las entradas de memoria caducadas se borran cuando se crean invitaciones posteriores, en lugar de un borrado garantizado a nivel de bytes al vencimiento. El texto QR decodificado se utiliza para la solicitud actual; el módulo de estudio no escribe fotogramas de cámara, imágenes seleccionadas ni texto QR en la base de datos. Los registros oficiales de entrada y los registros técnicos de infraestructura siguen sus respectivas reglas de manejo reales.",
              "La implementación actual no tiene un período de eliminación automática uniforme para todos los perfiles de cuentas, cachés de cursos, metadatos de dispositivos, campos de estado o copias de seguridad. Las reglas de conexión de 30 días y de historial de 90 días no borran una cuenta completa en esos momentos. Comuníquese con los mantenedores si deja de usar el servicio y desea eliminar los datos restantes. La ausencia de limpieza automatizada no constituye un permiso para la retención indefinida. Cuando los datos ya no sean necesarios o su eliminación sea requerida legalmente, actuaremos según la ley aplicable y verificaremos el alcance que requiere el manejo manual."
            ]
          },
          {
            "title": "10. Copias de seguridad, material de soporte y alcance de la limpieza.",
            "paragraphs": [
              "Las copias de seguridad de recuperación incluyen instantáneas de bases de datos, claves de servicio, claves de inserción y configuración de origen. Las copias de seguridad exportadas utilizan una clave de datos aleatoria AES-256-GCM envuelta con una clave pública RSA-OAEP separada; la clave privada de descifrado se mantiene por separado. Sin embargo, el almacenamiento en la nube también puede conservar instantáneas de SQLite protegidas por permisos de archivos y los privilegios de host pueden acceder a los datos operativos. Por lo tanto, la protección de la copia de seguridad depende del tipo de copia y de dónde se guarda.",
              "El proceso de copia de seguridad existente no tiene una caducidad automática uniforme; las exportaciones fuera de línea pueden permanecer. La eliminación de datos en línea no borra inmediatamente las copias de seguridad históricas. Una solicitud de eliminación puede preguntar sobre las copias de seguridad restantes, los motivos de retención y los acuerdos de disposición. Esto requiere verificación manual; No se promete ningún borrado instantáneo con un solo clic no implementado. Las conversaciones de soporte y los archivos adjuntos enviados se conservan según sea necesario para el asunto, no para publicidad o capacitación."
            ]
          },
          {
            "title": "11. Deshabilitar, cerrar sesión, revocar y solicitar eliminación",
            "paragraphs": [
              "Puede desactivar cada uno de los cinco tipos de recordatorios, revocar las notificaciones del sistema, cerrar sesión en Rain Classroom en este dispositivo o dejar de renovar una conexión. La interfaz actual no tiene lista de dispositivos ni controles de revocación; comuníquese con los mantenedores para revisar o revocar otros dispositivos. Un interruptor detiene solo los recordatorios correspondientes de ese dispositivo. El monitoreo puede continuar cuando otro dispositivo tenga recordatorios habilitados. Al cerrar sesión, se desvincula este dispositivo y se elimina su suscripción push del lado del servidor; Los permisos del navegador o el estado de la suscripción pueden requerir una administración del sistema separada.",
              "Liberar las credenciales de inicio de sesión después de que se retira el último dispositivo válido no borra todos los perfiles, el historial, otros metadatos del dispositivo ni las copias de seguridad. No hay ningún botón de eliminación automática de toda la cuenta en el producto actual. Contactar a los mantenedores para solicitar información, acceso, copia, corrección, eliminación, restricción, retiro de autorización o manejo de una objeción relacionada con la información de otra persona."
            ]
          },
          {
            "title": "12. Verificación, retención legal y recursos",
            "paragraphs": [
              "Verificamos la relación entre una solicitud y una cuenta en proporción al riesgo y solo solicitamos la información necesaria. No envíe cookies, contraseñas ni credenciales de migración. Las solicitudes deben tramitarse con prontitud según lo exige la ley. Si la separación técnica, las copias de seguridad, las disputas o las obligaciones legales de retención impiden la finalización inmediata, se deben explicar los motivos, el alcance y los arreglos posteriores. Cuando la ley exige que se detenga otro procesamiento, los datos retenidos se restringen al almacenamiento y la seguridad necesarios en lugar de regresar al monitoreo ordinario. La restauración requiere verificar las solicitudes de derechos manejadas anteriormente. Los derechos legales no se limitan a los botones de interfaz existentes. Puede presentar una reclamación ante el regulador competente."
            ]
          },
          {
            "title": "13. Menores y contextos de aprendizaje",
            "paragraphs": [
              "El servicio está destinado a usuarios capaces de autorizar legalmente sus cuentas y dispositivos. Los menores requieren la autorización apropiada de un tutor y deben seguir las reglas de la escuela. La conexión de la cuenta no está dirigida a niños menores de 14 años. Actualmente no existe ningún mecanismo de verificación de edad; comuníquese con los mantenedores si la información de los niños puede haber sido procesada sin la autorización requerida para que pueda ser investigada y manejada conforme a la ley.",
              "Los nombres, números de estudiantes y eventos en el aula se utilizan como recordatorios, no para juzgar la asistencia o el desempeño de otra persona. Los registros escolares y docentes a través de canales oficiales siguen teniendo autoridad."
            ]
          },
          {
            "title": "14. Cambios y versiones de idiomas",
            "paragraphs": [
              "Los cambios materiales en las categorías de datos, propósitos, alojamiento o destinatarios se describirán aquí y se fecharán. La actualización del texto o el uso continuo no pueden reemplazar el aviso adicional, el consentimiento por separado u otros procedimientos legalmente requeridos. Las versiones lingüísticas pretenden describir el mismo ámbito; Las diferencias no disminuyen sus derechos según la ley aplicable."
            ]
          },
          {
            "title": "15. Contacto",
            "paragraphs": [
              "Para preguntas sobre privacidad, solicitudes de derechos, soporte o informes de infracción, comuníquese con el mantenedor 唐梓耀 / AdrianSparkle en QQ al 2410710390. El perfil público del desarrollador es https://github.com/Tang1206cc. Identifique el producto, la versión y su solicitud. No incluya contraseñas, cookies de inicio de sesión, códigos de conexión, grabaciones completas ni información personal innecesaria en su mensaje inicial.",
              "Especifique “Alerta de lluvia / 雨水提醒” y el alcance de su solicitud. Para obtener información de otro estudiante seleccionado, proporcione una duración mínima del evento y el contexto del curso en lugar de publicar públicamente el nombre completo y el número de estudiante."
            ]
          },
          {
            "title": "15. Grupos de amigos, autorización individual y asistencia de estudio conjunto",
            "paragraphs": [
              "El grupo de amigos de coestudio siempre incluye a su propietario y admite hasta cinco amigos, aislados por cuenta de propietario y dispositivo actual. Cada amigo debe confirmar personalmente el inicio de sesión QR oficial. El servicio almacena el identificador de cuenta devuelto, el perfil de visualización y la sesión oficial para verificar la identidad, mostrar el estado de inicio de sesión y ayudar con la entrada después de una solicitud de escaneo activa. Las contraseñas de amigos no se solicitan ni se almacenan. Las credenciales oficiales son procesadas por el servidor, no únicamente en el teléfono de escaneo. Las sesiones de amigos se mantienen fuera de la tabla de cuenta de recordatorios del propietario y no habilitan automáticamente recordatorios en el aula para esos amigos.",
              "Los perfiles y credenciales de amigos se cifran en una base de datos de amigos separada. Las asociaciones de propietario/dispositivo, los estados, las marcas de tiempo y otros campos operativos no equivalen a un cifrado de base de datos completa. El titular actual del dispositivo puede ver los nombres para mostrar de los amigos, los avatares disponibles y el estado de inicio de sesión e iniciar la asistencia. Los amigos deben comprender este alcance y autorizar solo dispositivos permitidos y confiables. El servicio puede recuperar avatares de visualización de fuentes oficiales permitidas, cuyas reglas rigen esas solicitudes.",
              "Ayuda a tus amigos a estudiar juntos y utiliza la cámara o una imagen solo cuando tú lo inicias. El navegador decodifica el QR localmente. El servicio recibe su texto y utiliza la sesión de cada cuenta agrupada por separado para verificar el aula, enviar solicitudes respaldadas y verificar los resultados oficiales. Esto puede cambiar los registros oficiales de entrada; no contesta ejercicios ni responde a pases de lista. El vídeo y las imágenes seleccionadas no se cargan; Para esa operación se utiliza texto decodificado. Los trabajos y los resultados se guardan temporalmente en la memoria del proceso, no como registros permanentes o prueba de asistencia física.",
              "Eliminar a un amigo elimina el registro coincidente de ese grupo e invalida los trabajos antiguos sin enviar una solicitud de cierre de sesión oficial para el amigo. Cerrar sesión, cambiar de cuenta de propietario o revocar el dispositivo invalida las credenciales de amigo para ese propietario/grupo de dispositivos. Los dispositivos caducados se manipulan durante el mantenimiento. Las relaciones de amistad y los perfiles permanecen como registros inválidos, sin un plazo uniforme de eliminación automática; volver a autorizar al mismo amigo o solicitar la eliminación. Los grupos de otros dispositivos válidos no se ven afectados. Un inicio de sesión oficial del propietario vencido no invalida automáticamente las credenciales de amigo mientras la sesión del dispositivo siga siendo válida, por lo que los amigos válidos aún pueden recibir asistencia. La base de datos de amigos separada se incluye en las copias de seguridad cifradas existentes; La eliminación de registros en línea no borra simultáneamente las copias de seguridad históricas."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Términos de servicio de alerta de lluvia",
        "intro": "Rain Alert proporciona notificaciones complementarias de eventos en el aula. Preste especial atención a la autorización de la cuenta, el efecto real de las solicitudes de check-in ordinarias y los límites de la entrega push.",
        "sections": [
          {
            "title": "1. Alcance, proveedor y aceptación",
            "paragraphs": [
              "Estos términos se aplican a la aplicación web Rain Alert y a la instancia de recordatorio mantenida bajo Sparkle por 唐梓耀 / AdrianSparkle y 丁铭 / EliasSparkle. Léalos antes de conectarse, autorizar una cuenta o habilitar recordatorios. No realice esas acciones si no está de acuerdo. El uso continuo por sí solo no establece el consentimiento requerido por separado ni la autorización del tutor."
            ]
          },
          {
            "title": "2. Herramienta independiente y canales oficiales.",
            "paragraphs": [
              "Rain Alert no es un producto oficial de Rain Classroom, una escuela o un maestro. Esta página no afirma ninguna asociación, agencia o respaldo por parte de Rain Classroom, WeChat, Apple o proveedores de navegadores. Las escuelas, los maestros y los registros oficiales de Rain Classroom determinan los horarios, las tareas, la asistencia y las calificaciones.",
              "El producto complementa a los clientes oficiales, los anuncios en el aula, la verificación manual y sus propias responsabilidades de asistencia. Actualmente, no proporciona recordatorios completos de todas las tareas, exámenes o anuncios escolares previos o posteriores a la clase."
            ]
          },
          {
            "title": "3. Elegibilidad y conexiones confiables",
            "paragraphs": [
              "Debe estar autorizado para usar la cuenta y el dispositivo y seguir las reglas de la escuela, los maestros y la plataforma. No conecte cuentas no autorizadas, tome prestadas sesiones. Los menores de edad requieren autorización de un tutor según lo exige la ley; Los niños menores de 14 años no deben conectar cuentas.",
              "Confirme solo los inicios de sesión QR oficiales que haya iniciado. No proporcione contraseñas a mantenedores, formularios web o extraños. La página de inicio actual no necesita ningún código de conexión. Solicitar un código QR crea una sesión en el dispositivo; Se puede acceder a los datos de la cuenta asociada de Rain Classroom solo después de confirmar el inicio de sesión."
            ]
          },
          {
            "title": "4. Tratamiento autorizado",
            "paragraphs": [
              "Después de la confirmación del QR, el servidor debe almacenar y utilizar las credenciales de inicio de sesión oficiales para consultar los detalles de la cuenta, los cursos, las clases en curso y los eventos necesarios en el aula y notificar a los dispositivos registrados. La Política de privacidad explica los datos, los destinatarios, el alojamiento en Hong Kong y la retención. Al crear activamente una invitación de estudio, también le indica al servicio que use su sesión oficial para procesar el código QR de entrada coincidente de un amigo para esa clase específica. Las invitaciones duran unos 30 minutos. Verifique el destinatario y el nombre para mostrar y la información de la clase que se muestran antes de compartir. Esto no le otorga al amigo su contraseña ni cookies ni acceso a otras clases.",
              "Comprenda ese alcance antes de habilitar los recordatorios. La autorización no es un permiso para leer material no relacionado, publicar sus cursos, realizar marketing o entrenar modelos de IA."
            ]
          },
          {
            "title": "5. Recordatorios en clase y efectos del check-in",
            "paragraphs": [
              "Habilitar recordatorios de ejercicio, selección aleatoria, respuesta rápida o disponibilidad de comentarios permite que el servicio obtenga la autorización del aula de acuerdo con las reglas de la plataforma. Cuando la plataforma identifique explícitamente un check-in ordinario, el servicio podrá enviar automáticamente una solicitud de ingreso al aula. Esa solicitud puede crear registros de ingreso o check-in en la plataforma oficial. El servicio no es completamente de sólo lectura.",
              "Puede invitar activamente a un amigo a escanear un código QR de entrada al aula coincidente, limitado al flujo QR normal verificado. La ubicación, los flujos desconocidos y otras restricciones no admitidas aún requieren el cliente oficial. El servicio no falsifica la ubicación, no descifra códigos QR, no responde ejercicios, no responde a pases de lista ni envía respuestas rápidas. El ingreso automático y el estudio con amigos deben seguir las reglas de la escuela, los maestros y la plataforma. El estado de entrada de la cuenta no debe representarse como presencia física ni utilizarse para falsificar la asistencia."
            ]
          },
          {
            "title": "6. Cambios, pruebas y contenido de notificaciones.",
            "paragraphs": [
              "Se controlan cinco tipos de recordatorios por dispositivo. Los permisos del sistema y los interruptores de recordatorio individuales son configuraciones diferentes. La prueba push envía cinco mensajes simulados claramente etiquetados incluso si los interruptores correspondientes están apagados, sin cambiarlos. La prueba exitosa no verifica la fuente del evento en vivo del aula.",
              "Las notificaciones de selección aleatoria pueden mostrar nombres y números de estudiantes anunciados a la clase. Otras notificaciones muestran resúmenes de cursos y eventos. Administre vistas previas y dispositivos compartidos y no reenvíe públicamente la información de sus compañeros. Si la plataforma no proporciona una hora de inicio confiable, la hora de detección mostrada no es la hora de inicio de la clase."
            ]
          },
          {
            "title": "7. Oportunidad y confiabilidad",
            "paragraphs": [
              "El sondeo de aproximadamente cinco segundos en condiciones normales funciona junto con las conexiones entre el aula y los eventos. Esta no es una fecha límite de entrega ni una garantía de nivel de servicio. Los cambios de plataforma, las redes, el mantenimiento, el ahorro de energía, los permisos, los proveedores de inserción, las políticas del navegador, el inicio de sesión no válido o el emparejamiento caducado pueden retrasar, omitir, repetir o detener los mensajes.",
              "\"Aceptado por servicio push\" confirma la aceptación de una solicitud. Un recibo del dispositivo confirma el manejo del sistema, no que una persona haya leído o escuchado la notificación. Continúe revisando los canales oficiales; No confíe únicamente en esta herramienta para asistencia, exámenes o fechas límite importantes."
            ]
          },
          {
            "title": "8. Migración de dispositivos, caducidad y origen",
            "paragraphs": [
              "Las conexiones de dispositivos normalmente duran 30 días. Aparece un mensaje de renovación durante los últimos siete días. La denominación de dispositivos, la lista de dispositivos y los controles de revocación no están disponibles en la interfaz actual; Póngase en contacto con los mantenedores para investigar y revocar conexiones desconocidas. La autorización oficial caducada o las sesiones del dispositivo afectan el seguimiento y los recordatorios.",
              "Los puntos de entrada heredados principales y conservados son orígenes distintos del navegador. Una credencial de cinco minutos de un solo uso migra la cuenta, la configuración y el historial necesario; El permiso de notificación debe concederse nuevamente sobre el nuevo origen. Un enlace de migración confiere acceso temporal y no debe compartirse. La desactivación de la suscripción anterior depende del registro exitoso de la nueva."
            ]
          },
          {
            "title": "9. Uso aceptable",
            "paragraphs": [
              "No eluda los controles de la escuela o de la plataforma, no falsifique la asistencia, robe ni comparta credenciales, recopile datos de personas no relacionadas, acose o infrinja derechos, abuse de la entrega push, ataque interfaces ni revende acceso no autorizado. No utilice cursos, nombres, números de estudiantes o actividades de aprendizaje para perfiles publicitarios o exposición pública.",
              "El uso ordinario aún debe cumplir con las reglas de la plataforma y de la escuela; el producto no puede obtener el permiso de terceros para usted. Si encuentra un dispositivo desconocido o una entrega incorrecta, desactive los recordatorios relevantes y comuníquese con los encargados de mantenimiento para investigar y revocar el dispositivo."
            ]
          },
          {
            "title": "10. Disponibilidad, tarifas, soporte y cambios",
            "paragraphs": [
              "El servicio se encuentra actualmente en pruebas públicas. No se promete disponibilidad permanente, acceso gratuito permanente, tiempos de respuesta fijos ni capacidad específica. Cualquier cargo, suscripción o nueva condición material debe divulgarse claramente antes de que entre en vigencia y seguir los procedimientos requeridos. Estos términos por sí solos no crean obligación de pago.",
              "El mantenimiento, la seguridad, la capacidad y los cambios ascendentes pueden requerir ajustes o suspensión. Cuando sea razonablemente previsible, se deben proporcionar explicaciones y orientaciones apropiadas para la migración, exportación o interrupción. Los riesgos urgentes pueden requerir primero la acción necesaria y una explicación cuando corresponda, sin eliminar deberes legales."
            ]
          },
          {
            "title": "11. Cierre de sesión, suspensión y terminación",
            "paragraphs": [
              "Puede desactivar los recordatorios, cerrar sesión, pedir a los encargados de mantenimiento que revoquen los dispositivos o dejar de utilizar el servicio. Al desvincular el último dispositivo válido se liberan las credenciales de inicio de sesión. La Política de Privacidad explica por separado los perfiles, el historial y las copias de seguridad restantes; La interrupción no elimina automáticamente una cuenta completa.",
              "Un claro abuso, infracción o riesgo de seguridad pueden justificar la restricción de las conexiones relevantes en la medida necesaria, con motivos y una oportunidad para comentarios o correcciones cuando corresponda. Los deberes aplicables de confidencialidad, propiedad intelectual y protección de datos persisten después de la terminación."
            ]
          },
          {
            "title": "12. Derechos, garantías y responsabilidad",
            "paragraphs": [
              "Usted conserva los derechos sobre su información. Los materiales del curso pertenecen a sus titulares de derechos. El tratamiento no otorga al servicio derechos de uso irrestricto ni de sublicencia. Las licencias de productos y los términos de los componentes aparecen en la licencia de software y en los avisos de terceros.",
              "En la medida en que lo permita la ley, el servicio se brinda en su condición de disponibilidad sin la promesa de operación continua y libre de errores o entrega oportuna de cada mensaje. La responsabilidad depende de los hechos, la culpa y la ley aplicable. La responsabilidad por mala conducta intencional, negligencia grave, lesiones personales, procesamiento ilegal de información personal y otros asuntos no excluibles persiste, al igual que los remedios obligatorios para el consumidor."
            ]
          },
          {
            "title": "13. Disputas, interpretación y revisiones",
            "paragraphs": [
              "Comuníquese con los mantenedores si tiene preguntas o disputas. Usted sigue siendo libre de buscar reparación ante un tribunal o regulador con jurisdicción legal, sin arbitraje obligatorio, tribunal extranjero designado ni renuncia a derechos legales. Una disposición inaplicable no invalida las disposiciones que tienen eficacia independiente.",
              "Las revisiones del material tendrán fecha y seguirán los procedimientos de notificación o consentimiento requeridos. Las versiones lingüísticas pretenden ser equivalentes; Las diferencias de traducción no excluyen la protección legal local."
            ]
          },
          {
            "title": "14. Contacto",
            "paragraphs": [
              "Para preguntas sobre privacidad, solicitudes de derechos, soporte o informes de infracción, comuníquese con el mantenedor 唐梓耀 / AdrianSparkle en QQ al 2410710390. El perfil público del desarrollador es https://github.com/Tang1206cc. Identifique el producto, la versión y su solicitud. No incluya contraseñas, cookies de inicio de sesión, códigos de conexión, grabaciones completas ni información personal innecesaria en su mensaje inicial."
            ]
          },
          {
            "title": "15. Límites de asistencia y autorización del grupo de amigos",
            "paragraphs": [
              "Cada amigo debe confirmar personalmente el inicio de sesión QR oficial y comprender que el servicio de recordatorio almacena las credenciales y que el titular actual de la cuenta/dispositivo puede iniciar la asistencia. No retenga, transfiera ni utilice la sesión de otra persona sin permiso ni eluda las reglas de la escuela, los maestros o la plataforma oficial. Incluir al propietario y hasta cinco amigos no establece ningún derecho a acceder o registrarse en ningún salón de clases.",
              "Los enlaces de invitación y los grupos de amigos son flujos separados: el asistente de un enlace no necesita iniciar sesión, mientras que cada amigo agrupado debe autorizarse individualmente. La asistencia requiere escanear activamente un código QR del aula correspondiente, y los resultados se verifican por separado por cuenta. Los registros de presentación, espera e ingreso no prueban la asistencia física. Los flujos restringidos o no admitidos aún requieren el cliente oficial; No se promete disponibilidad para cada escuela, aula o cuenta. Consulte la política de privacidad para cerrar sesión, eliminar, caducar, realizar copias de seguridad y datos restantes."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Licencia de servicio y software de alerta de lluvia",
        "intro": "Esta licencia explica el uso permitido del código y la interfaz originales de la aplicación web. El acceso no otorga redistribución de fuentes, implementación independiente ni derechos de marca Sparkle. Los componentes de código abierto conservan sus propias licencias.",
        "sections": [
          {
            "title": "1. Titulares de derechos y alcance",
            "paragraphs": [
              "Los derechos del código, la interfaz, los gráficos y la documentación originales de Rain Alert permanecen en manos de sus respectivos titulares de derechos. Sparkle es mantenido por 唐梓耀 / AdrianSparkle y 丁铭 / EliasSparkle. Esta licencia cubre el acceso al cliente y al servicio de la aplicación web proporcionados, sin cambiar el contenido de terceros ni los permisos de código abierto."
            ]
          },
          {
            "title": "2. Cliente limitado y permiso de acceso",
            "paragraphs": [
              "Sujeto a los Términos de servicio, usted recibe un derecho limitado, no exclusivo, intransferible y no sublicenciable para acceder al servicio realmente disponible, cargar y ejecutar el código de cliente proporcionado con sus páginas y utilizar la instalación ordinaria del navegador, como agregar a la pantalla de inicio en dispositivos que posee o que está autorizado a usar. Puede conectar cuentas que tiene derecho a autorizar a través de funciones compatibles.",
              "Utilice los flujos admitidos para conectar su propia cuenta o la cuenta de un amigo después de que ese amigo autorice personalmente el inicio de sesión QR oficial para el grupo. Esto no otorga derechos de cuenta, curso o plataforma más allá de la autorización original."
            ]
          },
          {
            "title": "3. Derechos no otorgados en el código original",
            "paragraphs": [
              "La visibilidad o capacidad de descarga de los scripts del navegador no coloca el código original bajo una licencia de código abierto. Excepto que la ley lo permita o se autorice por separado por escrito, no redistribuya el producto, no modifique ni opere un servicio independiente, no lo empaquete para su venta, alquiler, sublicencia, elimine avisos de derechos ni ofrezca interfaces de backend como un servicio comercial no autorizado. Estas reservas de software no restringen el uso legal de los datos de su propia cuenta."
            ]
          },
          {
            "title": "4. Excepciones legales e investigación",
            "paragraphs": [
              "Esta licencia no restringe las copias de seguridad, la interoperabilidad, la investigación de seguridad u otros derechos que la ley aplicable no permite excluir en un contrato. La investigación no debe implicar acceso ilegal a credenciales, violaciones de privacidad o interrupción del servicio en vivo. Informar vulnerabilidades con detalles de reproducción mínimos necesarios, sin publicar claves válidas ni datos de usuario."
            ]
          },
          {
            "title": "5. Prioridad de las licencias de componentes",
            "paragraphs": [
              "El servicio utiliza Express, qrcode, hard-cookie, web-push y sus dependencias. Las versiones exactas, las declaraciones de derechos de autor y los textos se encuentran en Avisos de terceros. Incluyen MIT, ISC, BSD-3-Clause, Apache-2.0 y MPL-2.0; No todos son MIT. La página Estudiar con amigos también utiliza el decodificador jsQR con licencia Apache-2.0, cuya licencia independiente también tiene prioridad.",
              "Cada componente puede usarse, modificarse o distribuirse bajo su propia licencia. Las restricciones sobre el software propietario no anulan los permisos de componentes independientes en conflicto. web-push utiliza MPL-2.0; Aquí se proporciona una copia fuente de la versión utilizada. El suministro de la fuente del componente no libera todo el proyecto Rain Alert como código abierto."
            ]
          },
          {
            "title": "6. Datos, plataformas y marcas comerciales",
            "paragraphs": [
              "No se otorga ningún derecho adicional sobre el contenido del curso Rain Classroom, la información de otros estudiantes o las API de la plataforma oficial. Usted conserva derechos legales sobre su información. Sparkle, Rain Alert y las marcas y marcas de terceros conservan sus respectivas protecciones. No se haga pasar por un operador oficial ni afirme asociaciones, certificaciones o respaldos inexistentes."
            ]
          },
          {
            "title": "7. Implementación y reventa independientes",
            "paragraphs": [
              "El acceso no incluye la entrega de la fuente backend, la administración del servidor, la reventa del servicio ni el permiso de implementación independiente. Obtenga una autorización explícita por separado si es necesario. La presencia de package.json, listas de dependencias o código legible en un directorio de desarrollo no es una concesión general de código abierto para el proyecto original."
            ]
          },
          {
            "title": "8. Duración, extinción y actualizaciones",
            "paragraphs": [
              "Esta licencia se aplica durante el uso legal del cliente y servicio proporcionados. Puede dejar de usarlo y eliminar la entrada de la pantalla de inicio. Las violaciones materiales pueden resultar en restricciones de acceso legales con una oportunidad razonable de corregir cuando sea apropiado y remediable. La rescisión no extingue los derechos legales sobre datos, las responsabilidades acumuladas ni las licencias independientes de código abierto.",
              "Las actualizaciones permanecen sujetas a esta licencia a menos que las acompañen términos diferentes. El acceso no garantiza el funcionamiento perpetuo, el mantenimiento de una versión determinada ni la compatibilidad indefinida. Los cambios materiales siguen los Términos de servicio y la ley aplicable."
            ]
          },
          {
            "title": "9. Garantías y responsabilidad",
            "paragraphs": [
              "En la medida permitida por la ley, el software y el servicio se proporcionan en su condición de disponibilidad. Las garantías y la responsabilidad están determinadas por los Términos de servicio, los compromisos reales y la ley aplicable. Siguen existiendo la obligación de proteger al consumidor, los deberes no excluibles de protección de datos, la responsabilidad por dolo o negligencia grave y otros derechos obligatorios."
            ]
          },
          {
            "title": "10. Consultas sobre licencias",
            "paragraphs": [
              "Para preguntas sobre privacidad, solicitudes de derechos, soporte o informes de infracción, comuníquese con el mantenedor 唐梓耀 / AdrianSparkle en QQ al 2410710390. El perfil público del desarrollador es https://github.com/Tang1206cc. Identifique el producto, la versión y su solicitud. No incluya contraseñas, cookies de inicio de sesión, códigos de conexión, grabaciones completas ni información personal innecesaria en su mensaje inicial.",
              "Para la implementación en equipo, la concesión de licencias de origen, la cooperación comercial o el uso de la marca, explique el uso previsto y comuníquese con los titulares de los derechos. Se reservan los derechos de software propietario que no se concedan expresamente."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Alerta de lluvia Avisos de terceros y de código abierto",
        "intro": "El inventario se comparó con el package-lock.json actual y los paquetes instalados e incluye 110 paquetes de dependencia de producción. Las condiciones de licencia y derechos de autor originales están disponibles a continuación. No licencian todo el producto en los mismos términos.",
        "sections": [
          {
            "title": "1. Dependencias principales",
            "paragraphs": [
              "Express 5.3.0 (MIT) maneja el enrutamiento HTTP; qrcode 1.5.4 (MIT) genera imágenes QR de inicio de sesión; hard-cookie 6.0.2 (BSD-3-Clause) gestiona las cookies de sesión oficiales; web-push 3.6.7 (MPL-2.0) maneja las solicitudes Web Push y el cifrado. El inventario completo incluye dependencias transitivas por ubicación de instalación, en lugar de solo estos cuatro paquetes. La página del navegador Estudiar con amigos utiliza además jsQR (Apache-2.0) para decodificar códigos QR en el dispositivo. Este componente del navegador es independiente del recuento de dependencias de producción de Node.js anterior. Su licencia original suministrada con el producto actual se proporciona por separado; Los términos del software propietario no disminuyen sus permisos independientes."
            ]
          },
          {
            "title": "2. Textos originales, fuente y alcance",
            "paragraphs": [
              "El aviso descargable conserva los textos de LICENSE, LICENCE, COPYING y NOTICE que se encuentran en los paquetes marcados. El paquete http_ece 1.2.0 instalado carece de un archivo de licencia independiente; su texto MIT se toma de la etiqueta v1.2.0 ascendente coincidente con la fuente registrada. Un ZIP contiene por separado el origen del componente web-push, README, package.json y la licencia para examinar archivos cubiertos por MPL.",
              "Este es el inventario de dependencia de producción del proyecto actual. No implica que todas las dependencias del servidor se entreguen al navegador ni que reemplacen los avisos necesarios al redistribuir Node.js, sistemas operativos o software adicional. Los textos originales conservan su idioma original y rigen los derechos de los componentes."
            ]
          },
          {
            "title": "3. Relaciones y procesamiento de plataformas",
            "paragraphs": [
              "Rain Classroom, WeChat y la infraestructura de notificación del navegador son operados por sus respectivos titulares de derechos. Los recordatorios independientes que utilizan la autorización de la cuenta y las interfaces relevantes no implican su respaldo. El uso en dispositivos Apple, como aplicación web en la pantalla de inicio o mediante Web Push no significa que Apple haya creado, revisado o garantizado este producto. El procesamiento de la plataforma y los flujos de datos de este servicio se describen en las políticas respectivas y en la Política de Privacidad de este producto."
            ]
          },
          {
            "title": "4. Informes de derechos y seguridad",
            "paragraphs": [
              "Si una atribución, inventario, provisión de fuente o aviso de derechos de autor parece incompleto, informe a los encargados del mantenimiento el paquete, la versión y la evidencia para que puedan verificarlo y corregirlo. No publique las credenciales de los usuarios cuando informe problemas de seguridad.",
              "Para preguntas sobre privacidad, solicitudes de derechos, soporte o informes de infracción, comuníquese con el mantenedor 唐梓耀 / AdrianSparkle en QQ al 2410710390. El perfil público del desarrollador es https://github.com/Tang1206cc. Identifique el producto, la versión y su solicitud. No incluya contraseñas, cookies de inicio de sesión, códigos de conexión, grabaciones completas ni información personal innecesaria en su mensaje inicial."
            ]
          }
        ],
        "links": [
          {
            "label": "Licencia jsQR Apache-2.0 original · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "ko": {
      "privacy": {
        "title": "비 경보 개인 정보 보호 정책",
        "intro": "Rain Alert는 알림 서비스를 통해 Rain Classroom에 연결하고 장치에 알림을 보냅니다. 따라서 계정 인증, 강좌 정보, 알림 데이터를 서버에서 처리합니다. 계정을 연결하거나 승인하기 전에 이 범위를 검토하세요.",
        "sections": [
          {
            "title": "1. 범위 및 관리자",
            "paragraphs": [
              "雨水提醒(Rain Alert)는 唐梓耀/AdrianSparkle 및 丁铭/EliasSparkle이 만들고 유지 관리하는 Sparkle의 독립적인 교실 행사 알림 웹 앱입니다. 이 정책은 Sparkle 운영 인스턴스, 장치 페어링, Rain Classroom QR 인증, 강의실 모니터링 및 웹 푸시를 다룹니다. 이 정책은 또한 교실 입장 상태 확인 및 귀하가 적극적으로 생성한 친구와 함께 공부하기 초대에도 적용됩니다.",
              "Rain Classroom의 공식 제품이 아니며 학교, 교사, Rain Classroom, WeChat, Apple 또는 브라우저 공급업체를 대표하지 않습니다. 해당 서비스에는 별도의 개인 정보 보호 규칙이 있습니다. 독립적으로 운영되는 인스턴스에는 자체 운영자의 공개가 필요합니다. 당사의 호스팅 및 관리 계약은 자동으로 적용되지 않습니다."
            ]
          },
          {
            "title": "2. 계정 세부정보, 강좌 및 자격증명",
            "paragraphs": [
              "공식 로그인 QR 코드를 요청하면 자동으로 장치 세션이 생성됩니다. 연결 코드가 필요하지 않습니다. 공식 QR 로그인을 확인한 후 Rain Classroom에서 반환된 계정 ID, 이름 또는 닉네임, 학교, 학생 번호와 함께 등록된 강좌, 강의실 ID, 이름, 교사 및 관련 기관 식별자가 서비스에 수신됩니다. 이는 계정을 식별하고 강좌를 표시합니다.",
              "또한 서버는 공식 로그인 쿠키, 세션 승인 및 페이지를 닫은 후에도 계속 쿼리하는 데 필요한 강의실 토큰을 저장합니다. 우리는 귀하의 Rain Classroom 또는 WeChat 비밀번호를 요청하거나 저장하지 않습니다. 쿠키와 토큰은 로그인 권한을 나타낼 수 있으며 특별한 보호가 필요합니다. 스캔은 휴대폰에만 인증을 유지하지 않습니다."
            ]
          },
          {
            "title": "3. 강의실 행사 및 타인의 정보",
            "paragraphs": [
              "현재 진행 중인 수업, 필요한 학습 로그, 체크인 모드를 조회하는 서비스입니다. 수업 중 알림을 활성화하면 공식 교실 이벤트 스트림을 수신합니다. 저장된 알림 필드에는 강좌 및 강의실 이름, 이벤트 유형 및 식별자, 플랫폼 또는 감지 시간, 필요한 요약이 포함됩니다.",
              "무작위 선택 이벤트에는 교사가 학급에 발표한 이름과 학생 번호가 포함될 수 있습니다. 이는 암호화된 이벤트 기록에 저장될 수 있으며 급우에 대한 정보를 포함하여 알림 본문에 표시될 수 있습니다. 잠금 화면 미리보기와 공유 장치를 신중하게 관리하고 이러한 세부정보를 다시 게시하지 마세요. 이 서비스는 학생들의 프로필을 작성하는 데 이를 사용하지 않습니다.",
              "현재 구현에서는 질문 텍스트 또는 답변을 지속적인 미리 알림 콘텐츠로 유지하거나, 질문에 답변하거나, 점호 또는 빠른 답변에 응답하거나, 장치 위치를 수집하지 않습니다. 일반 출석은 활성화된 수업 중 알림을 통해 입장 요청을 유발할 수 있습니다. 참가하지 않은 것으로 확인된 수업에 적극적으로 친구를 초대할 수도 있습니다. 친구는 일치하는 교실 QR 코드의 디코딩된 텍스트를 제출하고 서비스는 확인된 정상적인 입장 흐름을 위해 초대자의 공식 세션을 사용합니다. 이러한 요청은 공식 입장 또는 출석 기록을 변경할 수 있습니다. 서비스 약관을 참조하세요."
            ]
          },
          {
            "title": "4. 장치, 알림 및 기술 정보",
            "paragraphs": [
              "우리는 무작위 장치 식별자, 해시된 연결 세션, 장치 라벨, 생성 및 마지막으로 열린 시간, 30일 만료, 계정 연결 및 알림 전환을 처리합니다. 초기 장치 범주는 브라우저 User-Agent에서 파생됩니다. 장치 이름 변경 및 장치 목록은 현재 인터페이스에 노출되지 않습니다. 관련 데이터 및 관리 엔드포인트는 그대로 유지됩니다.",
              "알림을 활성화하면 브라우저는 푸시 엔드포인트, p256dh 공개 키 및 인증 비밀을 제공합니다. 서버는 해당 장치로 보낼 구독을 저장합니다. 배달 시도, 수락 또는 실패 상태, 타임스탬프, 무작위 수신 해시는 문제 해결, 중복 제거 및 시스템 처리 확인을 지원합니다. 영수증은 귀하가 알림을 보거나 듣거나 읽었음을 증명하지 않습니다.",
              "네트워크 서비스 제공에는 IP 주소, 요청 헤더, 출처, 연결 시간 및 오류 정보 처리가 포함됩니다. IP 주소는 메모리 내 남용률 제한도 지원합니다. 현재 앱에는 광고 또는 행동 분석 SDK가 없으며 이러한 데이터를 사이트 간 추적 또는 개인 정보 판매에 사용하지 않습니다. 인프라 및 통신 제공업체는 자체 규칙에 따라 기술 로그를 처리할 수 있습니다."
            ]
          },
          {
            "title": "5. 목적 및 승인 범위",
            "paragraphs": [
              "이러한 데이터는 페어링, 인증된 계정 식별, 클래스 쿼리 및 표시, 선택한 이벤트 전송, 세션 유지 관리, 원본 마이그레이션, 보안 보호, 문제 해결 및 복구를 지원합니다. 계정 및 코스 데이터는 광고, 상업적 프로파일링 또는 AI 교육에 사용되지 않습니다. QR 인증이 없으면 강좌를 읽을 수 없습니다. 알림 권한이 없으면 로그인한 페이지에 계속 정보가 표시될 수 있지만 해당 장치에 시스템 알림을 보낼 수는 없습니다.",
              "민감한 자격 증명, 동급생에 대한 정보 및 지역 간 처리에는 법률에 따라 적용되는 통지, 합법적 근거 및 동의 절차가 필요합니다. 이 정책은 실제 흐름을 설명합니다. 이를 열람하거나 로그인 QR 코드를 요청하거나 QR 코드를 스캔하는 것은 별도로 요구되는 모든 동의를 충족하는 것으로 간주되지 않습니다. 귀하가 제공할 권리가 없는 계정이나 정보를 승인하지 마십시오."
            ]
          },
          {
            "title": "6. 쿠키, 브라우저 저장 및 권한",
            "paragraphs": [
              "장치 연결은 rain_session 쿠키를 사용합니다. 서버는 해시를 저장합니다. HTTPS를 통해 Secure, HttpOnly 및 SameSite=Strict 속성이 있으며 장치 연결 시 최대 30일 동안 지속되며 갱신 시 재설정됩니다. 광고 쿠키가 아닌 인증 쿠키입니다. Rain Classroom에서 로그아웃해도 이 장치 연결 쿠키가 자동으로 지워지지 않습니다.",
              "브라우저 권한은 장치 알림에 적용됩니다. 공동 학습 및 초대 지원 페이지는 귀하가 적극적으로 스캔을 시작하고 액세스 권한을 부여한 후에만 카메라를 사용하며 이미지를 수락할 수도 있습니다. QR 디코딩은 브라우저에서 발생합니다. 비디오나 선택한 이미지를 업로드하지 않고 디코딩된 텍스트만 제출됩니다. 카메라 줌은 장치가 지원하는 대로 하드웨어 또는 디지털 줌을 사용합니다. 마이크, 위치, 연락처는 요청되지 않습니다."
            ]
          },
          {
            "title": "7. 수취인, 호스팅 및 해외 송금",
            "paragraphs": [
              "현재 Sparkle이 운영하는 인스턴스는 중국 홍콩의 Tencent Cloud에서 실행됩니다. 귀하가 중국 본토 또는 다른 지역에 있는 경우 이 인스턴스로 전송된 계정 세부 정보, 쿠키, 강좌, 이벤트 및 장치 구독은 홍콩으로 전송되어 저장됩니다. 승인 및 모니터링은 공식 Rain Classroom API 및 강의실 이벤트 서비스와도 통신합니다. 유효한 학습 초대장을 보유한 사람은 누구나 초대자의 표시 이름, 수업 이름, 만료 시간 및 처리 상태를 읽고 지정된 수업에 대한 참가 QR 코드를 제출할 수 있습니다. 디코딩된 텍스트는 홍콩 서비스를 통해 공식 Rain Classroom 인터페이스로 전달됩니다. 친구는 초대자의 쿠키, 비밀번호, 전체 강좌 목록을 받지 않습니다. 도움이 허용된 신뢰할 수 있는 사람들에게만 초대장을 공유하세요.",
              "브라우저에 따라 웹 푸시는 Apple, Google, Mozilla 또는 Microsoft와 같은 인프라를 사용하며 다른 국가 또는 지역에서 데이터를 처리할 수 있습니다. 서비스는 암호화된 푸시 페이로드와 필요한 라우팅 정보를 구독 엔드포인트로 보냅니다. 브라우저와 운영 체제가 이를 표시합니다. 일반 텍스트 알림이 장치에 나타날 수 있습니다. 푸시 암호화는 미리 알림 서버가 기본 데이터를 읽을 수 없다는 의미는 아닙니다.",
              "Cloudflare는 현재 도메인 등록과 DNS를 제공합니다. 기존 구성에서는 애플리케이션 트래픽이 CDN 프록시를 통과하지 않습니다. DNS 처리에는 여전히 필요한 쿼리 정보가 포함됩니다. 우리는 개인정보를 판매하거나 대여하지 않습니다. 법률에 따라 요구되는 공개, 필요한 보안 처리 또는 귀하가 명시적으로 지시하는 기타 전송은 관련 목적으로 제한되어야 합니다."
            ]
          },
          {
            "title": "8. 암호화 및 보안 제한",
            "paragraphs": [
              "계정 프로필, 코스 캐시, 로그인 쿠키, 강의실 자격 증명, 이벤트 페이로드 및 푸시 구독은 AES-256-GCM을 사용하여 저장됩니다. 계정 및 장치 식별자, 연결, 스위치, 시간, 상태 및 기타 작업 필드가 모두 개별적으로 암호화되지는 않습니다. 데이터베이스와 마스터 키는 동일한 호스트에서 관리됩니다. 이는 전체 서버 손상을 견딜 수 있는 종단 간 암호화가 아닙니다.",
              "이 서비스는 HTTPS, 세션 해싱, 원본 확인, 속도 제한 및 제한된 푸시 엔드포인트를 사용합니다. 승인된 관리자는 암호 해독에 필요한 액세스 권한을 가질 수 있습니다. 개인정보 보안사고가 발생한 경우, 당사는 관련 법률에서 요구하는 바에 따라 시정 조치를 취하고 피해를 입은 개인 및 당국에 관련 정보, 예상 영향, 취해진 조치 및 연락 경로를 설명합니다. 절대적인 보안은 보장되지 않습니다. 신뢰할 수 있는 장치만 연결하고 연결 코드, 쿠키, 마이그레이션 링크 또는 비공개 알림을 공유하지 마세요."
            ]
          },
          {
            "title": "9. 온라인 보관",
            "paragraphs": [
              "장치 연결은 생성 또는 수동 갱신일로부터 30일 동안 지속됩니다. 만료된 세션은 더 이상 액세스 권한을 부여하지 않습니다. 잘못된 공식 승인으로 인해 관련 모니터링이 일시 중지됩니다. 마지막으로 유효한 연결된 장치가 로그아웃, 취소 또는 만료되면 로그아웃 처리 또는 정기 유지 관리를 통해 계정의 로그인 쿠키와 저장된 강의실 자격 증명이 지워지고 연결이 일시 중지됩니다.",
              "완료된 수업 및 해당 전달 기록, 활성 수업 외부의 기록 이벤트, 시뮬레이션된 푸시 기록은 코드에서 90일 임계값을 사용하여 정기적인 유지 관리 중에 정리됩니다. 활성 수업 및 보호되는 관련 기록은 더 오래 유지될 수 있습니다. 마이그레이션 자격 증명은 일회용이며 5분 후에 만료됩니다. 연구 초대는 무작위 토큰을 사용합니다. 프로세스 메모리의 해시 인덱스에는 초대자의 표시 이름, 지정된 클래스, 약 30분 만료, 시도 횟수 및 결과 상태가 포함됩니다. 만료된 초대는 사용할 수 없으며 서비스를 다시 시작해도 초대는 유지되지 않습니다. 만료 시 바이트 수준 삭제가 보장되는 대신, 나중에 초대가 생성될 때 만료된 메모리 항목이 지워집니다. 디코딩된 QR 텍스트는 현재 요청에 사용됩니다. 학습 모듈은 카메라 프레임, 선택한 이미지 또는 QR 텍스트를 데이터베이스에 기록하지 않습니다. 공식 진입 기록 및 인프라 기술 로그는 각각의 실제 처리 규칙을 따릅니다.",
              "현재 구현에는 모든 계정 프로필, 코스 캐시, 장치 메타데이터, 상태 필드 또는 백업에 대해 균일한 자동 삭제 기간이 없습니다. 30일 연결 및 90일 기록 규칙은 해당 시점에 전체 계정을 삭제하지 않습니다. 서비스 사용을 중단하고 남은 데이터를 제거하려면 관리자에게 문의하세요. 자동 정리가 없다고 해서 무기한 보존이 허용되는 것은 아닙니다. 데이터가 더 이상 필요하지 않거나 법적으로 삭제가 필요한 경우, 당사는 관련 법률에 따라 조치하고 수동 처리가 필요한 범위를 확인합니다."
            ]
          },
          {
            "title": "10. 백업, 지원 자료 및 정리 범위",
            "paragraphs": [
              "복구 백업에는 데이터베이스 스냅샷, 서비스 키, 푸시 키 및 원본 구성이 포함됩니다. 내보낸 백업은 별도의 RSA-OAEP 공개 키로 래핑된 임의 AES-256-GCM 데이터 키를 사용합니다. 복호화 개인 키는 별도로 보관됩니다. 그러나 클라우드 스토리지는 파일 권한으로 보호되는 SQLite 스냅샷을 보관할 수도 있으며, 호스트 권한은 운영 데이터에 액세스할 수 있습니다. 따라서 백업 보호는 복사본 유형과 보관 위치에 따라 달라집니다.",
              "기존 백업 프로세스에는 균일한 자동 만료가 없습니다. 오프라인 내보내기는 그대로 유지될 수 있습니다. 온라인 데이터를 제거해도 기록 백업이 즉시 지워지지는 않습니다. 삭제 요청에서는 남은 백업, 보존 이유 및 폐기 방법에 대해 물을 수 있습니다. 이를 위해서는 수동 확인이 필요합니다. 구현되지 않은 즉각적인 원클릭 삭제는 약속되지 않습니다. 지원 대화 및 제출된 첨부 파일은 광고나 교육이 아닌 문제에 필요한 경우에만 보관됩니다."
            ]
          },
          {
            "title": "11. 비활성화, 로그아웃, 취소 및 삭제 요청",
            "paragraphs": [
              "5가지 알림 유형을 각각 비활성화하거나, 시스템 알림을 취소하거나, 이 장치의 Rain Classroom에서 로그아웃하거나, 연결 갱신을 중지할 수 있습니다. 현재 인터페이스에는 장치 목록이나 해지 제어가 없습니다. 다른 장치를 검토하거나 취소하려면 관리자에게 문의하세요. 스위치는 해당 장치의 해당 알림만 중지합니다. 다른 장치에 미리 알림이 활성화되어 있으면 모니터링이 계속될 수 있습니다. 로그아웃하면 이 장치의 연결이 해제되고 서버 측 푸시 구독이 제거됩니다. 브라우저 권한이나 구독 상태는 별도의 시스템 관리가 필요할 수 있습니다.",
              "마지막으로 유효한 장치가 떠난 후 로그인 자격 증명을 해제해도 모든 프로필, 기록, 기타 장치 메타데이터 또는 백업이 삭제되지는 않습니다. 현재 제품에는 계정 전체 자동 삭제 버튼이 없습니다. 정보, 열람, 복사, 정정, 삭제, 제한, 승인 철회 또는 타인의 정보에 관한 이의 처리를 요청하려면 관리자에게 연락하세요."
            ]
          },
          {
            "title": "12. 확인, 법적보존 및 구제조치",
            "paragraphs": [
              "위험도에 비례하여 요청과 계정의 관계를 확인하고 필요한 정보만 요청합니다. 쿠키, 비밀번호 또는 마이그레이션 자격 증명을 보내지 마세요. 요청은 법에서 요구하는 대로 즉시 처리되어야 합니다. 기술적 분리, 백업, 분쟁 또는 법적 보존 의무로 인해 즉시 완료가 불가능한 경우, 이유, 범위 및 후속 조치를 설명해야 합니다. 법에 따라 다른 처리를 중지해야 하는 경우, 보관된 데이터는 일반적인 모니터링으로 반환되지 않고 필요한 저장 및 보안으로 제한됩니다. 복원하려면 이전에 처리된 권한 요청을 확인해야 합니다. 법적 권리는 기존 인터페이스 버튼에만 국한되지 않습니다. 관할 규제 기관에 불만을 제기할 수 있습니다."
            ]
          },
          {
            "title": "13. 미성년자와 학습 상황",
            "paragraphs": [
              "이 서비스는 자신의 계정과 장치를 합법적으로 승인할 수 있는 사용자를 위한 것입니다. 미성년자는 적절한 보호자의 승인이 필요하며 학교 규칙을 따라야 합니다. 14세 미만의 어린이에게는 계정 연결이 제공되지 않습니다. 현재 연령 확인 메커니즘은 없습니다. 아동의 정보가 법에 따라 조사 및 처리될 수 있도록 필요한 승인 없이 처리되었을 수 있는 경우 관리자에게 문의하세요.",
              "이름, 학생 번호, 교실 행사는 알림을 위해 사용되며 다른 사람의 출석이나 성과를 판단하는 데 사용되지 않습니다. 공식 채널을 통한 학교 및 교사 기록은 권위를 유지합니다."
            ]
          },
          {
            "title": "14. 변경 사항 및 언어 버전",
            "paragraphs": [
              "데이터 범주, 목적, 호스팅 또는 수신자에 대한 중요한 변경 사항은 여기에 설명되어 있으며 날짜도 기재되어 있습니다. 내용을 업데이트하거나 계속 사용하는 행위는 법적으로 요구되는 추가 고지, 별도의 동의 또는 기타 절차를 대체할 수 없습니다. 언어 버전은 동일한 범위를 설명하는 것을 목표로 합니다. 차이가 있어도 해당 법률에 따른 귀하의 권리는 감소되지 않습니다."
            ]
          },
          {
            "title": "15. 연락처",
            "paragraphs": [
              "개인 정보 보호에 대한 질문, 권리 요청, 지원 또는 침해 신고는 QQ의 관리자 唐梓耀 / AdrianSparkle(2410710390)에게 문의하세요. 개발자의 공개 프로필은 https://github.com/Tang1206cc입니다. 제품, 버전 및 요청 사항을 확인하십시오. 초기 메시지에 비밀번호, 로그인 쿠키, 연결 코드, 전체 녹음 또는 불필요한 개인 정보를 포함하지 마십시오.",
              "“Rain Alert / 雨水提醒” 및 요청 범위를 지정하십시오. 선정된 다른 학생의 정보에 대해서는 이름과 학번을 공개적으로 게시하기보다는 최소한의 이벤트 시간과 과정 맥락을 제공하세요."
            ]
          },
          {
            "title": "15. 친구 풀, 개별 승인 및 공동 학습 지원",
            "paragraphs": [
              "공동 학습 친구 풀에는 항상 소유자가 포함되며 소유자 계정과 현재 장치별로 격리된 최대 5명의 친구를 지원합니다. 각 친구는 공식 QR 로그인을 직접 확인해야 합니다. 이 서비스는 반환된 계정 식별자, 디스플레이 프로필 및 공식 세션을 저장하여 신원을 확인하고, 로그인 상태를 표시하고, 활성 스캔 요청에 따른 입력을 지원합니다. 친구 비밀번호는 요청되거나 저장되지 않습니다. 공식 자격 증명은 스캔 전화에서만 처리되는 것이 아니라 서버에서 처리됩니다. 친구 세션은 소유자의 미리 알림 계정 테이블 외부에 유지되며 해당 친구에 대한 교실 미리 알림을 자동으로 활성화하지 않습니다.",
              "친구 프로필과 자격 증명은 별도의 친구 데이터베이스에서 암호화됩니다. 소유자/장치 연결, 상태, 타임스탬프 및 기타 작업 필드는 전체 데이터베이스 암호화에 해당하지 않습니다. 현재 장치 소유자는 친구 표시 이름, 사용 가능한 아바타, 로그인 상태를 보고 지원을 시작할 수 있습니다. 친구는 이 범위를 이해하고 신뢰할 수 있고 허용된 장치만 승인해야 합니다. 서비스는 허용된 공식 소스로부터 디스플레이 아바타를 검색할 수 있으며, 해당 소스의 규칙이 해당 요청에 적용됩니다.",
              "친구 공동 학습을 시작할 때만 카메라나 이미지를 사용하도록 도와주세요. 브라우저는 QR을 로컬로 디코딩합니다. 이 서비스는 텍스트를 수신하고 풀링된 각 계정의 세션을 별도로 사용하여 강의실을 확인하고, 지원되는 요청을 제출하고, 공식 결과를 확인합니다. 이로 인해 공식 입국 기록이 변경될 수 있습니다. 훈련에 응답하지도 않고 점호에도 응답하지 않습니다. 비디오 및 선택한 이미지는 업로드되지 않습니다. 디코딩된 텍스트가 해당 작업에 사용됩니다. 작업과 결과는 영구 기록이나 실제 참석 증거가 아닌 프로세스 메모리에 일시적으로 보관됩니다.",
              "친구를 삭제하면 해당 풀의 매칭 기록이 삭제되고 해당 친구에게 공식 로그아웃 요청을 보내지 않고 이전 작업이 무효화됩니다. 로그아웃하거나 소유자 계정을 전환하거나 장치를 취소하면 해당 소유자/장치 풀에 대한 친구 자격 증명이 무효화됩니다. 만료된 장치는 유지 관리 중에 처리됩니다. 친구 관계 및 프로필은 일정한 자동 삭제 기한 없이 유효하지 않은 기록으로 남아 있습니다. 동일한 친구를 다시 인증하거나 삭제를 요청하세요. 다른 유효한 장치의 풀은 영향을 받지 않습니다. 만료된 소유자 공식 로그인은 장치 세션이 유효한 동안 친구 자격 증명을 자동으로 무효화하지 않으므로 유효한 친구는 계속 도움을 받을 수 있습니다. 별도의 친구 데이터베이스는 기존 암호화된 백업에 포함되어 있습니다. 온라인 기록을 삭제해도 기록 백업이 동시에 지워지지는 않습니다."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "비 경보 서비스 약관",
        "intro": "Rain Alert는 보충적인 교실 행사 알림을 제공합니다. 계정 승인, 일반적인 체크인 요청의 실제 효과, 푸시 전달 제한에 특히 주의하세요.",
        "sections": [
          {
            "title": "1. 범위, 제공자 및 승인",
            "paragraphs": [
              "본 약관은 唐梓耀 / AdrianSparkle 및 丁铭 / EliasSparkle이 Sparkle에서 유지 관리하는 Rain Alert 웹 앱 및 알림 인스턴스에 적용됩니다. 연결하거나, 계정을 승인하거나, 알림을 활성화하기 전에 읽어보세요. 동의하지 않는 경우에는 그러한 조치를 취하지 마십시오. 계속 사용하는 것만으로는 별도로 필요한 동의나 보호자 승인이 성립되지 않습니다."
            ]
          },
          {
            "title": "2. 독립적인 도구 및 공식 채널",
            "paragraphs": [
              "Rain Alert는 Rain Classroom, 학교 또는 교사의 공식 제품이 아닙니다. 이 페이지는 Rain Classroom, WeChat, Apple 또는 브라우저 공급업체의 파트너십, 대행사 또는 보증을 주장하지 않습니다. 학교, 교사 및 공식 Rain 교실 기록에 따라 일정, 과제, 출석 및 성적이 결정됩니다.",
              "이 제품은 공식 클라이언트, 강의실 공지 사항, 수동 확인 및 귀하의 출석 책임을 보완합니다. 현재 모든 수업 전 또는 수업 후 과제, 시험 또는 학교 공지 사항에 대한 포괄적인 알림을 제공하지 않습니다."
            ]
          },
          {
            "title": "3. 자격 및 신뢰할 수 있는 연결",
            "paragraphs": [
              "계정과 장치를 사용하고 학교, 교사 및 플랫폼 규칙을 따르려면 승인을 받아야 합니다. 승인되지 않은 계정을 연결하거나 세션을 빌려오지 마십시오. 미성년자는 법률에 따라 보호자의 승인이 필요합니다. 14세 미만의 어린이는 계정을 연결해서는 안 됩니다.",
              "귀하가 시작한 공식 QR 로그인만 확인하세요. 관리자, 웹 양식 또는 낯선 사람에게 비밀번호를 제공하지 마십시오. 현재 홈 페이지에는 연결 코드가 필요하지 않습니다. QR 코드를 요청하면 장치 세션이 생성됩니다. 연결된 Rain Classroom 계정의 데이터는 로그인을 확인한 후에만 액세스할 수 있습니다."
            ]
          },
          {
            "title": "4. 승인된 처리",
            "paragraphs": [
              "QR 확인 후 서버는 공식 로그인 자격 증명을 저장하고 사용하여 계정 세부 정보, 강좌, 진행 중인 수업 및 필요한 강의실 이벤트를 조회하고 등록된 장치에 알림을 보내야 합니다. 개인정보 보호정책은 데이터, 수신자, 홍콩 호스팅 및 보유에 대해 설명합니다. 학습 초대를 적극적으로 생성함으로써 귀하는 공식 세션을 사용하여 해당 특정 수업에 대해 친구의 일치하는 입장 QR 코드를 처리하도록 서비스에 지시할 수도 있습니다. 초대는 약 30분 동안 지속됩니다. 공유하기 전에 표시되는 수신자와 표시 이름 및 수업 정보를 확인하세요. 이렇게 하면 친구에게 귀하의 비밀번호나 쿠키 또는 다른 클래스에 대한 액세스 권한이 부여되지 않습니다.",
              "알림을 활성화하기 전에 해당 범위를 이해하세요. 승인은 관련 없는 자료를 읽거나 강좌를 게시하거나 마케팅을 수행하거나 AI 모델을 교육하는 권한이 아닙니다."
            ]
          },
          {
            "title": "5. 수업 중 알림 및 체크인 효과",
            "paragraphs": [
              "연습, 무작위 선택, 빠른 답변 또는 댓글 사용 알림을 활성화하면 서비스가 플랫폼 규칙에 따라 강의실 승인을 얻을 수 있습니다. 플랫폼이 일반 체크인을 명시적으로 식별하는 경우 서비스는 자동으로 강의실 입장 요청을 보낼 수 있습니다. 해당 요청은 공식 플랫폼에 입장 또는 체크인 기록을 생성할 수 있습니다. 이 서비스는 완전히 읽기 전용이 아닙니다.",
              "확인된 일반 QR 흐름으로 제한되는 일치하는 교실 입장 QR 코드를 스캔하도록 친구를 적극적으로 초대할 수 있습니다. 위치, 알 수 없는 흐름 및 기타 지원되지 않는 제한 사항에는 여전히 공식 클라이언트가 필요합니다. 이 서비스는 위치를 스푸핑하거나, QR 코드를 해독하거나, 연습에 응답하거나, 점호에 응답하거나, 빠른 답변을 제출하지 않습니다. 자동 입력 및 친구와의 학습은 학교, 교사 및 플랫폼 규칙을 따라야 합니다. 계정 입력 상태는 실제 존재로 표현되거나 출석을 위조하는 데 사용되어서는 안 됩니다."
            ]
          },
          {
            "title": "6. 스위치, 테스트 및 알림 내용",
            "paragraphs": [
              "5가지 알림 유형이 장치별로 제어됩니다. 시스템 권한과 개별 알림 스위치는 다른 설정입니다. 푸시 테스트는 해당 스위치가 꺼져 있어도 변경하지 않고 명확하게 라벨이 지정된 5개의 시뮬레이션 메시지를 보냅니다. 성공적인 테스트는 실시간 강의실 이벤트 소스를 확인하지 않습니다.",
              "무작위 선택 알림에는 학급에 공지된 이름과 학생 번호가 표시될 수 있습니다. 다른 알림에는 코스 및 이벤트 요약이 표시됩니다. 미리보기 및 공유 장치를 관리하고 반 친구의 정보를 공개적으로 전달하지 마세요. 플랫폼에서 신뢰할 수 있는 시작 시간을 제공하지 않는 경우 표시되는 감지 시간은 수업 시작 시간이 아닙니다."
            ]
          },
          {
            "title": "7. 타이밍과 신뢰성",
            "paragraphs": [
              "정상 조건에서 약 5초 간격으로 폴링하는 것은 강의실-이벤트 연결과 함께 작동합니다. 이는 배송 기한이나 서비스 수준 보장이 아닙니다. 플랫폼 변경, 네트워크, 유지 관리, 절전, 권한, 푸시 공급업체, 브라우저 정책, 잘못된 로그인 또는 만료된 페어링으로 인해 메시지가 지연, 생략, 반복 또는 중지될 수 있습니다.",
              "\"푸시 서비스에 의해 승인됨\"은 요청 승인을 확인합니다. 장치 영수증은 사람이 알림을 읽거나 들었다는 것이 아니라 시스템 처리를 확인합니다. 계속해서 공식 채널을 확인하세요. 출석, 시험 또는 중요한 마감일을 위해 이 도구에만 의존하지 마십시오."
            ]
          },
          {
            "title": "8. 장치, 만료 및 원본 마이그레이션",
            "paragraphs": [
              "장치 연결은 일반적으로 30일 동안 지속됩니다. 마지막 7일 동안 갱신 메시지가 나타납니다. 현재 인터페이스에서는 장치 이름 지정, 장치 목록 및 해지 제어를 사용할 수 없습니다. 익숙하지 않은 연결을 조사하고 취소하려면 관리자에게 문의하세요. 만료된 공식 승인 또는 장치 세션은 모니터링 및 알림에 영향을 미칩니다.",
              "기본 진입점과 유지된 레거시 진입점은 별개의 브라우저 출처입니다. 일회용 5분 자격 증명은 계정, 설정 및 필요한 기록을 마이그레이션합니다. 새 원본에 알림 권한을 다시 부여해야 합니다. 마이그레이션 링크는 임시 액세스를 제공하므로 공유하면 안 됩니다. 이전 구독의 비활성화는 새 구독의 성공적인 등록에 달려 있습니다."
            ]
          },
          {
            "title": "9. 허용되는 사용",
            "paragraphs": [
              "학교 또는 플랫폼 통제를 우회하거나, 출석을 위조하거나, 자격 증명을 훔치거나 공유하거나, 관련 없는 사람의 데이터를 수집하거나, 권리를 괴롭히거나 침해하거나, 푸시 전달을 남용하거나, 인터페이스를 공격하거나, 무단 액세스를 재판매하지 마십시오. 프로필 광고나 대중 노출을 위해 강좌, 이름, 학생 번호, 학습 활동을 사용하지 마세요.",
              "일반적인 사용은 여전히 플랫폼과 학교 규칙을 충족해야 합니다. 제품은 귀하를 대신하여 제3자 허가를 얻을 수 없습니다. 익숙하지 않은 장치나 잘못된 배송을 발견한 경우 관련 알림을 비활성화하고 유지 관리 담당자에게 연락하여 장치를 조사하고 취소하십시오."
            ]
          },
          {
            "title": "10. 가용성, 수수료, 지원 및 변경",
            "paragraphs": [
              "해당 서비스는 현재 공개 테스트 중입니다. 영구 가용성, 영구 무료 액세스, 고정 응답 시간 및 특정 용량은 약속되지 않습니다. 모든 요금, 구독 또는 중요한 새로운 조건은 발효되기 전에 명확하게 공개되어야 하며 필수 절차를 따라야 합니다. 본 약관만으로는 지불 의무가 발생하지 않습니다.",
              "유지 관리, 보안, 용량 및 업스트림 변경 사항은 조정 또는 일시 중단이 필요할 수 있습니다. 합리적으로 예측 가능한 경우 마이그레이션, 수출 또는 중단에 대한 적절한 설명과 지침이 제공되어야 합니다. 긴급한 위험에는 법적 의무를 제거하지 않고 먼저 필요한 조치를 취하고 적절한 경우 설명이 필요할 수 있습니다."
            ]
          },
          {
            "title": "11. 로그아웃, 이용정지, 해지",
            "paragraphs": [
              "귀하는 알림을 비활성화하거나, 로그아웃하거나, 관리자에게 장치 취소를 요청하거나, 서비스 사용을 중단할 수 있습니다. 마지막으로 유효한 장치의 연결을 해제하면 로그인 자격 증명이 해제됩니다. 개인정보 보호정책에서는 나머지 프로필, 기록, 백업에 대해 별도로 설명합니다. 중단하더라도 전체 계정이 자동으로 삭제되지는 않습니다.",
              "명백한 남용, 침해 또는 보안 위험은 적절한 경우 피드백 또는 수정을 위한 이유 및 기회와 함께 관련 연결을 필요한 범위까지 제한하는 것을 정당화할 수 있습니다. 해당 기밀 유지, 지적 재산권 및 데이터 보호 의무는 종료 후에도 유효합니다."
            ]
          },
          {
            "title": "12. 권리, 보증 및 책임",
            "paragraphs": [
              "귀하는 귀하의 정보에 대한 권리를 보유합니다. 강좌 자료는 해당 권리 보유자의 소유입니다. 처리는 서비스에 무제한 사용 또는 재라이센스 권한을 부여하지 않습니다. 제품 라이센스 및 구성 요소 조건은 소프트웨어 라이센스 및 제3자 고지 사항에 표시됩니다.",
              "법률이 허용하는 한도 내에서 서비스는 오류 없음, 지속적인 운영 또는 모든 메시지의 적시 전달을 약속하지 않고 이용 가능한 상태로 제공됩니다. 책임은 사실, 과실, 관련 법률에 따라 달라집니다. 고의적 위법 행위, 중과실, 신체적 상해, 불법적인 개인 정보 처리 및 기타 배제할 수 없는 문제에 대한 책임은 필수 소비자 구제 조치와 마찬가지로 그대로 유지됩니다."
            ]
          },
          {
            "title": "13. 분쟁, 해석 및 개정",
            "paragraphs": [
              "질문이나 분쟁이 있는 경우 관리자에게 문의하세요. 귀하는 강제 중재, 지정된 외국 법원 또는 법적 권리 포기 없이 합법적인 관할권을 가진 법원이나 규제 기관에 자유롭게 구제를 요청할 수 있습니다. 시행 불가능한 조항은 독립적으로 유효한 조항을 무효화하지 않습니다.",
              "자료 개정은 날짜가 명시되며 필수 통지 또는 동의 절차를 따릅니다. 언어 버전은 동등한 것을 목표로 합니다. 번역 차이는 현지 법적 보호를 배제하지 않습니다."
            ]
          },
          {
            "title": "14. 연락처",
            "paragraphs": [
              "개인 정보 보호에 대한 질문, 권리 요청, 지원 또는 침해 신고는 QQ의 관리자 唐梓耀 / AdrianSparkle(2410710390)에게 문의하세요. 개발자의 공개 프로필은 https://github.com/Tang1206cc입니다. 제품, 버전 및 요청 사항을 확인하십시오. 초기 메시지에 비밀번호, 로그인 쿠키, 연결 코드, 전체 녹음 또는 불필요한 개인 정보를 포함하지 마십시오."
            ]
          },
          {
            "title": "15. 친구 풀 승인 및 지원 범위",
            "paragraphs": [
              "각 친구는 공식 QR 로그인을 직접 확인하고 알림 서비스가 자격 증명을 저장하며 현재 계정/장치 소유자가 지원을 시작할 수 있다는 점을 이해해야 합니다. 허가 없이 다른 사람의 세션을 보유, 양도 또는 사용하거나 학교, 교사 또는 공식 플랫폼 규칙을 우회하지 마십시오. 주인과 최대 5명의 친구를 포함하면 어떤 교실에도 접근하거나 체크인할 수 있는 자격이 없습니다.",
              "초대 링크와 친구 풀은 별도의 흐름입니다. 링크의 도우미는 로그인할 필요가 없지만 풀링된 모든 친구는 개별적으로 승인해야 합니다. 지원을 받으려면 해당 강의실 QR 코드를 적극적으로 스캔해야 하며, 결과는 계정별로 별도로 확인됩니다. 제출, 대기, 입장 기록은 실제 출석을 증명하지 않습니다. 제한되거나 지원되지 않는 흐름에는 여전히 공식 클라이언트가 필요합니다. 모든 학교, 강의실 또는 계정에 대한 가용성이 보장되지는 않습니다. 로그아웃, 삭제, 만료, 백업, 남은 데이터에 대해서는 개인정보취급방침을 확인하세요."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "강우 경보 소프트웨어 및 서비스 라이센스",
        "intro": "본 라이선스는 웹 앱의 원본 코드와 인터페이스에 허용된 사용을 설명합니다. Access는 소스 재배포, 독립적 배포 또는 Sparkle 브랜딩 권한을 부여하지 않습니다. 오픈 소스 구성 요소는 자체 라이선스를 유지합니다.",
        "sections": [
          {
            "title": "1. 권리자와 범위",
            "paragraphs": [
              "Rain Alert의 원본 코드, 인터페이스, 그래픽 및 문서에 대한 권리는 해당 권리 보유자에게 있습니다. Sparkle은 唐梓耀 / AdrianSparkle 및 丁铭 / EliasSparkle에서 관리합니다. 이 라이선스에는 제3자 콘텐츠나 오픈 소스 권한을 변경하지 않고 제공된 Web App 클라이언트 및 서비스에 대한 액세스가 포함됩니다."
            ]
          },
          {
            "title": "2. 제한된 클라이언트 및 접근 권한",
            "paragraphs": [
              "서비스 약관에 따라 귀하는 실제로 제공되는 서비스에 액세스하고 해당 페이지와 함께 제공되는 클라이언트 코드를 로드 및 실행하며 귀하가 소유하거나 사용 권한이 있는 장치의 홈 화면에 추가하는 등 일반적인 브라우저 설치를 사용할 수 있는 제한적이고 비독점적이며 양도 불가능하고 2차 라이선스 부여가 불가능한 권리를 받습니다. 지원되는 기능을 통해 승인할 수 있는 계정을 연결할 수 있습니다.",
              "친구가 풀에 대한 공식 QR 로그인을 개인적으로 승인한 후 지원되는 흐름을 사용하여 자신의 계정이나 친구의 계정을 연결하세요. 이는 원래 승인 이상의 계정, 강좌 또는 플랫폼 권한을 부여하지 않습니다."
            ]
          },
          {
            "title": "3. 원본 코드에서는 부여되지 않은 권리",
            "paragraphs": [
              "브라우저 스크립트의 가시성 또는 다운로드 가능성은 원본 코드를 오픈 소스 라이센스에 포함시키지 않습니다. 법률이 허용하거나 서면으로 별도로 허가한 경우를 제외하고, 제품을 재배포하거나, 독립적인 서비스를 수정 및 운영하거나, 판매용으로 패키지하거나, 임대하거나, 재라이센스를 부여하거나, 권리 표시를 제거하거나, 백엔드 인터페이스를 승인되지 않은 상업 서비스로 제공하지 마십시오. 이러한 소프트웨어 예약은 귀하 자신의 계정 데이터의 합법적인 사용을 제한하지 않습니다."
            ]
          },
          {
            "title": "4. 법적 예외 및 연구",
            "paragraphs": [
              "본 라이센스는 백업, 상호 운용성, 보안 연구 또는 해당 법률에 따라 계약에서 배제를 허용하지 않는 기타 권리를 제한하지 않습니다. 연구에는 불법적인 자격 증명 접근, 개인 정보 침해 또는 라이브 서비스 중단이 포함되어서는 안 됩니다. 유효한 키나 사용자 데이터를 게시하지 않고 필요한 최소한의 재현 세부 정보로 취약점을 보고합니다."
            ]
          },
          {
            "title": "5. 구성요소 라이선스의 우선순위",
            "paragraphs": [
              "이 서비스는 Express, qrcode, tough-cookie, 웹 푸시 및 해당 종속성을 사용합니다. 정확한 버전, 저작권 설명 및 텍스트는 제3자 고지 사항에 나와 있습니다. 여기에는 MIT, ISC, BSD-3-Clause, Apache-2.0 및 MPL-2.0이 포함됩니다. 그들은 모두 MIT가 아닙니다. 친구와 함께 공부하기 페이지에서는 Apache-2.0 라이센스 jsQR 디코더도 사용하며, 이 디코더의 독립 라이센스도 마찬가지로 우선순위를 갖습니다.",
              "각 구성 요소는 자체 라이센스에 따라 사용, 수정 또는 배포될 수 있습니다. 독점 소프트웨어에 대한 제한은 충돌하는 독립 구성 요소 권한을 무시하지 않습니다. 웹 푸시는 MPL-2.0을 사용합니다. 사용된 버전의 소스 사본이 여기에 제공됩니다. 컴포넌트 소스를 제공한다고 해서 Rain Alert 프로젝트 전체가 오픈 소스로 공개되는 것은 아닙니다."
            ]
          },
          {
            "title": "6. 데이터, 플랫폼 및 상표",
            "paragraphs": [
              "Rain Classroom 강좌 콘텐츠, 다른 학생의 정보 또는 공식 플랫폼 API에는 추가 권한이 부여되지 않습니다. 귀하는 귀하의 정보에 대한 합법적인 권리를 보유합니다. Sparkle, Rain Alert 및 타사 브랜드와 마크는 각각의 보호를 유지합니다. 공식 운영자를 사칭하거나 존재하지 않는 파트너십, 인증 또는 보증을 주장하지 마십시오."
            ]
          },
          {
            "title": "7. 독립적 배포 및 재판매",
            "paragraphs": [
              "액세스에는 백엔드 소스 제공, 서버 관리, 서비스 재판매 또는 독립적 배포 권한이 포함되지 않습니다. 필요한 경우 명시적인 별도 승인을 받으세요. 개발 디렉터리에 package.json, 종속성 목록 또는 읽을 수 있는 코드가 있다는 것은 원래 프로젝트에 대한 일반적인 오픈 소스 부여가 아닙니다."
            ]
          },
          {
            "title": "8. 기간, 종료 및 업데이트",
            "paragraphs": [
              "본 라이센스는 제공된 클라이언트 및 서비스를 합법적으로 사용하는 동안 적용됩니다. 사용을 중단하고 홈 화면 항목을 제거할 수 있습니다. 중대한 위반은 적절하고 교정 가능한 경우 시정할 수 있는 합당한 기회와 함께 합법적인 액세스 제한을 초래할 수 있습니다. 종료는 법적 데이터 권리, 발생한 책임 또는 독립적인 오픈 소스 라이선스를 소멸시키지 않습니다.",
              "업데이트에는 다른 조건이 수반되지 않는 한 이 라이센스가 적용됩니다. 액세스는 영구적인 작동, 특정 버전의 유지 관리 또는 무기한 호환성을 보장하지 않습니다. 중대한 변경은 서비스 약관 및 해당 법률을 따릅니다."
            ]
          },
          {
            "title": "9. 보증 및 책임",
            "paragraphs": [
              "법이 허용하는 한도 내에서 소프트웨어와 서비스는 이용 가능한 상태로 제공됩니다. 보증 및 책임은 서비스 약관, 실제 약속 및 관련 법률에 따라 결정됩니다. 의무적인 소비자 보호, 배제 불가능한 데이터 보호 의무, 고의적 위법 행위 또는 중과실에 대한 책임 및 기타 의무적 권리는 그대로 유지됩니다."
            ]
          },
          {
            "title": "10. 라이센스 문의",
            "paragraphs": [
              "개인 정보 보호에 대한 질문, 권리 요청, 지원 또는 침해 신고는 QQ의 관리자 唐梓耀 / AdrianSparkle(2410710390)에게 문의하세요. 개발자의 공개 프로필은 https://github.com/Tang1206cc입니다. 제품, 버전 및 요청 사항을 확인하십시오. 초기 메시지에 비밀번호, 로그인 쿠키, 연결 코드, 전체 녹음 또는 불필요한 개인 정보를 포함하지 마십시오.",
              "팀 배포, 소스 라이선스, 상업적 협력 또는 브랜드 사용의 경우 용도를 설명하고 권리 보유자에게 문의하세요. 명시적으로 부여되지 않은 독점 소프트웨어 권리는 보유됩니다."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "강우 경보 제3자 및 오픈 소스 공지",
        "intro": "현재 package-lock.json 및 설치된 패키지에 대해 인벤토리를 확인했으며 110개의 프로덕션 종속성 패키지를 포함합니다. 원본 저작권 및 라이센스 조건은 아래에서 확인할 수 있습니다. 동일한 조건으로 전체 제품에 대한 라이센스를 부여하지 않습니다.",
        "sections": [
          {
            "title": "1. 주요 종속성",
            "paragraphs": [
              "Express 5.3.0(MIT)은 HTTP 라우팅을 처리합니다. qrcode 1.5.4(MIT)는 로그인 QR 이미지를 생성합니다. tough-cookie 6.0.2(BSD-3-Clause)는 공식 세션 쿠키를 관리합니다. web-push 3.6.7(MPL-2.0)은 웹 푸시 요청 및 암호화를 처리합니다. 전체 인벤토리에는 이러한 4개 패키지만이 아닌 설치 위치별 전이적 종속성이 포함됩니다. 친구와 함께 공부하기 브라우저 페이지에서는 추가로 jsQR(Apache-2.0)을 사용하여 장치의 QR 코드를 디코딩합니다. 이 브라우저 구성 요소는 위의 Node.js 프로덕션 종속성 수와 별개입니다. 현재 제품과 함께 제공되는 원본 라이센스는 별도로 제공됩니다. 독점 소프트웨어 조건은 독립적인 권한을 감소시키지 않습니다."
            ]
          },
          {
            "title": "2. 원문, 출처, 범위",
            "paragraphs": [
              "다운로드 가능한 공지에는 확인된 패키지에 있는 LICENSE, LICENCE, COPYING 및 NOTICE 텍스트가 포함되어 있습니다. 설치된 http_ece 1.2.0 패키지에는 별도의 라이센스 파일이 없습니다. MIT 텍스트는 기록된 소스와 일치하는 업스트림 v1.2.0 태그에서 가져옵니다. ZIP에는 웹 푸시 구성 요소 소스, README, package.json 및 MPL 적용 파일을 검사하기 위한 라이센스가 별도로 포함되어 있습니다.",
              "이는 현재 프로젝트의 생산 의존성 인벤토리입니다. 이는 모든 서버 종속성이 브라우저에 전달되거나 Node.js, 운영 체제 또는 추가 소프트웨어를 재배포할 때 필요한 알림을 대체한다는 의미는 아닙니다. 업스트림 텍스트는 원래 언어를 유지하고 구성 요소 권리를 관리합니다."
            ]
          },
          {
            "title": "3. 플랫폼 관계 및 처리",
            "paragraphs": [
              "Rain Classroom, WeChat 및 브라우저 알림 인프라는 해당 권리 보유자에 의해 운영됩니다. 계정 승인 및 관련 인터페이스를 사용하는 독립적인 알림은 해당 인터페이스를 보증한다는 의미는 아닙니다. Apple 장치에서 홈 화면 웹 앱으로 사용하거나 Web Push를 통해 사용한다고 해서 Apple이 이 제품을 제작, 검토 또는 보증한다는 의미는 아닙니다. 플랫폼 처리 및 본 서비스의 데이터 흐름은 해당 정책 및 본 제품의 개인정보 보호정책에 설명되어 있습니다."
            ]
          },
          {
            "title": "4. 권리 및 보안 보고서",
            "paragraphs": [
              "귀속, 목록, 소스 조항 또는 저작권 표시가 불완전한 것으로 나타나면 관리자에게 패키지, 버전 및 증거를 알려 확인하고 수정할 수 있도록 하세요. 보안 문제를 보고할 때 사용자 자격 증명을 게시하지 마십시오.",
              "개인 정보 보호에 대한 질문, 권리 요청, 지원 또는 침해 신고는 QQ의 관리자 唐梓耀 / AdrianSparkle(2410710390)에게 문의하세요. 개발자의 공개 프로필은 https://github.com/Tang1206cc입니다. 제품, 버전 및 요청 사항을 확인하십시오. 초기 메시지에 비밀번호, 로그인 쿠키, 연결 코드, 전체 녹음 또는 불필요한 개인 정보를 포함하지 마십시오."
            ]
          }
        ],
        "links": [
          {
            "label": "원본 jsQR Apache-2.0 라이센스 · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "pt-BR": {
      "privacy": {
        "title": "Política de Privacidade do Alerta de Chuva",
        "intro": "O Rain Alert se conecta ao Rain Classroom por meio de um serviço de lembrete e envia notificações para seus dispositivos. Portanto, ele processa autorização de conta, informações de curso e dados de notificação em um servidor. Revise esse escopo antes de conectar ou autorizar uma conta.",
        "sections": [
          {
            "title": "1. Escopo e mantenedores",
            "paragraphs": [
              "雨水提醒 (Rain Alert) é um aplicativo da Web independente para lembretes de eventos em sala de aula no Sparkle, criado e mantido por 唐梓耀 / AdrianSparkle e 丁铭 / EliasSparkle. Esta política cobre a instância operada pelo Sparkle, emparelhamento de dispositivos, autorização Rain Classroom QR, monitoramento de sala de aula e Web Push. Esta política também cobre verificações de status de entrada em sala de aula e convites para estudar com amigos que você cria ativamente.",
              "Não é um produto oficial do Rain Classroom e não representa escolas, professores, Rain Classroom, WeChat, Apple ou fornecedores de navegadores. Seus serviços têm regras de privacidade separadas. As instâncias operadas de forma independente exigem divulgações dos seus próprios operadores; nossos acordos de hospedagem e administração não se aplicam automaticamente a eles."
            ]
          },
          {
            "title": "2. Detalhes da conta, cursos e credenciais",
            "paragraphs": [
              "Solicitar um código QR de login oficial cria automaticamente uma sessão do dispositivo; nenhum código de conexão é necessário. Depois de confirmar o login oficial do QR, o serviço recebe o ID da conta, nome ou apelido, escola e número de aluno retornados pelo Rain Classroom, junto com os cursos matriculados, IDs de sala de aula, nomes, professores e identificadores de organizações relacionadas. Eles identificam a conta e exibem os cursos.",
              "O servidor também armazena cookies oficiais de login, autorização de sessão e tokens de sala de aula necessários para continuar a consultar após fechar a página. Não solicitamos nem armazenamos sua senha do Rain Classroom ou WeChat. Cookies e tokens podem representar autoridade de login e exigir proteção especial. A digitalização não mantém a autorização apenas no seu telefone."
            ]
          },
          {
            "title": "3. Eventos em sala de aula e informações sobre outras pessoas",
            "paragraphs": [
              "O serviço consulta aulas em andamento, registros de aprendizagem necessários e modos de check-in. Com os lembretes em sala de aula ativados, ele recebe o fluxo oficial do evento em sala de aula. Os campos de notificação armazenados incluem nomes de cursos e salas de aula, tipos e identificadores de eventos, plataforma ou horários de detecção e resumos necessários.",
              "Os eventos de seleção aleatória podem conter nomes e números de alunos anunciados à turma pelo professor. Eles podem ser armazenados em registros de eventos criptografados e exibidos em órgãos de notificação, incluindo informações sobre colegas de classe. Gerencie as visualizações da tela de bloqueio e os dispositivos compartilhados com cuidado e não publique novamente esses detalhes. O serviço não os utiliza para traçar o perfil dos alunos.",
              "A implementação atual não retém textos de perguntas ou respostas como conteúdo de lembrete persistente, responde a perguntas, responde a chamadas ou respostas rápidas ou coleta a localização do dispositivo. A presença normal pode desencadear uma solicitação de entrada por meio de lembretes em sala de aula habilitados. Você também pode convidar ativamente um amigo para uma aula confirmada como não inscrita; o amigo envia um texto decodificado do código QR da sala de aula correspondente e o serviço usa a sessão oficial do autor do convite para o fluxo de entrada normal verificado. Estas solicitações podem alterar os registros oficiais de entrada ou presença; consulte os Termos de Serviço."
            ]
          },
          {
            "title": "4. Dispositivos, notificações e informações técnicas",
            "paragraphs": [
              "Processamos identificadores aleatórios de dispositivos, sessões de conexão com hash, rótulos de dispositivos, horários de criação e da última abertura, expiração de 30 dias, associações de contas e trocas de lembretes. A categoria inicial do dispositivo é derivada do User-Agent do navegador. A renomeação de dispositivos e a lista de dispositivos não são expostas na interface atual; os dados relacionados e os pontos de extremidade de gerenciamento permanecem.",
              "Quando você habilita notificações, o navegador fornece um endpoint push, uma chave pública p256dh e um segredo de autenticação. O servidor armazena a assinatura para enviar para esse dispositivo. Tentativas de entrega, status de aceitação ou falha, carimbos de data/hora e hashes de recebimentos aleatórios oferecem suporte à solução de problemas, desduplicação e confirmação do manuseio do sistema. Um recibo não prova que você viu, ouviu ou leu uma notificação.",
              "Fornecer um serviço de rede envolve o processamento de endereços IP, cabeçalhos de solicitação, origens, tempos de conexão e informações de erro. Os endereços IP também suportam a limitação da taxa de abuso na memória. O aplicativo atual não possui SDK de publicidade ou análise comportamental e não usa esses dados para rastreamento entre sites ou venda de informações pessoais. Os provedores de infraestrutura e comunicação podem processar registros técnicos de acordo com suas próprias regras."
            ]
          },
          {
            "title": "5. Finalidades e limites de autorização",
            "paragraphs": [
              "Esses dados suportam emparelhamento, identificação de sua conta autorizada, consulta e exibição de classes, envio de eventos selecionados, manutenção de sessões, migração de origens, proteção de segurança, solução de problemas e recuperação. Os dados da conta e do curso não são usados ​​para publicidade, criação de perfis comerciais ou treinamento de IA. Sem autorização QR, os cursos não podem ser lidos. Sem permissão de notificação, uma página conectada ainda poderá exibir informações, mas não poderá enviar notificações do sistema para esse dispositivo.",
              "Credenciais confidenciais, informações sobre colegas de classe e processamento entre regiões exigem avisos, fundamentos legais e procedimentos de consentimento aplicáveis de acordo com a lei. Esta política explica os fluxos reais. Visualizá-lo, solicitar um código QR de login ou digitalizar um código QR não é considerado como satisfação de todos os consentimentos exigidos separadamente. Não autorize contas ou informações que você não tem o direito de fornecer."
            ]
          },
          {
            "title": "6. Cookies, armazenamento do navegador e permissões",
            "paragraphs": [
              "A conexão do dispositivo usa um cookie rain_session; o servidor armazena seu hash. Por HTTPS possui atributos Secure, HttpOnly e SameSite=Strict e dura até 30 dias com a conexão do dispositivo, sendo reinicializado na renovação. É um cookie de autenticação e não um cookie de publicidade. Sair do Rain Classroom não limpa automaticamente esse cookie de conexão do dispositivo.",
              "As permissões do navegador regem as notificações do dispositivo. As páginas de co-estudo e de assistência por convite usam a câmera somente depois que você inicia ativamente a digitalização e concede acesso, e também pode aceitar uma imagem. A decodificação QR acontece no navegador; apenas o texto decodificado é enviado, sem upload de vídeo ou imagens selecionadas. O zoom da câmera usa hardware ou zoom digital conforme o dispositivo suporta. Microfone, localização e contatos não são solicitados."
            ]
          },
          {
            "title": "7. Destinatários, hospedagem e transferências internacionais",
            "paragraphs": [
              "A atual instância operada pelo Sparkle é executada na Tencent Cloud em Hong Kong, China. Se você estiver na China continental ou em outra região, os detalhes da conta, cookies, cursos, eventos e assinaturas de dispositivos enviados para esta instância serão transferidos e armazenados em Hong Kong. A autorização e o monitoramento também se comunicam com APIs oficiais do Rain Classroom e serviços de eventos em sala de aula. Qualquer pessoa que possua um convite de estudo válido pode ler o nome de exibição, o nome da turma, o prazo de validade e o status de processamento do autor do convite e enviar um código QR de entrada para a turma especificada. O texto decodificado passa pelo serviço de Hong Kong para as interfaces oficiais do Rain Classroom. O amigo não recebe os cookies, a senha ou a lista completa de cursos do autor do convite. Compartilhe convites apenas com pessoas de confiança que tenham permissão para ajudar.",
              "Dependendo do navegador, o Web Push utiliza infraestrutura como Apple, Google, Mozilla ou Microsoft, que pode processar dados em outros países ou regiões. O serviço envia cargas push criptografadas e informações de roteamento necessárias para o endpoint da assinatura; navegadores e sistemas operacionais os exibem. Notificações de texto simples podem aparecer no dispositivo. A criptografia push não significa que o servidor de lembrete não possa ler os dados subjacentes.",
              "Atualmente, a Cloudflare fornece registro de domínio e DNS. Na configuração existente, o tráfego do aplicativo não passa pelo proxy CDN; O processamento de DNS ainda envolve informações de consulta necessárias. Não vendemos ou alugamos informações pessoais. As divulgações exigidas por lei, o tratamento de segurança necessário ou outras transferências expressamente dirigidas por você devem ser limitadas à finalidade relevante."
            ]
          },
          {
            "title": "8. Limites de criptografia e segurança",
            "paragraphs": [
              "Perfis de contas, caches de cursos, cookies de login, credenciais de sala de aula, cargas de eventos e assinaturas push são armazenados usando AES-256-GCM. Identificadores de contas e dispositivos, associações, interruptores, horários, status e outros campos operacionais não são todos criptografados individualmente. O banco de dados e a chave mestra são gerenciados no mesmo host; esta não é uma criptografia ponta a ponta que resiste ao comprometimento total do servidor.",
              "O serviço usa HTTPS, hash de sessão, verificações de origem, limitação de taxa e endpoints push restritos. Administradores autorizados podem ter acesso necessário para descriptografia. Para um incidente de segurança de informações pessoais, tomaremos medidas corretivas e notificaremos as pessoas e autoridades afetadas conforme exigido pela lei aplicável, explicando as informações envolvidas, o possível impacto, as medidas tomadas e as rotas de contato. Segurança absoluta não é prometida. Conecte apenas dispositivos confiáveis ​​e não compartilhe códigos de conexão, cookies, links de migração ou notificações privadas."
            ]
          },
          {
            "title": "9. Retenção online",
            "paragraphs": [
              "As conexões dos dispositivos duram 30 dias a partir da criação ou renovação manual; uma sessão expirada não concede mais acesso. Autorização oficial inválida interrompe o monitoramento relevante. Quando o último dispositivo válido associado sai, é revogado ou expira, o tratamento de logout ou a manutenção periódica limpa os cookies de login da conta e as credenciais de sala de aula armazenadas e pausa as conexões.",
              "Classes concluídas e seus registros de entrega, eventos históricos fora das classes ativas e registros de push simulados são limpos durante a manutenção periódica usando um limite de 90 dias no código. As classes ativas e os registros relacionados protegidos podem permanecer por mais tempo. As credenciais de migração são de uso único e expiram após cinco minutos. Os convites de estudo usam tokens aleatórios. Um índice hash na memória do processo contém o nome de exibição do autor do convite, a classe especificada, a expiração de aproximadamente 30 minutos, a contagem de tentativas e o estado do resultado. Convites expirados não podem ser usados ​​e os convites não sobrevivem à reinicialização do serviço. As entradas de memória expiradas são apagadas quando convites posteriores são criados, em vez de garantir o apagamento em nível de byte na expiração. O texto QR decodificado é usado para a solicitação atual; o módulo de estudo não grava frames de câmera, imagens selecionadas ou texto QR no banco de dados. Os registros oficiais de entrada e os registros técnicos de infraestrutura seguem as respectivas regras reais de manejo.",
              "A implementação atual não possui um período uniforme de exclusão automática para todos os perfis de conta, caches de cursos, metadados de dispositivos, campos de status ou backups. As regras de conexão de 30 dias e histórico de 90 dias não apagam uma conta inteira nesses momentos. Entre em contato com os mantenedores se você parar de usar o serviço e quiser que os dados restantes sejam removidos. A ausência de limpeza automatizada não é permissão para retenção indefinida. Quando os dados não forem mais necessários ou a exclusão for legalmente exigida, agiremos de acordo com a legislação aplicável e verificaremos o escopo que exige tratamento manual."
            ]
          },
          {
            "title": "10. Backups, material de suporte e escopo de limpeza",
            "paragraphs": [
              "Os backups de recuperação incluem instantâneos de banco de dados, chaves de serviço, chaves push e configuração de origem. Os backups exportados usam uma chave de dados AES-256-GCM aleatória agrupada com uma chave pública RSA-OAEP separada; a chave privada de descriptografia é mantida separadamente. No entanto, o armazenamento em nuvem também pode reter instantâneos SQLite protegidos por permissões de arquivo e privilégios de host podem acessar dados operacionais. A proteção de backup depende, portanto, do tipo de cópia e de onde ela é mantida.",
              "O processo de backup existente não possui expiração automática uniforme; as exportações off-line podem permanecer. A remoção de dados online não apaga imediatamente os backups históricos. Uma solicitação de exclusão pode perguntar sobre backups restantes, motivos de retenção e arranjos de disposição. Isto requer verificação manual; nenhum apagamento instantâneo não implementado com um clique é prometido. As conversas de suporte e os anexos enviados são retidos conforme necessário para o assunto, e não para publicidade ou treinamento."
            ]
          },
          {
            "title": "11. Desative, saia, revogue e solicite exclusão",
            "paragraphs": [
              "Você pode desativar cada um dos cinco tipos de lembrete, revogar notificações do sistema, sair do Rain Classroom neste dispositivo ou parar de renovar uma conexão. A interface atual não possui lista de dispositivos ou controles de revogação; entre em contato com os mantenedores para revisar ou revogar outros dispositivos. Um switch interrompe apenas os lembretes correspondentes desse dispositivo. O monitoramento poderá continuar quando outro dispositivo tiver lembretes ativados. Sair desvincula este dispositivo e remove sua assinatura push do lado do servidor; as permissões do navegador ou o estado da assinatura podem exigir gerenciamento de sistema separado.",
              "A liberação de credenciais de login após a saída do último dispositivo válido não apaga todos os perfis, histórico, outros metadados do dispositivo ou backups. Não há botão de exclusão automática de toda a conta no produto atual. Contate os mantenedores para solicitar informações, acesso, cópia, correção, exclusão, restrição, retirada de autorização ou tratamento de uma objeção relativa às informações de outra pessoa."
            ]
          },
          {
            "title": "12. Verificação, retenção legal e soluções",
            "paragraphs": [
              "Verificamos a relação entre uma solicitação e uma conta proporcionalmente ao risco e solicitamos apenas as informações necessárias. Não envie cookies, senhas ou credenciais de migração. As solicitações devem ser tratadas prontamente, conforme exigido por lei. Se a separação técnica, backups, disputas ou obrigações legais de retenção impedirem a conclusão imediata, os motivos, o escopo e os arranjos subsequentes deverão ser explicados. Quando a lei exige a interrupção de outros tratamentos, os dados retidos são restringidos ao armazenamento e à segurança necessários, em vez de serem devolvidos à monitorização normal. A restauração requer a verificação de solicitações de direitos tratadas anteriormente. Os direitos legais não estão limitados aos botões de interface existentes. Poderá reclamar junto do regulador competente."
            ]
          },
          {
            "title": "13. Os menores e os contextos de aprendizagem",
            "paragraphs": [
              "O serviço é para usuários capazes de autorizar legalmente suas contas e dispositivos. Os menores necessitam de autorização apropriada do responsável e devem seguir as regras da escola. A conexão da conta não é direcionada a crianças menores de 14 anos. Atualmente não existe nenhum mecanismo de verificação de idade; entrar em contato com os mantenedores se as informações de crianças tiverem sido processadas sem a autorização necessária para que possam ser investigadas e tratadas de acordo com a lei.",
              "Nomes, números de alunos e eventos em sala de aula são usados como lembretes e não para julgar a presença ou o desempenho de outra pessoa. Os registros de escolas e professores através dos canais oficiais permanecem oficiais."
            ]
          },
          {
            "title": "14. Alterações e versões de idiomas",
            "paragraphs": [
              "Alterações materiais nas categorias de dados, finalidades, hospedagem ou destinatários serão descritas aqui e datadas. A atualização do texto ou o uso continuado não podem substituir aviso adicional legalmente exigido, consentimento separado ou outros procedimentos. As versões linguísticas visam descrever o mesmo âmbito; as diferenças não diminuem os seus direitos sob a lei aplicável."
            ]
          },
          {
            "title": "15. Contato",
            "paragraphs": [
              "Para questões de privacidade, solicitações de direitos, suporte ou relatórios de violação, entre em contato com o mantenedor 唐梓耀 / AdrianSparkle no QQ em 2410710390. O perfil público do desenvolvedor é https://github.com/Tang1206cc. Identifique o produto, a versão e sua solicitação. Não inclua senhas, cookies de login, códigos de conexão, gravações inteiras ou informações pessoais desnecessárias em sua mensagem inicial.",
              "Especifique “Alerta de Chuva / 雨水提醒” e o escopo da sua solicitação. Para obter informações de outro aluno selecionado, forneça o horário mínimo do evento e o contexto do curso, em vez de publicar publicamente o nome completo e o número do aluno."
            ]
          },
          {
            "title": "15. Grupos de amigos, autorização individual e assistência co-estudo",
            "paragraphs": [
              "O grupo de amigos do Co-estudo sempre inclui seu proprietário e suporta até cinco amigos, isolados por conta do proprietário e dispositivo atual. Cada amigo deve confirmar pessoalmente o login oficial do QR. O serviço armazena o identificador da conta retornado, o perfil de exibição e a sessão oficial para verificar a identidade, mostrar o status de login e auxiliar na entrada após uma solicitação de verificação ativa. As senhas de amigos não são solicitadas nem armazenadas. As credenciais oficiais são processadas pelo servidor, não apenas no telefone que faz a varredura. As sessões de amigos são mantidas fora da tabela de lembretes da conta do proprietário e não ativam automaticamente lembretes de sala de aula para esses amigos.",
              "Perfis e credenciais de amigos são criptografados em um banco de dados de amigos separado. Associações de proprietário/dispositivo, status, carimbos de data/hora e outros campos operacionais não equivalem à criptografia de todo o banco de dados. O proprietário atual do dispositivo pode visualizar nomes de exibição de amigos, avatares disponíveis e status de login e iniciar assistência. Os amigos devem compreender esse escopo e autorizar apenas dispositivos permitidos e confiáveis. O serviço pode recuperar avatares de exibição de fontes oficiais permitidas, cujas regras regem essas solicitações.",
              "Ajude os amigos a co-estudar a usar a câmera ou uma imagem somente quando você o inicia. O navegador decodifica o QR localmente. O serviço recebe seu texto e usa cada sessão de conta agrupada separadamente para verificar a sala de aula, enviar solicitações apoiadas e verificar os resultados oficiais. Isto pode alterar os registos oficiais de entrada; não responde a exercícios nem a chamadas nominais. O vídeo e as imagens selecionadas não são carregados; o texto decodificado é usado para essa operação. Os trabalhos e resultados são mantidos temporariamente na memória do processo, e não como registros permanentes ou prova de presença física.",
              "A remoção de um amigo exclui o registro correspondente desse pool e invalida trabalhos antigos sem enviar uma solicitação oficial de saída do amigo. Sair, trocar de conta de proprietário ou revogar o dispositivo invalida as credenciais de amigo desse proprietário/grupo de dispositivos. Dispositivos expirados são manuseados durante a manutenção. Relacionamentos e perfis de amizade permanecem como registros inválidos, sem prazo uniforme de exclusão automática; autorizar novamente o mesmo amigo ou solicitar exclusão. Os pools de outros dispositivos válidos não são afetados. Um login oficial do proprietário expirado não invalida automaticamente as credenciais do amigo enquanto a sessão do dispositivo permanecer válida, portanto, amigos válidos ainda poderão ser assistidos. O banco de dados de amigos separado está incluído nos backups criptografados existentes; a exclusão de registros on-line não apaga simultaneamente os backups históricos."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Termos de Serviço do Alerta de Chuva",
        "intro": "Rain Alert fornece notificações complementares de eventos em sala de aula. Preste atenção especial à autorização da conta, ao efeito real das solicitações normais de check-in e aos limites da entrega push.",
        "sections": [
          {
            "title": "1. Escopo, fornecedor e aceitação",
            "paragraphs": [
              "Estes termos se aplicam ao Rain Alert Web App e à instância de lembrete mantida no Sparkle por 唐梓耀 / AdrianSparkle e 丁铭 / EliasSparkle. Leia-os antes de conectar, autorizar uma conta ou ativar lembretes. Não tome essas ações se você discordar. O uso continuado por si só não estabelece o consentimento exigido separadamente ou a autorização do responsável."
            ]
          },
          {
            "title": "2. Ferramenta independente e canais oficiais",
            "paragraphs": [
              "Rain Alert não é um produto oficial da Rain Classroom, de uma escola ou de um professor. Esta página não reivindica nenhuma parceria, agência ou endosso de Rain Classroom, WeChat, Apple ou fornecedores de navegadores. Escolas, professores e registros oficiais do Rain Classroom determinam horários, tarefas, frequência e notas.",
              "O produto complementa clientes oficiais, anúncios em sala de aula, verificação manual e suas próprias responsabilidades de atendimento. Atualmente, ele não fornece lembretes abrangentes para todas as tarefas, exames ou anúncios escolares pré ou pós-aula."
            ]
          },
          {
            "title": "3. Elegibilidade e conexões confiáveis",
            "paragraphs": [
              "Você deve estar autorizado a usar a conta e o dispositivo e seguir as regras da escola, do professor e da plataforma. Não conecte contas não autorizadas, empreste sessões. Os menores necessitam de autorização do tutor conforme exigido por lei; crianças menores de 14 anos não devem conectar contas.",
              "Confirme apenas os logins QR oficiais que você iniciou. Não forneça senhas a mantenedores, formulários da web ou estranhos. A página inicial atual não precisa de código de conexão. Solicitar um código QR cria uma sessão no dispositivo; os dados da conta Rain Classroom associada só estarão acessíveis após você confirmar o login."
            ]
          },
          {
            "title": "4. Processamento autorizado",
            "paragraphs": [
              "Após a confirmação do QR, o servidor precisa armazenar e usar credenciais de login oficiais para consultar detalhes da conta, cursos, aulas em andamento e eventos de sala de aula necessários e notificar os dispositivos registrados. A Política de Privacidade explica dados, destinatários, hospedagem e retenção em Hong Kong. Ao criar ativamente um convite de estudo, você também instrui o serviço a usar sua sessão oficial para processar o código QR de entrada correspondente de um amigo para aquela aula específica. Os convites duram cerca de 30 minutos. Verifique o destinatário, o nome de exibição e as informações da turma mostradas antes de compartilhar. Isso não concede ao amigo sua senha ou cookies, nem acesso a outras aulas.",
              "Entenda esse escopo antes de ativar lembretes. Autorização não é permissão para ler material não relacionado, publicar seus cursos, realizar marketing ou treinar modelos de IA."
            ]
          },
          {
            "title": "5. Lembretes em sala de aula e efeitos de check-in",
            "paragraphs": [
              "A ativação de lembretes de exercícios, seleção aleatória, resposta rápida ou disponibilidade de comentários permite que o serviço obtenha autorização em sala de aula de acordo com as regras da plataforma. Caso a plataforma identifique explicitamente um check-in normal, o serviço poderá enviar automaticamente um pedido de entrada na sala de aula. Essa solicitação pode criar registros de entrada ou check-in na plataforma oficial. O serviço não é totalmente somente leitura.",
              "Você pode convidar ativamente um amigo para escanear um código QR de entrada de sala de aula correspondente, limitado ao fluxo QR normal verificado. Localização, fluxos desconhecidos e outras restrições não suportadas ainda exigem o cliente oficial. O serviço não falsifica a localização, não quebra códigos QR, não responde a exercícios, não responde a chamadas ou envia respostas rápidas. A entrada automática e o Estudo com amigos devem seguir as regras da escola, do professor e da plataforma. O estado de entrada da conta não deve ser representado como presença física ou usado para falsificar a presença."
            ]
          },
          {
            "title": "6. Switches, testes e conteúdo de notificação",
            "paragraphs": [
              "Cinco tipos de lembretes são controlados por dispositivo. A permissão do sistema e os interruptores de lembrete individuais são configurações diferentes. O teste push envia cinco mensagens simuladas claramente identificadas, mesmo que os interruptores correspondentes estejam desligados, sem alterá-los. O teste bem-sucedido não verifica a origem do evento da sala de aula ao vivo.",
              "Notificações de seleção aleatória podem mostrar nomes e números de alunos anunciados à turma. Outras notificações mostram resumos de cursos e eventos. Gerencie visualizações e dispositivos compartilhados e não encaminhe publicamente informações de colegas. Se nenhum horário de início confiável for fornecido pela plataforma, o tempo de detecção exibido não será o horário de início da aula."
            ]
          },
          {
            "title": "7. Tempo e confiabilidade",
            "paragraphs": [
              "A votação em aproximadamente cinco segundos em condições normais funciona juntamente com as conexões sala de aula-evento. Este não é um prazo de entrega ou garantia de nível de serviço. Mudanças de plataforma, redes, manutenção, economia de energia, permissões, fornecedores push, políticas de navegador, login inválido ou emparelhamento expirado podem atrasar, omitir, repetir ou interromper mensagens.",
              "“Aceito por serviço push” confirma a aceitação de uma solicitação. Um recibo do dispositivo confirma o manuseio do sistema, e não que uma pessoa tenha lido ou ouvido a notificação. Continue verificando os canais oficiais; não confie apenas nesta ferramenta para atendimento, exames ou prazos importantes."
            ]
          },
          {
            "title": "8. Dispositivos, expiração e migração de origem",
            "paragraphs": [
              "As conexões dos dispositivos normalmente duram 30 dias. Um prompt de renovação aparece durante os últimos sete dias. A nomenclatura de dispositivos, a lista de dispositivos e os controles de revogação não estão disponíveis na interface atual; entre em contato com os mantenedores para investigar e revogar conexões desconhecidas. A autorização oficial ou as sessões do dispositivo expiradas afetam o monitoramento e os lembretes.",
              "Os pontos de entrada legados principais e retidos são origens de navegadores distintas. Uma credencial de uso único de cinco minutos migra a conta, as configurações e o histórico necessário; a permissão de notificação deve ser concedida novamente na nova origem. Um link de migração confere acesso temporário e não deve ser compartilhado. A desativação da assinatura antiga depende do registro bem-sucedido da nova."
            ]
          },
          {
            "title": "9. Uso aceitável",
            "paragraphs": [
              "Não ignore os controles da escola ou da plataforma, falsifique a frequência, roube ou compartilhe credenciais, colete dados de pessoas não relacionadas, assedie ou infrinja direitos, abuse da entrega push, ataque interfaces ou revenda acesso não autorizado. Não use cursos, nomes, números de alunos ou atividades de aprendizagem para perfis publicitários ou exposição pública.",
              "O uso comum ainda deve satisfazer as regras da plataforma e da escola; o produto não pode obter permissão de terceiros para você. Se você encontrar um dispositivo desconhecido ou entrega incorreta, desative os lembretes relevantes e entre em contato com os mantenedores para investigar e revogar o dispositivo."
            ]
          },
          {
            "title": "10. Disponibilidade, taxas, suporte e alterações",
            "paragraphs": [
              "O serviço está atualmente em testes públicos. Disponibilidade permanente, acesso gratuito permanente, tempos de resposta fixos e capacidade específica não são prometidos. Qualquer cobrança, assinatura ou nova condição relevante deve ser claramente divulgada antes de entrar em vigor e seguir os procedimentos exigidos. Estes termos por si só não criam nenhuma obrigação de pagamento.",
              "Manutenção, segurança, capacidade e alterações upstream podem exigir ajuste ou suspensão. Sempre que razoavelmente previsível, deverão ser fornecidas explicações e orientações adequadas para a migração, exportação ou descontinuação. Os riscos urgentes podem exigir primeiro as ações necessárias e uma explicação quando apropriado, sem eliminar deveres legais."
            ]
          },
          {
            "title": "11. Saída, suspensão e rescisão",
            "paragraphs": [
              "Você pode desativar lembretes, sair, pedir aos mantenedores que revoguem dispositivos ou parar de usar o serviço. Desvincular o último dispositivo válido libera credenciais de login. A Política de Privacidade explica separadamente os perfis, histórico e backups restantes; a descontinuação não exclui automaticamente uma conta inteira.",
              "Abuso, violação ou risco de segurança claros podem justificar a restrição de conexões relevantes na medida necessária, com motivos e uma oportunidade para feedback ou correção, quando apropriado. Os deveres aplicáveis ​​de confidencialidade, propriedade intelectual e proteção de dados sobreviverão à rescisão."
            ]
          },
          {
            "title": "12. Direitos, garantias e responsabilidades",
            "paragraphs": [
              "Você retém direitos sobre suas informações. Os materiais do curso pertencem aos seus detentores de direitos. O processamento não concede ao serviço direitos de uso irrestrito ou sublicenciamento. Os termos de licenciamento do produto e de componentes aparecem na Licença de Software e nos Avisos de Terceiros.",
              "Na medida permitida por lei, o serviço é fornecido em sua condição disponível, sem promessa de operação contínua e livre de erros ou entrega oportuna de todas as mensagens. A responsabilidade depende dos fatos, da culpa e da lei aplicável. A responsabilidade por má conduta intencional, negligência grave, danos pessoais, processamento ilegal de informações pessoais e outras questões não excludentes permanece, assim como as soluções obrigatórias ao consumidor."
            ]
          },
          {
            "title": "13. Disputas, interpretação e revisões",
            "paragraphs": [
              "Entre em contato com os mantenedores sobre dúvidas ou disputas. Você permanece livre para buscar reparação junto a um tribunal ou regulador com jurisdição legal, sem arbitragem obrigatória, um tribunal estrangeiro designado ou renúncia de direitos legais. Uma disposição inexequível não invalida disposições independentemente eficazes.",
              "As revisões materiais serão datadas e seguirão os procedimentos exigidos de notificação ou consentimento. As versões linguísticas pretendem ser equivalentes; as diferenças de tradução não excluem a protecção jurídica local."
            ]
          },
          {
            "title": "14. Contato",
            "paragraphs": [
              "Para questões de privacidade, solicitações de direitos, suporte ou relatórios de violação, entre em contato com o mantenedor 唐梓耀 / AdrianSparkle no QQ em 2410710390. O perfil público do desenvolvedor é https://github.com/Tang1206cc. Identifique o produto, a versão e sua solicitação. Não inclua senhas, cookies de login, códigos de conexão, gravações inteiras ou informações pessoais desnecessárias em sua mensagem inicial."
            ]
          },
          {
            "title": "15. Autorização do grupo de amigos e limites de assistência",
            "paragraphs": [
              "Cada amigo deve confirmar pessoalmente o login oficial do QR e compreender que o serviço de lembrete armazena credenciais e o titular atual da conta/dispositivo pode iniciar a assistência. Não retenha, transfira ou use a sessão de outra pessoa sem permissão nem contorne as regras da escola, do professor ou da plataforma oficial. Incluir o proprietário e até cinco amigos não confere direito de acesso ou check-in em qualquer sala de aula.",
              "Links de convite e grupos de amigos são fluxos separados: o ajudante de um link não precisa fazer login, enquanto cada amigo do grupo deve autorizar individualmente. A assistência requer a leitura ativa de um código QR de sala de aula aplicável, com resultados verificados separadamente por conta. Os registros de envio, espera e entrada não comprovam comparecimento físico. Fluxos restritos ou não suportados ainda exigem o cliente oficial; a disponibilidade para todas as escolas, salas de aula ou contas não é prometida. Consulte a política de privacidade para saída, remoção, expiração, backups e dados restantes."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Licença de software e serviço de alerta de chuva",
        "intro": "Esta licença explica o uso permitido do código e da interface originais do Web App. O Access não concede redistribuição de origem, implantação independente ou direitos de marca Sparkle. Os componentes de código aberto mantêm suas próprias licenças.",
        "sections": [
          {
            "title": "1. Titulares de direitos e âmbito",
            "paragraphs": [
              "O código, interface, gráficos e documentação originais do Rights in Rain Alert permanecem com seus respectivos detentores de direitos. Sparkle é mantido por 唐梓耀 / AdrianSparkle e 丁铭 / EliasSparkle. Esta licença cobre o acesso ao cliente e serviço Web App fornecido, sem alterar o conteúdo de terceiros ou as permissões de código aberto."
            ]
          },
          {
            "title": "2. Cliente limitado e permissão de acesso",
            "paragraphs": [
              "Sujeito aos Termos de Serviço, você recebe um direito limitado, não exclusivo, intransferível e não sublicenciável de acessar o serviço realmente disponibilizado, carregar e executar o código do cliente fornecido com suas páginas e usar a instalação comum do navegador, como adicionar à tela inicial em dispositivos que você possui ou está autorizado a usar. Você pode conectar contas que tem direito a autorizar por meio de recursos suportados.",
              "Use fluxos suportados para conectar sua própria conta ou a conta de um amigo depois que esse amigo autorizar pessoalmente o login QR oficial para o pool. Isso não concede direitos de conta, curso ou plataforma além da autorização original."
            ]
          },
          {
            "title": "3. Direitos não concedidos no código original",
            "paragraphs": [
              "A visibilidade ou capacidade de download de scripts de navegador não coloca o código original sob uma licença de código aberto. Exceto quando permitido por lei ou autorizado separadamente por escrito, não redistribua o produto, modifique e opere um serviço independente, empacote-o para venda, alugue, sublicença, remova avisos de direitos ou ofereça interfaces de back-end como um serviço comercial não autorizado. Estas reservas de software não restringem o uso legal de dados da sua própria conta."
            ]
          },
          {
            "title": "4. Exceções legais e pesquisas",
            "paragraphs": [
              "Esta licença não restringe backups, interoperabilidade, pesquisa de segurança ou outros direitos que a lei aplicável não permita que um contrato exclua. A pesquisa não deve envolver acesso ilegal a credenciais, violações de privacidade ou interrupção do serviço ativo. Relate vulnerabilidades com o mínimo de detalhes de reprodução necessários, sem publicar chaves válidas ou dados do usuário."
            ]
          },
          {
            "title": "5. Prioridade de licenças de componentes",
            "paragraphs": [
              "O serviço usa Express, qrcode, hard-cookie, web-push e suas dependências. Versões exatas, declarações de direitos autorais e textos estão em Avisos de Terceiros. Eles incluem MIT, ISC, BSD-3-Clause, Apache-2.0 e MPL-2.0; nem todos são MIT. A página Estude com amigos também usa o decodificador jsQR licenciado pelo Apache-2.0, cuja licença independente também tem prioridade.",
              "Cada componente pode ser usado, modificado ou distribuído sob sua própria licença. As restrições ao software proprietário não substituem permissões conflitantes de componentes independentes. web-push usa MPL-2.0; uma cópia fonte da versão usada é fornecida aqui. Fornecer a fonte do componente não libera todo o projeto Rain Alert como código aberto."
            ]
          },
          {
            "title": "6. Dados, plataformas e marcas registradas",
            "paragraphs": [
              "Nenhum direito adicional é concedido ao conteúdo do curso Rain Classroom, informações de outros alunos ou APIs da plataforma oficial. Você retém direitos legais sobre suas informações. Sparkle, Rain Alert e marcas e marcas de terceiros mantêm suas respectivas proteções. Não se faça passar por um operador oficial nem reivindique parcerias, certificações ou endossos inexistentes."
            ]
          },
          {
            "title": "7. Implantação e revenda independente",
            "paragraphs": [
              "O acesso não inclui entrega de fonte de back-end, administração de servidor, revenda de serviço ou permissão de implantação independente. Obtenha autorização separada explícita, se necessário. A presença de package.json, listas de dependências ou código legível em um diretório de desenvolvimento não é uma concessão geral de código aberto para o projeto original."
            ]
          },
          {
            "title": "8. Duração, rescisão e atualizações",
            "paragraphs": [
              "Esta licença se aplica durante o uso legal do cliente e serviço fornecido. Você pode interromper o uso e remover a entrada da tela inicial. Violações materiais podem resultar em restrições legais de acesso com uma oportunidade razoável de correção quando apropriado e remediável. A rescisão não extingue os direitos legais aos dados, as responsabilidades acumuladas ou as licenças independentes de código aberto.",
              "As atualizações permanecem sujeitas a esta licença, a menos que termos diferentes as acompanhem. O Access não garante operação perpétua, manutenção de uma versão específica ou compatibilidade indefinida. As alterações materiais seguem os Termos de Serviço e a lei aplicável."
            ]
          },
          {
            "title": "9. Garantias e responsabilidade",
            "paragraphs": [
              "Na medida permitida por lei, o software e o serviço são fornecidos nas condições disponíveis. As garantias e a responsabilidade são determinadas pelos Termos de Serviço, pelos compromissos reais e pela lei aplicável. A proteção obrigatória do consumidor, os deveres não excludentes de proteção de dados, a responsabilidade por má conduta intencional ou negligência grave e outros direitos obrigatórios permanecem."
            ]
          },
          {
            "title": "10. Consultas de licenciamento",
            "paragraphs": [
              "Para questões de privacidade, solicitações de direitos, suporte ou relatórios de violação, entre em contato com o mantenedor 唐梓耀 / AdrianSparkle no QQ em 2410710390. O perfil público do desenvolvedor é https://github.com/Tang1206cc. Identifique o produto, a versão e sua solicitação. Não inclua senhas, cookies de login, códigos de conexão, gravações inteiras ou informações pessoais desnecessárias em sua mensagem inicial.",
              "Para implantação em equipe, licenciamento de origem, cooperação comercial ou uso de marca, explique o uso pretendido e entre em contato com os detentores dos direitos. Os direitos de software proprietário não concedidos expressamente são reservados."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Avisos de terceiros e de código aberto do Rain Alert",
        "intro": "O inventário foi verificado em relação ao package-lock.json atual e aos pacotes instalados e inclui 110 pacotes de dependência de produção. Os direitos autorais originais e as condições de licença estão disponíveis abaixo. Eles não licenciam o produto inteiro nos mesmos termos.",
        "sections": [
          {
            "title": "1. Dependências principais",
            "paragraphs": [
              "Express 5.3.0 (MIT) lida com roteamento HTTP; qrcode 1.5.4 (MIT) gera imagens QR de login; hard-cookie 6.0.2 (BSD-3-Clause) gerencia cookies de sessão oficial; web-push 3.6.7 (MPL-2.0) lida com solicitações e criptografia de Web Push. O inventário completo inclui dependências transitivas por local de instalação, em vez de apenas estes quatro pacotes. A página do navegador Estude com amigos também usa jsQR (Apache-2.0) para decodificar códigos QR no dispositivo. Este componente do navegador é separado da contagem de dependências de produção do Node.js acima. Sua licença original fornecida com o produto atual é fornecida separadamente; os termos de software proprietário não diminuem suas permissões independentes."
            ]
          },
          {
            "title": "2. Textos originais, fonte e escopo",
            "paragraphs": [
              "O aviso para download retém os textos LICENSE, LICENCE, COPYING e NOTICE encontrados nos pacotes verificados. O pacote http_ece 1.2.0 instalado não possui um arquivo de licença separado; seu texto MIT é retirado da tag upstream v1.2.0 correspondente com a fonte registrada. Um ZIP contém separadamente a fonte do componente web-push, README, package.json e licença para examinar arquivos cobertos por MPL.",
              "Este é o inventário de dependência de produção do projeto atual. Isso não implica que todas as dependências do servidor sejam entregues ao navegador ou substituam os avisos necessários ao redistribuir Node.js, sistemas operacionais ou software adicional. Os textos upstream mantêm seu idioma original e regem os direitos dos componentes."
            ]
          },
          {
            "title": "3. Relacionamentos e processamento da plataforma",
            "paragraphs": [
              "Rain Classroom, WeChat e infraestrutura de notificação do navegador são operados por seus respectivos detentores de direitos. Lembretes independentes que utilizam autorização de conta e interfaces relevantes não implicam seu endosso. O uso em dispositivos Apple, como um Web App na tela inicial ou por meio do Web Push não significa que a Apple criou, revisou ou garante este produto. O processamento da plataforma e os fluxos de dados deste serviço estão descritos nas respetivas políticas e na Política de Privacidade deste produto."
            ]
          },
          {
            "title": "4. Relatórios sobre direitos e segurança",
            "paragraphs": [
              "Se uma atribuição, inventário, fornecimento de fonte ou aviso de direitos autorais parecer incompleto, informe aos mantenedores o pacote, a versão e as evidências para que possam ser verificados e corrigidos. Não publique credenciais de usuário ao relatar problemas de segurança.",
              "Para questões de privacidade, solicitações de direitos, suporte ou relatórios de violação, entre em contato com o mantenedor 唐梓耀 / AdrianSparkle no QQ em 2410710390. O perfil público do desenvolvedor é https://github.com/Tang1206cc. Identifique o produto, a versão e sua solicitação. Não inclua senhas, cookies de login, códigos de conexão, gravações inteiras ou informações pessoais desnecessárias em sua mensagem inicial."
            ]
          }
        ],
        "links": [
          {
            "label": "Licença jsQR Apache-2.0 original · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "it": {
      "privacy": {
        "title": "Informativa sulla privacy relativa agli avvisi di pioggia",
        "intro": "Rain Alert si connette a Rain Classroom tramite un servizio di promemoria e invia notifiche ai tuoi dispositivi. Pertanto elabora l'autorizzazione dell'account, le informazioni sul corso e i dati di notifica su un server. Esamina questo ambito prima di connettere o autorizzare un account.",
        "sections": [
          {
            "title": "1. Ambito e manutentori",
            "paragraphs": [
              "雨水提醒 (Rain Alert) è un'app Web indipendente per ricordare gli eventi in classe sotto Sparkle, creata e gestita da 唐梓耀 / AdrianSparkle e 丁铭 / EliasSparkle. Questa politica copre l'istanza gestita da Sparkle, l'associazione dei dispositivi, l'autorizzazione QR Rain Classroom, il monitoraggio della classe e Web Push. Questa politica copre anche i controlli sullo stato di ingresso in classe e gli inviti a Studiare con gli amici che crei attivamente.",
              "Non è un prodotto ufficiale di Rain Classroom e non rappresenta scuole, insegnanti, Rain Classroom, WeChat, Apple o fornitori di browser. I loro servizi hanno regole sulla privacy separate. Le istanze gestite in modo indipendente richiedono comunicazioni da parte dei propri operatori; i nostri accordi di hosting e amministrazione non si applicano automaticamente a loro."
            ]
          },
          {
            "title": "2. Dettagli dell'account, corsi e credenziali",
            "paragraphs": [
              "La richiesta di un codice QR di accesso ufficiale crea automaticamente una sessione del dispositivo; non è richiesto alcun codice di connessione. Dopo aver confermato l'accesso QR ufficiale, il servizio riceve l'ID account, nome o nickname, scuola e numero studente restituiti da Rain Classroom, insieme ai corsi iscritti, agli ID classe, ai nomi, agli insegnanti e ai relativi identificatori dell'organizzazione. Questi identificano l'account e visualizzano i corsi.",
              "Il server memorizza inoltre i cookie di accesso ufficiali, l'autorizzazione della sessione e i token di classe necessari per continuare a eseguire query dopo aver chiuso la pagina. Non richiediamo né memorizziamo la tua password Rain Classroom o WeChat. Cookie e token possono rappresentare l'autorità di accesso e richiedere una protezione speciale. La scansione non mantiene l'autorizzazione esclusivamente sul telefono."
            ]
          },
          {
            "title": "3. Eventi in classe e informazioni su altri",
            "paragraphs": [
              "Il servizio interroga le lezioni in corso, i registri di apprendimento necessari e le modalità di check-in. Con i promemoria in classe abilitati, riceve il flusso ufficiale degli eventi in classe. I campi di notifica memorizzati includono nomi di corsi e aule, tipi di eventi e identificatori, tempi di rilevamento o piattaforma e riepiloghi necessari.",
              "Gli eventi di selezione casuale possono contenere nomi e numeri di studenti annunciati alla classe dall'insegnante. Questi possono essere archiviati in registrazioni di eventi crittografati e mostrati negli organismi di notifica, comprese le informazioni sui compagni di classe. Gestisci con attenzione le anteprime della schermata di blocco e i dispositivi condivisi e non ripubblicare questi dettagli. Il servizio non li utilizza per profilare gli studenti.",
              "L'implementazione attuale non conserva il testo delle domande o le risposte come contenuto di promemoria persistente, non risponde alle domande, non risponde agli appelli o alle risposte rapide né raccoglie la posizione del dispositivo. La frequenza ordinaria può far scattare una richiesta di ingresso attraverso i promemoria d'aula abilitati. Puoi anche invitare attivamente un amico per una lezione confermata come non iscritta; l'amico invia il testo decodificato del codice QR della classe corrispondente e il servizio utilizza la sessione ufficiale dell'invitante per il normale flusso di ingresso verificato. Queste richieste possono modificare i record ufficiali di ingresso o di presenza; vedere i Termini di servizio."
            ]
          },
          {
            "title": "4. Dispositivi, notifiche e informazioni tecniche",
            "paragraphs": [
              "Elaboriamo identificatori casuali dei dispositivi, sessioni di connessione con hash, etichette dei dispositivi, orari di creazione e di ultima apertura, scadenza di 30 giorni, associazioni di account e cambi di promemoria. La categoria dispositivo iniziale deriva dallo User-Agent del browser. La ridenominazione del dispositivo e l'elenco dei dispositivi non sono esposti nell'interfaccia corrente; i dati correlati e gli endpoint di gestione rimangono.",
              "Quando abiliti le notifiche, il browser fornisce un endpoint push, una chiave pubblica p256dh e un segreto di autenticazione. Il server memorizza l'abbonamento da inviare a quel dispositivo. I tentativi di consegna, lo stato accettato o non riuscito, i timestamp e gli hash delle ricevute casuali supportano la risoluzione dei problemi, la deduplicazione e la conferma della gestione del sistema. Una ricevuta non dimostra che hai visto, sentito o letto una notifica.",
              "Fornire un servizio di rete implica l'elaborazione di indirizzi IP, intestazioni di richiesta, origini, tempi di connessione e informazioni sugli errori. Gli indirizzi IP supportano anche la limitazione del tasso di abuso in memoria. L'app attuale non ha SDK di pubblicità o analisi comportamentale e non utilizza questi dati per il monitoraggio tra siti o per la vendita di informazioni personali. I fornitori di infrastrutture e comunicazioni possono elaborare i registri tecnici secondo le proprie regole."
            ]
          },
          {
            "title": "5. Finalità e limiti autorizzativi",
            "paragraphs": [
              "Questi dati supportano l'associazione, l'identificazione dell'account autorizzato, l'interrogazione e la visualizzazione delle classi, l'invio di eventi selezionati, il mantenimento delle sessioni, la migrazione delle origini, la protezione della sicurezza, la risoluzione dei problemi e il ripristino. I dati dell'account e del corso non vengono utilizzati per pubblicità, profilazione commerciale o formazione sull'intelligenza artificiale. Senza autorizzazione QR i corsi non possono essere letti. Senza l'autorizzazione alle notifiche, una pagina a cui si è effettuato l'accesso può comunque visualizzare le informazioni ma non può inviare notifiche di sistema a quel dispositivo.",
              "Le credenziali sensibili, le informazioni sui compagni di classe e il trattamento tra regioni richiedono le notifiche, i motivi legali e le procedure di consenso applicabili ai sensi della legge. Questa politica spiega i flussi effettivi. Visualizzarlo, richiedere un codice QR di accesso o scansionare un codice QR non viene considerato come soddisfare ogni consenso richiesto separatamente. Non autorizzare account o informazioni che non hai il diritto di fornire."
            ]
          },
          {
            "title": "6. Cookie, archiviazione del browser e autorizzazioni",
            "paragraphs": [
              "La connessione del dispositivo utilizza un cookie rain_session; il server memorizza il suo hash. Oltre HTTPS ha gli attributi Secure, HttpOnly e SameSite=Strict e dura fino a 30 giorni con la connessione del dispositivo, reimpostandosi al rinnovo. È un cookie di autenticazione, non un cookie pubblicitario. La disconnessione da Rain Classroom non cancella automaticamente questo cookie di connessione del dispositivo.",
              "Le autorizzazioni del browser regolano le notifiche del dispositivo. Le pagine di co-studio e di invito-assistenza utilizzano la fotocamera solo dopo aver avviato attivamente la scansione e concesso l'accesso e possono anche accettare un'immagine. La decodifica QR avviene nel browser; viene inviato solo il testo decodificato, senza caricare video o immagini selezionate. Lo zoom della fotocamera utilizza lo zoom hardware o digitale supportato dal dispositivo. Microfono, posizione e contatti non sono richiesti."
            ]
          },
          {
            "title": "7. Destinatari, hosting e trasferimenti internazionali",
            "paragraphs": [
              "L'attuale istanza gestita da Sparkle viene eseguita su Tencent Cloud a Hong Kong, Cina. Se ti trovi nella Cina continentale o in un'altra regione, i dettagli dell'account, i cookie, i corsi, gli eventi e gli abbonamenti ai dispositivi inviati a questa istanza vengono trasferiti e archiviati a Hong Kong. L'autorizzazione e il monitoraggio comunicano anche con le API Rain Classroom ufficiali e i servizi per gli eventi in classe. Chiunque sia in possesso di un invito allo studio valido può leggere il nome visualizzato dell'invitante, il nome della classe, la data di scadenza e lo stato di elaborazione e inviare un codice QR per la classe specificata. Il testo decodificato passa attraverso il servizio di Hong Kong alle interfacce ufficiali Rain Classroom. L'amico non riceve i cookie, la password o l'elenco completo dei corsi dell'invitante. Condividi gli inviti solo con persone fidate a cui è consentito aiutare.",
              "A seconda del browser, Web Push utilizza infrastrutture come Apple, Google, Mozilla o Microsoft, che potrebbero elaborare dati in altri paesi o regioni. Il servizio invia payload push crittografati e le informazioni di instradamento necessarie all'endpoint di sottoscrizione; i browser e i sistemi operativi li visualizzano. Sul dispositivo possono essere visualizzate notifiche in testo normale. La crittografia push non significa che il server di promemoria non possa leggere i dati sottostanti.",
              "Cloudflare attualmente fornisce la registrazione del dominio e DNS. Nella configurazione esistente, il traffico dell'applicazione non passa attraverso il proxy CDN; L'elaborazione DNS implica ancora le informazioni di query necessarie. Non vendiamo né affittiamo informazioni personali. Le divulgazioni richieste dalla legge, la necessaria gestione della sicurezza o altri trasferimenti espressamente indicati dovrebbero essere limitati allo scopo pertinente."
            ]
          },
          {
            "title": "8. Crittografia e limiti di sicurezza",
            "paragraphs": [
              "Profili account, cache dei corsi, cookie di accesso, credenziali della classe, payload di eventi e abbonamenti push vengono archiviati utilizzando AES-256-GCM. Gli identificatori di account e dispositivo, le associazioni, i cambi, gli orari, gli stati e altri campi operativi non sono tutti crittografati individualmente. Il database e la chiave master sono gestiti sullo stesso host; non si tratta di una crittografia end-to-end in grado di resistere alla compromissione completa del server.",
              "Il servizio utilizza HTTPS, hashing della sessione, controlli dell'origine, limitazione della velocità ed endpoint push limitati. Gli amministratori autorizzati potrebbero avere l'accesso necessario per la decrittografia. In caso di incidente relativo alla sicurezza delle informazioni personali, intraprenderemo azioni correttive e informeremo le persone e le autorità interessate come richiesto dalla legge applicabile, spiegando le informazioni coinvolte, il possibile impatto, le misure adottate e le vie di contatto. La sicurezza assoluta non è promessa. Connetti solo dispositivi attendibili e non condividere codici di connessione, cookie, collegamenti di migrazione o notifiche private."
            ]
          },
          {
            "title": "9. Conservazione in linea",
            "paragraphs": [
              "Le connessioni del dispositivo durano 30 giorni dalla creazione o dal rinnovo manuale; una sessione scaduta non garantisce più l'accesso. L'autorizzazione ufficiale non valida sospende il monitoraggio pertinente. Quando l'ultimo dispositivo associato valido si disconnette, viene revocato o scade, la gestione della disconnessione o la manutenzione periodica cancellano i cookie di accesso dell'account e le credenziali della classe memorizzate e sospendono le connessioni.",
              "Le classi completate e i relativi record di consegna, gli eventi storici esterni alle classi attive e i record push simulati vengono puliti durante la manutenzione periodica utilizzando una soglia di 90 giorni nel codice. Le classi attive e i record correlati protetti potrebbero rimanere più a lungo. Le credenziali di migrazione sono monouso e scadono dopo cinque minuti. Gli inviti allo studio utilizzano token casuali. Un indice hash nella memoria del processo contiene il nome visualizzato dell'invitante, la classe specificata, la scadenza di circa 30 minuti, il conteggio dei tentativi e lo stato del risultato. Gli inviti scaduti non possono essere utilizzati e gli inviti non sopravvivono al riavvio del servizio. Le voci di memoria scadute vengono cancellate quando vengono creati gli inviti successivi, anziché garantire la cancellazione a livello di byte alla scadenza. Per la richiesta corrente viene utilizzato il testo QR decodificato; il modulo di studio non scrive i fotogrammi della fotocamera, le immagini selezionate o il testo QR nel database. I registri ufficiali di ingresso e i registri tecnici dell'infrastruttura seguono le rispettive regole di gestione effettive.",
              "L'attuale implementazione non prevede un periodo di eliminazione automatica uniforme per tutti i profili degli account, le cache dei corsi, i metadati del dispositivo, i campi di stato o i backup. Le regole di connessione di 30 giorni e di cronologia di 90 giorni non cancellano un intero account in quei momenti. Contatta i manutentori se smetti di utilizzare il servizio e desideri che i dati rimanenti vengano rimossi. L'assenza di pulizia automatizzata non consente la conservazione a tempo indeterminato. Quando i dati non sono più necessari o la cancellazione è richiesta per legge, agiremo ai sensi della legge applicabile e verificheremo l'ambito che richiede la gestione manuale."
            ]
          },
          {
            "title": "10. Backup, materiale di supporto e ambito della pulizia",
            "paragraphs": [
              "I backup di ripristino includono snapshot del database, chiavi di servizio, chiavi push e configurazione di origine. I backup esportati utilizzano una chiave dati casuale AES-256-GCM racchiusa in una chiave pubblica RSA-OAEP separata; la chiave privata di decrittazione viene conservata separatamente. Tuttavia, l'archiviazione nel cloud può anche conservare gli snapshot SQLite protetti dalle autorizzazioni dei file e i privilegi dell'host possono accedere ai dati operativi. La protezione del backup dipende quindi dal tipo di copia e da dove viene conservata.",
              "Il processo di backup esistente non ha una scadenza automatica uniforme; le esportazioni offline potrebbero rimanere. La rimozione dei dati online non cancella immediatamente i backup storici. Una richiesta di eliminazione può chiedere informazioni sui backup rimanenti, sui motivi di conservazione e sulle modalità di smaltimento. Ciò richiede la verifica manuale; non viene promessa alcuna cancellazione istantanea con un clic non implementata. Le conversazioni di supporto e gli allegati inviati vengono conservati secondo necessità per la questione, non per pubblicità o formazione."
            ]
          },
          {
            "title": "11. Disabilita, esci, revoca e richiedi l'eliminazione",
            "paragraphs": [
              "Puoi disattivare ciascuno dei cinque tipi di promemoria, revocare le notifiche di sistema, disconnetterti da Rain Classroom su questo dispositivo o interrompere il rinnovo di una connessione. L'interfaccia attuale non dispone di elenchi di dispositivi o controlli di revoca; contattare i manutentori per rivedere o revocare altri dispositivi. Un interruttore interrompe solo i promemoria corrispondenti di quel dispositivo. Il monitoraggio può continuare quando un altro dispositivo ha i promemoria abilitati. La disconnessione scollega questo dispositivo e rimuove la relativa sottoscrizione push lato server; le autorizzazioni del browser o lo stato dell'abbonamento potrebbero richiedere una gestione del sistema separata.",
              "Il rilascio delle credenziali di accesso dopo la partenza dell'ultimo dispositivo valido non cancella tutti i profili, la cronologia, gli altri metadati del dispositivo o i backup. Nel prodotto corrente non è presente alcun pulsante di eliminazione automatica dell'intero account. Contattare i manutentori per richiedere informazioni, accesso, copia, correzione, cancellazione, limitazione, revoca dell'autorizzazione o gestione di un'obiezione riguardante le informazioni di un'altra persona."
            ]
          },
          {
            "title": "12. Verifica, conservazione legale e rimedi",
            "paragraphs": [
              "Verifichiamo la relazione tra una richiesta e un conto in proporzione al rischio e chiediamo solo le informazioni necessarie. Non inviare cookie, password o credenziali di migrazione. Le richieste devono essere gestite tempestivamente come previsto dalla legge. Se la separazione tecnica, i backup, le controversie o gli obblighi di conservazione legale impediscono il completamento immediato, è necessario spiegarne le ragioni, l'ambito e le disposizioni successive. Laddove la legge richiede l’interruzione di altri trattamenti, i dati conservati sono limitati all’archiviazione e alla sicurezza necessarie anziché restituiti al monitoraggio ordinario. Il ripristino richiede il controllo delle richieste di diritti gestite in precedenza. I diritti statutari non si limitano ai pulsanti dell'interfaccia esistente. Puoi presentare un reclamo all'autorità di regolamentazione competente."
            ]
          },
          {
            "title": "13. Minori e contesti di apprendimento",
            "paragraphs": [
              "Il servizio è rivolto agli utenti in grado di autorizzare legalmente i propri account e dispositivi. I minorenni necessitano dell'apposita autorizzazione del tutore e devono seguire le regole della scuola. La connessione all'account non è rivolta ai bambini di età inferiore a 14. Attualmente non esiste un meccanismo di verifica dell’età; contattare i manutentori se le informazioni dei bambini potrebbero essere state elaborate senza la necessaria autorizzazione in modo che possano essere indagate e gestite ai sensi della legge.",
              "Nomi, numeri di studente ed eventi in classe vengono utilizzati come promemoria, non per giudicare la presenza o le prestazioni di un'altra persona. Restano autorevoli i registri scolastici e degli insegnanti attraverso i canali ufficiali."
            ]
          },
          {
            "title": "14. Modifiche e versioni linguistiche",
            "paragraphs": [
              "Le modifiche sostanziali alle categorie di dati, agli scopi, all'hosting o ai destinatari saranno descritte qui e datate. L'aggiornamento del testo o l'uso continuato non possono sostituire l'avviso aggiuntivo richiesto dalla legge, il consenso separato o altre procedure. Le versioni linguistiche mirano a descrivere lo stesso ambito; le differenze non riducono i tuoi diritti ai sensi della legge applicabile."
            ]
          },
          {
            "title": "15. Contatto",
            "paragraphs": [
              "Per domande sulla privacy, richieste di diritti, supporto o segnalazioni di violazioni, contattare il manutentore 唐梓耀 / AdrianSparkle su QQ all'indirizzo 2410710390. Il profilo pubblico dello sviluppatore è https://github.com/Tang1206cc. Identifica il prodotto, la versione e la tua richiesta. Non includere password, cookie di accesso, codici di connessione, intere registrazioni o informazioni personali non necessarie nel messaggio iniziale.",
              "Specifica \"Allerta pioggia / 雨水提醒\" e l'ambito della tua richiesta. Per le informazioni di un altro studente selezionato, fornisci informazioni minime sull'orario dell'evento e sul contesto del corso anziché pubblicare pubblicamente il nome completo e il numero dello studente."
            ]
          },
          {
            "title": "15. Pool di amici, autorizzazione individuale e assistenza allo studio condiviso",
            "paragraphs": [
              "Il pool di amici di Co-study include sempre il relativo proprietario e supporta fino a cinque amici, isolati in base all'account del proprietario e al dispositivo corrente. Ogni amico deve confermare personalmente l'accesso QR ufficiale. Il servizio memorizza l'identificatore dell'account restituito, il profilo visualizzato e la sessione ufficiale per verificare l'identità, mostrare lo stato di accesso e assistere nell'immissione in seguito a una richiesta di scansione attiva. Le password degli amici non vengono né richieste né memorizzate. Le credenziali ufficiali vengono elaborate dal server, non esclusivamente sul telefono di scansione. Le sessioni degli amici vengono mantenute al di fuori della tabella dell'account promemoria del proprietario e non abilitano automaticamente i promemoria in classe per tali amici.",
              "I profili e le credenziali degli amici sono crittografati in un database di amici separato. Associazioni proprietario/dispositivo, stati, timestamp e altri campi operativi non equivalgono alla crittografia dell'intero database. L'attuale titolare del dispositivo può visualizzare i nomi visualizzati degli amici, gli avatar disponibili e lo stato di accesso e avviare l'assistenza. Gli amici devono comprendere questo ambito e autorizzare solo dispositivi attendibili e consentiti. Il servizio può recuperare avatar visualizzati da fonti ufficiali autorizzate, le cui regole regolano tali richieste.",
              "Aiuta gli amici a studiare insieme a utilizzare la fotocamera o un'immagine solo quando lo avvii. Il browser decodifica il QR localmente. Il servizio riceve il testo e utilizza la sessione di ciascun account in pool separatamente per controllare la classe, inviare richieste supportate e verificare i risultati ufficiali. Ciò può modificare i record di ingresso ufficiali; non risponde agli esercizi né agli appelli. Il video e le immagini selezionate non vengono caricate; per tale operazione viene utilizzato il testo decodificato. I lavori e i risultati vengono conservati temporaneamente nella memoria del processo, non come registrazioni permanenti o come prova della presenza fisica.",
              "La rimozione di un amico elimina il record corrispondente di quel pool e invalida i vecchi lavori senza inviare una richiesta di disconnessione ufficiale per l'amico. La disconnessione, il cambio dell'account proprietario o la revoca del dispositivo invalidano le credenziali degli amici per quel pool di proprietario/dispositivo. I dispositivi scaduti vengono gestiti durante la manutenzione. Le relazioni e i profili di amicizia rimangono come record non validi, senza una scadenza uniforme per la cancellazione automatica; autorizzare nuovamente lo stesso amico o richiedere l'eliminazione. Gli altri pool di dispositivi validi non sono interessati. Un accesso ufficiale del proprietario scaduto non invalida automaticamente le credenziali degli amici mentre la sessione del dispositivo rimane valida, quindi gli amici validi potrebbero comunque essere assistiti. Il database degli amici separato è incluso nei backup crittografati esistenti; l'eliminazione dei record online non cancella contemporaneamente i backup storici."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Termini di servizio degli avvisi pioggia",
        "intro": "Rain Alert fornisce notifiche supplementari sugli eventi in classe. Presta particolare attenzione all'autorizzazione dell'account, all'effetto concreto delle richieste di check-in ordinario e ai limiti della consegna push.",
        "sections": [
          {
            "title": "1. Ambito, fornitore e accettazione",
            "paragraphs": [
              "I presenti termini si applicano all'app Web Rain Alert e all'istanza di promemoria gestita sotto Sparkle da 唐梓耀 / AdrianSparkle e 丁铭 / EliasSparkle. Leggili prima di connetterti, autorizzare un account o abilitare i promemoria. Non intraprendere queste azioni se non sei d'accordo. Il solo uso continuato non stabilisce il consenso richiesto separatamente o l'autorizzazione del tutore."
            ]
          },
          {
            "title": "2. Strumento indipendente e canali ufficiali",
            "paragraphs": [
              "Rain Alert non è un prodotto ufficiale di Rain Classroom, di una scuola o di un insegnante. Questa pagina non rivendica alcuna partnership, agenzia o approvazione da parte di Rain Classroom, WeChat, Apple o fornitori di browser. Scuole, insegnanti e registri ufficiali Rain Classroom determinano orari, incarichi, presenze e voti.",
              "Il prodotto integra i clienti ufficiali, gli annunci in classe, il controllo manuale e le tue responsabilità di partecipazione. Al momento non fornisce promemoria completi per tutti i compiti pre-lezione o post-lezione, gli esami o gli annunci scolastici."
            ]
          },
          {
            "title": "3. Idoneità e connessioni affidabili",
            "paragraphs": [
              "Devi essere autorizzato a utilizzare l'account e il dispositivo e seguire le regole della scuola, dell'insegnante e della piattaforma. Non connettere account non autorizzati, prendere in prestito sessioni. I minorenni necessitano dell'autorizzazione del tutore come previsto dalla legge; i bambini di età inferiore a 14 non devono connettere gli account.",
              "Conferma solo gli accessi QR ufficiali che hai avviato. Non fornire password a manutentori, moduli web o estranei. La home page corrente non necessita di codice di connessione. La richiesta di un codice QR crea una sessione del dispositivo; i dati dell'account Rain Classroom associato sono accessibili solo dopo aver confermato l'accesso."
            ]
          },
          {
            "title": "4. Trattamento autorizzato",
            "paragraphs": [
              "Dopo la conferma QR, il server deve archiviare e utilizzare le credenziali di accesso ufficiali per interrogare i dettagli dell'account, i corsi, le lezioni in corso e gli eventi necessari in classe e inviare notifiche ai dispositivi registrati. L'Informativa sulla privacy spiega dati, destinatari, hosting di Hong Kong e conservazione. Creando attivamente un invito allo studio, incarichi inoltre il servizio di utilizzare la tua sessione ufficiale per elaborare il codice QR di ingresso corrispondente di un amico per quella classe specificata. Gli inviti durano circa 30 minuti. Controllare il destinatario, il nome visualizzato e le informazioni sulla classe mostrate prima della condivisione. Ciò non garantisce all'amico né la tua password, né i cookie, né l'accesso ad altre classi.",
              "Comprendi tale ambito prima di abilitare i promemoria. L'autorizzazione non è il permesso di leggere materiale non correlato, pubblicare i tuoi corsi, eseguire attività di marketing o addestrare modelli di intelligenza artificiale."
            ]
          },
          {
            "title": "5. Promemoria in classe ed effetti del check-in",
            "paragraphs": [
              "L'abilitazione di promemoria per esercizi, selezione casuale, risposta rapida o disponibilità di commenti consente al servizio di ottenere l'autorizzazione dell'aula in base alle regole della piattaforma. Laddove la piattaforma identifichi esplicitamente un check-in ordinario, il servizio potrà inviare automaticamente una richiesta di ingresso in aula. Tale richiesta può creare record di ingresso o check-in sulla piattaforma ufficiale. Il servizio non è interamente di sola lettura.",
              "Puoi invitare attivamente un amico a scansionare un codice QR corrispondente all'ingresso in classe, limitato al normale flusso QR verificato. Posizione, flussi sconosciuti e altre restrizioni non supportate richiedono ancora il client ufficiale. Il servizio non falsifica la posizione, non decifra i codici QR, non risponde agli esercizi, non risponde agli appelli né invia risposte rapide. L'ingresso automatico e lo studio con gli amici devono seguire le regole della scuola, dell'insegnante e della piattaforma. Lo stato di registrazione dell'account non deve essere rappresentato come presenza fisica o utilizzato per falsificare la presenza."
            ]
          },
          {
            "title": "6. Cambiamenti, test e contenuti di notifica",
            "paragraphs": [
              "Vengono controllati cinque tipi di promemoria per dispositivo. L'autorizzazione del sistema e gli interruttori dei singoli promemoria sono impostazioni diverse. Il push testing invia cinque messaggi simulati chiaramente etichettati anche se gli interruttori corrispondenti sono disattivati, senza modificarli. Il successo del test non verifica l'origine dell'evento in classe dal vivo.",
              "Le notifiche di selezione casuale possono mostrare nomi e numeri di studenti annunciati alla classe. Altre notifiche mostrano i riepiloghi dei corsi e degli eventi. Gestisci anteprime e dispositivi condivisi e non inoltrare pubblicamente le informazioni dei compagni di classe. Se la piattaforma non fornisce un orario di inizio affidabile, l'orario di rilevamento visualizzato non è l'orario di inizio della lezione."
            ]
          },
          {
            "title": "7. Tempismo e affidabilità",
            "paragraphs": [
              "Il polling a circa cinque secondi in condizioni normali funziona insieme alle connessioni agli eventi in classe. Questa non è una scadenza di consegna o una garanzia del livello di servizio. Modifiche alla piattaforma, reti, manutenzione, risparmio energetico, autorizzazioni, fornitori push, policy del browser, accesso non valido o abbinamento scaduto possono ritardare, omettere, ripetere o interrompere i messaggi.",
              "“Accettato tramite servizio push” conferma l'accettazione di una richiesta. Una ricevuta del dispositivo conferma la gestione del sistema, non che una persona abbia letto o ascoltato la notifica. Continua a controllare i canali ufficiali; non fare affidamento esclusivamente su questo strumento per presenze, esami o scadenze importanti."
            ]
          },
          {
            "title": "8. Dispositivi, scadenza e migrazione dell'origine",
            "paragraphs": [
              "Le connessioni del dispositivo normalmente durano 30 giorni. Durante gli ultimi sette giorni viene visualizzata una richiesta di rinnovo. La denominazione dei dispositivi, l'elenco dei dispositivi e i controlli di revoca non sono disponibili nell'interfaccia corrente; contattare i manutentori per indagare e revocare connessioni sconosciute. L'autorizzazione ufficiale o le sessioni del dispositivo scadute influiscono sul monitoraggio e sui promemoria.",
              "I punti di ingresso legacy principali e conservati sono origini distinte del browser. Una credenziale monouso da cinque minuti esegue la migrazione dell'account, delle impostazioni e della cronologia necessaria; l'autorizzazione alla notifica deve essere concessa nuovamente sulla nuova origine. Un collegamento di migrazione conferisce un accesso temporaneo e non deve essere condiviso. La disattivazione del vecchio abbonamento dipende dalla corretta registrazione di quello nuovo."
            ]
          },
          {
            "title": "9. Uso accettabile",
            "paragraphs": [
              "Non aggirare i controlli della scuola o della piattaforma, falsificare la frequenza, rubare o condividere credenziali, raccogliere dati di persone non correlate, molestare o violare i diritti, abusare della consegna push, attaccare interfacce o rivendere accessi non autorizzati. Non utilizzare corsi, nomi, numeri di studenti o attività di apprendimento per profili pubblicitari o visibilità pubblica.",
              "L'uso ordinario deve comunque rispettare le regole della piattaforma e della scuola; il prodotto non può ottenere l'autorizzazione di terze parti per te. Se trovi un dispositivo sconosciuto o una consegna errata, disattiva i promemoria pertinenti e contatta gli addetti alla manutenzione per indagare e revocare il dispositivo."
            ]
          },
          {
            "title": "10. Disponibilità, tariffe, supporto e modifiche",
            "paragraphs": [
              "Il servizio è attualmente in fase di test pubblico. Non vengono promesse disponibilità permanente, accesso gratuito permanente, tempi di risposta fissi e capacità specifica. Qualsiasi addebito, sottoscrizione o nuova condizione sostanziale deve essere chiaramente comunicata prima di entrare in vigore e seguire le procedure richieste. Questi termini da soli non creano alcun obbligo di pagamento.",
              "La manutenzione, la sicurezza, la capacità e le modifiche a monte potrebbero richiedere aggiustamenti o sospensioni. Laddove ragionevolmente prevedibile, dovrebbero essere fornite spiegazioni e indicazioni adeguate per la migrazione, l'esportazione o l'interruzione. I rischi urgenti possono richiedere prima le azioni necessarie e, se del caso, una spiegazione, senza eliminare gli obblighi legali."
            ]
          },
          {
            "title": "11. Disconnessione, sospensione e risoluzione",
            "paragraphs": [
              "Puoi disattivare i promemoria, disconnetterti, chiedere ai manutentori di revocare i dispositivi o interrompere l'utilizzo del servizio. Scollegando l'ultimo dispositivo valido vengono rilasciate le credenziali di accesso. L'Informativa sulla privacy spiega separatamente i profili rimanenti, la cronologia e i backup; la sospensione non elimina automaticamente un intero account.",
              "Evidenti abusi, violazioni o rischi per la sicurezza possono giustificare la limitazione delle connessioni pertinenti nella misura necessaria, con motivazioni e opportunità di feedback o correzione, ove appropriato. Gli obblighi applicabili in materia di riservatezza, proprietà intellettuale e protezione dei dati sopravvivono alla risoluzione."
            ]
          },
          {
            "title": "12. Diritti, garanzie e responsabilità",
            "paragraphs": [
              "Mantieni i diritti sulle tue informazioni. I materiali del corso appartengono ai rispettivi titolari dei diritti. Il trattamento non garantisce al servizio un utilizzo illimitato o diritti di sublicenza. La licenza del prodotto e i termini dei componenti sono riportati nella Licenza software e nelle Comunicazioni di terze parti.",
              "Nella misura consentita dalla legge, il servizio viene fornito nelle sue condizioni disponibili senza la promessa di un funzionamento continuo e senza errori o di una consegna tempestiva di ogni messaggio. La responsabilità dipende dai fatti, dalla colpa e dalla legge applicabile. Permane la responsabilità per cattiva condotta intenzionale, negligenza grave, lesioni personali, trattamento illecito dei dati personali e altre questioni non escludibili, così come i rimedi obbligatori per il consumatore."
            ]
          },
          {
            "title": "13. Controversie, interpretazioni e revisioni",
            "paragraphs": [
              "Contatta i manutentori per domande o controversie. Rimani libero di chiedere sollievo a un tribunale o a un regolatore con giurisdizione legale, senza arbitrato obbligatorio, un tribunale straniero designato o rinuncia ai diritti legali. Una disposizione inapplicabile non invalida le disposizioni efficaci in modo autonomo.",
              "Le revisioni materiali saranno datate e seguiranno le procedure di notifica o consenso richieste. Le versioni linguistiche mirano a essere equivalenti; le differenze di traduzione non escludono la tutela giuridica locale."
            ]
          },
          {
            "title": "14. Contatto",
            "paragraphs": [
              "Per domande sulla privacy, richieste di diritti, supporto o segnalazioni di violazioni, contattare il manutentore 唐梓耀 / AdrianSparkle su QQ all'indirizzo 2410710390. Il profilo pubblico dello sviluppatore è https://github.com/Tang1206cc. Identifica il prodotto, la versione e la tua richiesta. Non includere password, cookie di accesso, codici di connessione, intere registrazioni o informazioni personali non necessarie nel messaggio iniziale."
            ]
          },
          {
            "title": "15. Autorizzazione del pool di amici e limiti dell'assistenza",
            "paragraphs": [
              "Ogni amico deve confermare personalmente l'accesso al QR ufficiale e comprendere che il servizio di promemoria memorizza le credenziali e l'intestatario del conto corrente/dispositivo può avviare l'assistenza. Non conservare, trasferire o utilizzare la sessione di un'altra persona senza autorizzazione né eludere le regole della scuola, dell'insegnante o della piattaforma ufficiale. L'inclusione del proprietario e di un massimo di cinque amici non stabilisce alcun diritto all'accesso o al check-in in alcuna classe.",
              "I collegamenti di invito e i pool di amici sono flussi separati: non è necessario che l'assistente di un collegamento effettui l'accesso, mentre ogni amico del pool deve autorizzare individualmente. L'assistenza richiede la scansione attiva di un codice QR della classe applicabile, con risultati verificati separatamente per account. I registri di presentazione, attesa e ingresso non dimostrano la presenza fisica. I flussi limitati o non supportati richiedono ancora il client ufficiale; non è garantita la disponibilità per ogni scuola, classe o account. Consulta l'informativa sulla privacy per disconnessione, rimozione, scadenza, backup e dati rimanenti."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Licenza del software e del servizio Rain Alert",
        "intro": "Questa licenza spiega l'uso consentito del codice e dell'interfaccia originali dell'app Web. L'accesso non garantisce la ridistribuzione della fonte, la distribuzione indipendente o i diritti di marchio Sparkle. I componenti open source mantengono le proprie licenze.",
        "sections": [
          {
            "title": "1. Titolari dei diritti e ambito di applicazione",
            "paragraphs": [
              "I diritti sul codice, sull'interfaccia, sulla grafica e sulla documentazione originali di Rain Alert rimangono dei rispettivi titolari dei diritti. Sparkle è gestito da 唐梓耀 / AdrianSparkle e 丁铭 / EliasSparkle. Questa licenza copre l'accesso al client e al servizio dell'app Web fornita, senza modificare i contenuti di terze parti o le autorizzazioni open source."
            ]
          },
          {
            "title": "2. Cliente limitato e autorizzazione di accesso",
            "paragraphs": [
              "In base ai Termini di servizio, ricevi un diritto limitato, non esclusivo, non trasferibile e non cedibile in sublicenza per accedere al servizio effettivamente reso disponibile, caricare ed eseguire il codice client fornito con le sue pagine e utilizzare l'installazione ordinaria del browser come l'aggiunta alla schermata iniziale sui dispositivi che possiedi o che sei autorizzato a utilizzare. Puoi connettere gli account che hai diritto ad autorizzare tramite le funzionalità supportate.",
              "Utilizza i flussi supportati per connettere il tuo account o quello di un amico dopo che l'amico ha autorizzato personalmente l'accesso QR ufficiale al pool. Ciò non garantisce alcun diritto sull'account, sul corso o sulla piattaforma oltre all'autorizzazione originale."
            ]
          },
          {
            "title": "3. Diritti non concessi nel codice originale",
            "paragraphs": [
              "La visibilità o la scaricabilità degli script del browser non colloca il codice originale sotto una licenza open source. Salvo quanto consentito dalla legge o autorizzato separatamente per iscritto, non ridistribuire il prodotto, modificare e gestire un servizio indipendente, confezionarlo per la vendita, affittarlo, concederlo in sublicenza, rimuovere avvisi sui diritti o offrire interfacce backend come servizio commerciale non autorizzato. Queste prenotazioni del software non limitano l'uso legittimo dei dati del tuo account."
            ]
          },
          {
            "title": "4. Eccezioni legali e ricerca",
            "paragraphs": [
              "Questa licenza non limita i backup, l'interoperabilità, la ricerca sulla sicurezza o altri diritti che la legge applicabile non consente di escludere da un contratto. La ricerca non deve comportare accesso illegale alle credenziali, violazioni della privacy o interruzione del servizio live. Segnala le vulnerabilità con i dettagli di riproduzione minimi necessari, senza pubblicare chiavi valide o dati utente."
            ]
          },
          {
            "title": "5. Priorità delle licenze dei componenti",
            "paragraphs": [
              "Il servizio utilizza Express, qrcode, hard-cookie, web-push e le relative dipendenze. Versioni esatte, dichiarazioni di copyright e testi si trovano nelle Avvisi di terze parti. Includono MIT, ISC, BSD-3-Clause, Apache-2.0 e MPL-2.0; non sono tutti del MIT. La pagina Studia con gli amici utilizza anche il decoder jsQR con licenza Apache-2.0, la cui licenza indipendente ha anch'essa la priorità.",
              "Ciascun componente può essere utilizzato, modificato o distribuito con la propria licenza. Le restrizioni sul software proprietario non prevalgono sulle autorizzazioni dei componenti indipendenti in conflitto. web-push utilizza MPL-2.0; una copia sorgente della versione utilizzata è fornita qui. Fornire il codice sorgente non rilascia l'intero progetto Rain Alert come open source."
            ]
          },
          {
            "title": "6. Dati, piattaforme e marchi",
            "paragraphs": [
              "Non viene concesso alcun diritto aggiuntivo sui contenuti del corso Rain Classroom, sulle informazioni di altri studenti o sulle API della piattaforma ufficiale. Mantieni i diritti legali sulle tue informazioni. Sparkle, Rain Alert e marchi e marchi di terze parti mantengono le rispettive protezioni. Non impersonare un operatore ufficiale né rivendicare partnership, certificazioni o approvazioni inesistenti."
            ]
          },
          {
            "title": "7. Distribuzione e rivendita indipendenti",
            "paragraphs": [
              "L'accesso non include la consegna dell'origine backend, l'amministrazione del server, la rivendita del servizio o l'autorizzazione di distribuzione indipendente. Ottenere un'autorizzazione separata esplicita, se necessario. La presenza di package.json, elenchi di dipendenze o codice leggibile in una directory di sviluppo non è una concessione open source generale per il progetto originale."
            ]
          },
          {
            "title": "8. Durata, risoluzione e aggiornamenti",
            "paragraphs": [
              "Questa licenza si applica durante l'uso legittimo del client e del servizio fornito. È possibile interrompere l'utilizzo e rimuovere la voce dalla schermata iniziale. Violazioni sostanziali possono comportare restrizioni di accesso legittime con una ragionevole opportunità di correzione ove appropriato e rimediabile. La risoluzione non estingue i diritti legali sui dati, le responsabilità maturate o le licenze open source indipendenti.",
              "Gli aggiornamenti rimangono soggetti a questa licenza a meno che non siano accompagnati da termini diversi. L'accesso non garantisce il funzionamento perpetuo, il mantenimento di una versione particolare o la compatibilità indefinita. Le modifiche sostanziali seguono i Termini di servizio e la legge applicabile."
            ]
          },
          {
            "title": "9. Garanzie e responsabilità",
            "paragraphs": [
              "Nella misura consentita dalla legge, il software e il servizio vengono forniti nelle condizioni in cui sono disponibili. Le garanzie e le responsabilità sono determinate dai Termini di servizio, dagli impegni effettivi e dalla legge applicabile. Rimangono la tutela obbligatoria del consumatore, gli obblighi inescludibili di protezione dei dati, la responsabilità per dolo o colpa grave e altri diritti obbligatori."
            ]
          },
          {
            "title": "10. Richieste di licenza",
            "paragraphs": [
              "Per domande sulla privacy, richieste di diritti, supporto o segnalazioni di violazioni, contattare il manutentore 唐梓耀 / AdrianSparkle su QQ all'indirizzo 2410710390. Il profilo pubblico dello sviluppatore è https://github.com/Tang1206cc. Identifica il prodotto, la versione e la tua richiesta. Non includere password, cookie di accesso, codici di connessione, intere registrazioni o informazioni personali non necessarie nel messaggio iniziale.",
              "Per l'implementazione del team, la licenza della fonte, la cooperazione commerciale o l'uso del marchio, spiegare l'uso previsto e contattare i titolari dei diritti. I diritti di proprietà sul software non espressamente concessi sono riservati."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Rain Alert Avvisi di terze parti e open source",
        "intro": "L’inventario è stato verificato rispetto al file package-lock.json corrente e ai pacchetti installati: comprende 110 dipendenze di produzione. I testi originali dei diritti d’autore e delle licenze sono disponibili qui sotto e non attribuiscono all’intero prodotto un’unica licenza.",
        "sections": [
          {
            "title": "1. Principali dipendenze",
            "paragraphs": [
              "Express 5.3.0 (MIT) gestisce il routing HTTP; qrcode 1.5.4 (MIT) genera immagini QR di accesso; tough-cookie 6.0.2 (BSD-3-Clause) gestisce i cookie ufficiali di sessione; web-push 3.6.7 (MPL-2.0) gestisce le richieste Web Push e la crittografia. L'inventario completo include le dipendenze transitive in base alla posizione di installazione, anziché solo questi quattro pacchetti. La pagina del browser Studia con gli amici utilizza inoltre jsQR (Apache-2.0) per decodificare i codici QR sul dispositivo. Questo componente del browser è separato dal conteggio delle dipendenze di produzione di Node.js riportato sopra. La licenza originale fornita con il prodotto corrente viene fornita separatamente; i termini del software proprietario non diminuiscono le sue autorizzazioni indipendenti."
            ]
          },
          {
            "title": "2. Testi originali, fonte e ambito",
            "paragraphs": [
              "L'avviso scaricabile conserva i testi LICENSE, LICENCE, COPYING e NOTICE presenti nei pacchetti selezionati. Il pacchetto http_ece 1.2.0 installato non dispone di un file di licenza separato; il suo testo MIT è preso dal tag upstream v1.2.0 corrispondente con la sorgente registrata. A ZIP contiene separatamente l'origine del componente web-push, README, package.json e la licenza per esaminare i file coperti da MPL.",
              "Questo è l'inventario delle dipendenze della produzione del progetto corrente. Ciò non implica che ogni dipendenza del server venga fornita al browser o sostituisca gli avvisi richiesti durante la ridistribuzione di Node.js, sistemi operativi o software aggiuntivo. I testi a monte mantengono la loro lingua originale e regolano i diritti dei componenti."
            ]
          },
          {
            "title": "3. Relazioni ed elaborazione della piattaforma",
            "paragraphs": [
              "Rain Classroom, WeChat e l'infrastruttura di notifica del browser sono gestiti dai rispettivi titolari dei diritti. I promemoria indipendenti che utilizzano l'autorizzazione dell'account e le relative interfacce non implicano la loro approvazione. L'utilizzo su dispositivi Apple, come app Web nella schermata iniziale o tramite Web Push non significa che Apple ha creato, recensito o garantisce questo prodotto. Il trattamento della piattaforma e i flussi di dati di questo servizio sono descritti nelle rispettive policy e nella Privacy Policy di questo prodotto."
            ]
          },
          {
            "title": "4. Diritti e rapporti sulla sicurezza",
            "paragraphs": [
              "Se un'attribuzione, un inventario, una fornitura di fonti o un avviso di copyright appare incompleto, comunica ai manutentori il pacchetto, la versione e le prove in modo che possano essere controllati e corretti. Non pubblicare le credenziali dell'utente quando si segnalano problemi di sicurezza.",
              "Per domande sulla privacy, richieste di diritti, supporto o segnalazioni di violazioni, contattare il manutentore 唐梓耀 / AdrianSparkle su QQ all'indirizzo 2410710390. Il profilo pubblico dello sviluppatore è https://github.com/Tang1206cc. Identifica il prodotto, la versione e la tua richiesta. Non includere password, cookie di accesso, codici di connessione, intere registrazioni o informazioni personali non necessarie nel messaggio iniziale."
            ]
          }
        ],
        "links": [
          {
            "label": "Licenza originale jsQR Apache-2.0 · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "nl": {
      "privacy": {
        "title": "Privacybeleid voor regenwaarschuwing",
        "intro": "Rain Alert maakt verbinding met Rain Classroom via een herinneringsservice en stuurt meldingen naar uw apparaten. Het verwerkt daarom accountautorisatie, cursusinformatie en meldingsgegevens op een server. Controleer dit bereik voordat u een account koppelt of autoriseert.",
        "sections": [
          {
            "title": "1. Reikwijdte en beheerders",
            "paragraphs": [
              "雨水提醒 (Rain Alert) is een onafhankelijke webapp voor herinnering aan klasgebeurtenissen onder Sparkle, gemaakt en onderhouden door 唐梓耀 / AdrianSparkle en 丁铭 / EliasSparkle. Dit beleid heeft betrekking op de door Sparkle beheerde instantie, het koppelen van apparaten, Rain Classroom QR-autorisatie, toezicht in het klaslokaal en Web Push. Dit beleid heeft ook betrekking op controles van de toegang tot het klaslokaal en Studeer met vrienden-uitnodigingen die u actief aanmaakt.",
              "Het is geen officieel product van Rain Classroom en vertegenwoordigt geen scholen, leraren, Rain Classroom, WeChat, Apple of browserleveranciers. Voor hun diensten gelden aparte privacyregels. Onafhankelijk geëxploiteerde instanties vereisen openbaarmaking van hun eigen exploitanten; onze hosting- en administratieregelingen zijn niet automatisch op hen van toepassing."
            ]
          },
          {
            "title": "2. Accountgegevens, cursussen en inloggegevens",
            "paragraphs": [
              "Als u een officiële QR-code voor inloggen aanvraagt, wordt er automatisch een apparaatsessie aangemaakt; er is geen verbindingscode vereist. Nadat u de officiële QR-aanmelding heeft bevestigd, ontvangt de service de account-ID, naam of bijnaam, school- en studentnummer geretourneerd door Rain Classroom, samen met ingeschreven cursussen, klaslokaal-ID's, namen, docenten en gerelateerde organisatie-ID's. Deze identificeren het account en geven cursussen weer.",
              "De server slaat ook officiële login-cookies, sessieautorisatie en noodzakelijke klaslokaaltokens op om door te gaan met zoeken nadat u de pagina heeft gesloten. Wij vragen uw Rain Classroom- of WeChat-wachtwoord niet op en slaan deze ook niet op. Cookies en tokens kunnen login-autoriteit vertegenwoordigen en vereisen speciale bescherming. Bij scannen wordt de autorisatie niet uitsluitend op uw telefoon bewaard."
            ]
          },
          {
            "title": "3. Klasevenementen en informatie over anderen",
            "paragraphs": [
              "De service vraagt naar lopende lessen, noodzakelijke leerlogboeken en incheckmodi. Als herinneringen tijdens de les zijn ingeschakeld, ontvangt hij de officiële gebeurtenisstroom in de klas. Opgeslagen meldingsvelden omvatten namen van cursussen en klaslokalen, gebeurtenistypen en identificatiegegevens, platform- of detectietijden en noodzakelijke samenvattingen.",
              "Willekeurige selectiegebeurtenissen kunnen namen en leerlingnummers bevatten die door de leraar aan de klas zijn aangekondigd. Deze kunnen worden opgeslagen in gecodeerde gebeurtenisrecords en worden weergegeven in meldingsinstanties, inclusief informatie over klasgenoten. Beheer previews op het vergrendelscherm en gedeelde apparaten zorgvuldig en publiceer deze gegevens niet opnieuw. De dienst gebruikt ze niet om studenten te profileren.",
              "De huidige implementatie bewaart geen vraagtekst of antwoorden als permanente herinneringsinhoud, beantwoordt geen vragen, reageert niet op appèls of snelle antwoorden, of verzamelt de apparaatlocatie. Bij gewone aanwezigheid kan een toegangsverzoek worden geactiveerd via ingeschakelde herinneringen tijdens de les. Je kunt ook actief een vriend uitnodigen voor een les waarvan is bevestigd dat hij niet is ingeschreven; de vriend verzendt de gedecodeerde tekst van een overeenkomende QR-code in het klaslokaal, en de service gebruikt de officiële sessie van de uitnodiger voor de geverifieerde normale toegangsstroom. Deze verzoeken kunnen de officiële toegangs- of aanwezigheidsgegevens wijzigen; zie de Servicevoorwaarden."
            ]
          },
          {
            "title": "4. Apparaten, meldingen en technische informatie",
            "paragraphs": [
              "We verwerken willekeurige apparaat-ID's, gehashte verbindingssessies, apparaatlabels, aanmaak- en laatst geopende tijden, vervaldatum van 30 dagen, accountkoppelingen en herinneringswisselingen. De initiële apparaatcategorie is afgeleid van de browser User-Agent. Het hernoemen van apparaten en de apparatenlijst zijn niet zichtbaar in de huidige interface; de gerelateerde gegevens- en beheereindpunten blijven bestaan.",
              "Wanneer u meldingen inschakelt, levert de browser een push-eindpunt, een openbare sleutel p256dh en een auth-geheim. De server slaat het abonnement op dat naar dat apparaat moet worden verzonden. Bezorgpogingen, geaccepteerde of mislukte status, tijdstempels en hashes van willekeurige ontvangstbewijzen ondersteunen probleemoplossing, deduplicatie en bevestiging van systeemafhandeling. Een ontvangstbewijs bewijst niet dat u een melding hebt gezien, gehoord of gelezen.",
              "Het aanbieden van een netwerkdienst omvat het verwerken van IP-adressen, verzoekheaders, oorsprong, verbindingstijden en foutinformatie. IP-adressen ondersteunen ook het beperken van misbruik in het geheugen. De huidige app heeft geen SDK voor advertentie- of gedragsanalyse en gebruikt deze gegevens niet voor cross-site tracking of het verkopen van persoonlijke informatie. Infrastructuur- en communicatieproviders mogen technische logs volgens hun eigen regels verwerken."
            ]
          },
          {
            "title": "5. Doeleinden en autorisatiegrenzen",
            "paragraphs": [
              "Deze gegevens ondersteunen het koppelen, het identificeren van uw geautoriseerde account, het opvragen en weergeven van lessen, het verzenden van geselecteerde evenementen, het onderhouden van sessies, het migreren van de oorsprong, het beschermen van de beveiliging, het oplossen van problemen en het herstel. Account- en cursusgegevens worden niet gebruikt voor advertenties, commerciële profilering of AI-training. Zonder QR-autorisatie kunnen cursussen niet worden gelezen. Zonder toestemming voor meldingen kan een ingelogde pagina nog steeds informatie weergeven, maar kunnen er geen systeemmeldingen naar dat apparaat worden verzonden.",
              "Voor gevoelige inloggegevens, informatie over klasgenoten en verwerking tussen regio's zijn de kennisgevingen, rechtsgronden en toestemmingsprocedures vereist die volgens de wet van toepassing zijn. Dit beleid legt de feitelijke stromen uit. Het bekijken ervan, het aanvragen van een QR-code voor inloggen of het scannen van een QR-code wordt niet beschouwd als het voldoen aan elke afzonderlijk vereiste toestemming. Geef geen toestemming voor accounts of informatie waartoe u geen recht heeft."
            ]
          },
          {
            "title": "6. Cookies, browseropslag en machtigingen",
            "paragraphs": [
              "Apparaatverbinding maakt gebruik van een rain_session-cookie; de server slaat zijn hash op. Vanaf HTTPS heeft het de kenmerken Secure, HttpOnly en SameSite=Strict en gaat het tot 30 dagen mee met de apparaatverbinding, waarbij het wordt gereset bij verlenging. Het is een authenticatiecookie, geen advertentiecookie. Als u zich afmeldt bij Rain Classroom, wordt deze apparaatverbindingscookie niet automatisch gewist.",
              "Browsermachtigingen bepalen apparaatmeldingen. Co-studie- en uitnodigingshulppagina's gebruiken de camera alleen nadat u actief begint met scannen en toegang verleent, en kunnen ook een afbeelding accepteren. QR-decodering gebeurt in de browser; alleen gedecodeerde tekst wordt ingediend, zonder video of geselecteerde afbeeldingen te uploaden. Camerazoom maakt gebruik van hardware of digitale zoom, afhankelijk van wat het apparaat ondersteunt. Microfoon, locatie en contacten worden niet gevraagd."
            ]
          },
          {
            "title": "7. Ontvangers, hosting en internationale overdrachten",
            "paragraphs": [
              "De huidige door Sparkle beheerde instantie draait op Tencent Cloud in Hong Kong, China. Als u zich op het vasteland van China of in een andere regio bevindt, worden accountgegevens, cookies, cursussen, evenementen en apparaatabonnementen die naar deze instantie worden verzonden, overgebracht naar en opgeslagen in Hong Kong. Autorisatie en monitoring communiceren ook met officiële Rain Classroom API's en diensten voor klasevenementen. Iedereen die een geldige studie-uitnodiging heeft, kan de weergavenaam, de naam van de klas, de vervaltijd en de verwerkingsstatus van de uitnodiger lezen en een QR-code voor de opgegeven klas indienen. Gedecodeerde tekst gaat via de Hong Kong-service naar officiële Rain Classroom-interfaces. De vriend ontvangt de cookies, het wachtwoord of de volledige cursuslijst van de uitnodiger niet. Deel uitnodigingen alleen met vertrouwde mensen die mogen helpen.",
              "Afhankelijk van de browser maakt Web Push gebruik van infrastructuur zoals Apple, Google, Mozilla of Microsoft, die gegevens in andere landen of regio's kunnen verwerken. De service verzendt gecodeerde push-payloads en noodzakelijke routeringsinformatie naar het abonnementseindpunt; browsers en besturingssystemen geven deze weer. Notificaties in platte tekst kunnen op het apparaat verschijnen. Push-encryptie betekent niet dat de herinneringsserver de onderliggende gegevens niet kan lezen.",
              "Cloudflare biedt momenteel domeinregistratie en DNS. Onder de bestaande configuratie passeert applicatieverkeer niet via de CDN-proxy; DNS-verwerking omvat nog steeds de noodzakelijke query-informatie. Wij verkopen of verhuren geen persoonlijke informatie. Openbaarmakingen die wettelijk verplicht zijn, noodzakelijke veiligheidsafhandelingen of andere door u uitdrukkelijk aangegeven overdrachten moeten beperkt blijven tot het relevante doel."
            ]
          },
          {
            "title": "8. Encryptie- en beveiligingslimieten",
            "paragraphs": [
              "Accountprofielen, cursuscaches, inlogcookies, klasgegevens, payloads van evenementen en push-abonnementen worden opgeslagen met behulp van AES-256-GCM. Account- en apparaat-ID's, associaties, schakelaars, tijden, statussen en andere operationele velden zijn niet allemaal individueel gecodeerd. De database en de hoofdsleutel worden op dezelfde host beheerd; dit is geen end-to-end-codering die bestand is tegen volledige servercompromis.",
              "De service maakt gebruik van HTTPS, sessiehashing, oorsprongscontroles, snelheidsbeperking en beperkte push-eindpunten. Geautoriseerde beheerders hebben mogelijk toegang nodig voor decodering. Bij een beveiligingsincident op het gebied van persoonlijke informatie zullen we corrigerende maatregelen nemen en de getroffen mensen en autoriteiten op de hoogte stellen, zoals vereist door de toepasselijke wetgeving, waarbij we de betrokken informatie, de mogelijke impact, de genomen maatregelen en de contactroutes uitleggen. Er wordt geen absolute veiligheid beloofd. Verbind alleen vertrouwde apparaten en deel geen verbindingscodes, cookies, migratielinks of privémeldingen."
            ]
          },
          {
            "title": "9. Online retentie",
            "paragraphs": [
              "Apparaatverbindingen duren 30 dagen vanaf creatie of handmatige verlenging; een verlopen sessie geeft geen toegang meer. Ongeldige officiële autorisatie onderbreekt relevante monitoring. Wanneer het laatste geldige gekoppelde apparaat zich afmeldt, wordt ingetrokken of verloopt, wist de uitlogverwerking of het periodieke onderhoud de inlogcookies van het account en de opgeslagen klasgegevens en worden de verbindingen onderbroken.",
              "Voltooide klassen en hun leveringsrecords, historische gebeurtenissen buiten actieve klassen en gesimuleerde pushrecords worden tijdens periodiek onderhoud opgeschoond met behulp van een drempelwaarde van 90-dagen in de code. Actieve klassen en beschermde gerelateerde records kunnen langer blijven bestaan. Migratiegegevens zijn voor eenmalig gebruik en verlopen na vijf minuten. Studie-uitnodigingen maken gebruik van willekeurige tokens. Een hash-index in het procesgeheugen bevat de weergavenaam van de uitnodiger, de opgegeven klasse, de vervaldatum van ongeveer 30 minuten, het aantal pogingen en de resultaatstatus. Verlopen uitnodigingen kunnen niet worden gebruikt en uitnodigingen overleven een herstart van de service niet. Verlopen geheugengegevens worden gewist wanneer latere uitnodigingen worden aangemaakt, in plaats van gegarandeerde verwijdering op byteniveau bij het verlopen. Voor het huidige verzoek wordt gedecodeerde QR-tekst gebruikt; de studiemodule schrijft geen cameraframes, geselecteerde afbeeldingen of QR-tekst naar de database. Officiële toegangsgegevens en technische infrastructuurlogboeken volgen hun respectievelijke feitelijke verwerkingsregels.",
              "De huidige implementatie kent geen uniforme automatische verwijderingsperiode voor alle accountprofielen, cursuscaches, apparaatmetagegevens, statusvelden of back-ups. De regels voor de verbinding van 30 dagen en de geschiedenis van 90 dagen wissen op die momenten niet een volledig account. Neem contact op met beheerders als u stopt met het gebruik van de service en wilt dat de resterende gegevens worden verwijderd. Het ontbreken van geautomatiseerde opschoning is geen toestemming voor onbepaalde bewaring. Wanneer gegevens niet langer nodig zijn of verwijdering wettelijk vereist is, zullen we handelen onder de toepasselijke wetgeving en verifiëren we de omvang van de handmatige verwerking."
            ]
          },
          {
            "title": "10. Back-ups, ondersteuningsmateriaal en opschoonbereik",
            "paragraphs": [
              "Herstelback-ups omvatten database-snapshots, servicesleutels, push-keys en oorsprongconfiguratie. Geëxporteerde back-ups gebruiken een willekeurige AES-256-GCM gegevenssleutel omwikkeld met een afzonderlijke RSA-OAEP openbare sleutel; de privésleutel voor decodering wordt afzonderlijk bewaard. Cloudopslag kan echter ook SQLite-snapshots bewaren die zijn beschermd door bestandsrechten, en hostrechten hebben toegang tot operationele gegevens. De back-upbeveiliging is daarom afhankelijk van het type kopie en de plaats waar deze wordt bewaard.",
              "Het bestaande back-upproces kent geen uniforme automatische afloop; offline export kan blijven bestaan. Door online gegevens te verwijderen, worden historische back-ups niet onmiddellijk gewist. Bij een verwijderingsverzoek kan worden gevraagd naar de resterende back-ups, bewaarredenen en beschikkingsregelingen. Dit vereist handmatige verificatie; Er wordt geen ongeïmplementeerd onmiddellijk wissen met één klik beloofd. Ondersteuningsgesprekken en ingediende bijlagen worden bewaard indien nodig voor de betreffende kwestie, niet voor reclame of training."
            ]
          },
          {
            "title": "11. Uitschakelen, uitloggen, intrekken en verwijdering aanvragen",
            "paragraphs": [
              "U kunt elk van de vijf herinneringstypen uitschakelen, systeemmeldingen intrekken, uitloggen bij Rain Classroom op dit apparaat of stoppen met het vernieuwen van een verbinding. De huidige interface heeft geen apparatenlijst of intrekkingscontrole; neem contact op met beheerders om andere apparaten te beoordelen of in te trekken. Een schakelaar stopt alleen de bijbehorende herinneringen van dat apparaat. De bewaking kan doorgaan als op een ander apparaat herinneringen zijn ingeschakeld. Uitloggen ontkoppelt dit apparaat en verwijdert het push-abonnement op de server; browsermachtigingen of abonnementsstatus vereisen mogelijk afzonderlijk systeembeheer.",
              "Als u inloggegevens vrijgeeft nadat het laatste geldige apparaat is vertrokken, worden niet alle profielen, geschiedenis, andere metagegevens van het apparaat of back-ups gewist. Er is geen knop voor het automatisch verwijderen van het hele account in het huidige product. Neem contact op met beheerders voor het aanvragen van informatie, toegang, een kopie, correctie, verwijdering, beperking, intrekking van autorisatie of afhandeling van een bezwaar met betrekking tot de informatie van iemand anders."
            ]
          },
          {
            "title": "12. Verificatie, wettelijke bewaring en rechtsmiddelen",
            "paragraphs": [
              "Wij verifiëren de relatie tussen een aanvraag en een account in verhouding tot het risico en vragen alleen om noodzakelijke informatie. Stuur geen cookies, wachtwoorden of migratiereferenties. Verzoeken moeten onmiddellijk worden afgehandeld, zoals vereist door de wet. Als technische scheiding, back-ups, geschillen of wettelijke bewaarplichten onmiddellijke voltooiing in de weg staan, moeten de redenen, reikwijdte en daaropvolgende regelingen worden uitgelegd. Waar de wet vereist dat andere verwerkingen worden stopgezet, worden bewaarde gegevens beperkt tot de noodzakelijke opslag en beveiliging in plaats van terug te keren naar gewone monitoring. Voor herstel is het controleren van eerder afgehandelde rechtenverzoeken vereist. Wettelijke rechten zijn niet beperkt tot bestaande interfaceknoppen. U kunt een klacht indienen bij de bevoegde toezichthouder."
            ]
          },
          {
            "title": "13. Minoren en leercontexten",
            "paragraphs": [
              "De service is bedoeld voor gebruikers die hun accounts en apparaten op wettige wijze kunnen autoriseren. Minderjarigen hebben de juiste toestemming van een voogd nodig en moeten de schoolregels volgen. Accountkoppeling is niet gericht op kinderen onder 14. Er bestaat momenteel geen mechanisme voor leeftijdsverificatie; Neem contact op met beheerders als de gegevens van kinderen mogelijk zonder de vereiste toestemming zijn verwerkt, zodat deze volgens de wet kunnen worden onderzocht en afgehandeld.",
              "Namen, leerlingnummers en klasgebeurtenissen worden gebruikt ter herinnering, niet om de aanwezigheid of prestaties van iemand anders te beoordelen. School- en lerarengegevens via officiële kanalen blijven gezaghebbend."
            ]
          },
          {
            "title": "14. Wijzigingen en taalversies",
            "paragraphs": [
              "Wezenlijke wijzigingen in gegevenscategorieën, doeleinden, hosting of ontvangers worden hier beschreven en gedateerd. Het bijwerken van tekst of voortgezet gebruik kan de wettelijk vereiste aanvullende kennisgeving, afzonderlijke toestemming of andere procedures niet vervangen. De taalversies zijn bedoeld om dezelfde reikwijdte te beschrijven; verschillen doen geen afbreuk aan uw rechten onder de toepasselijke wetgeving."
            ]
          },
          {
            "title": "15. Contacteer",
            "paragraphs": [
              "Voor privacyvragen, rechtenverzoeken, ondersteuning of meldingen van inbreuken kunt u contact opnemen met de beheerder 唐梓耀 / AdrianSparkle op QQ op 2410710390. Het openbare profiel van de ontwikkelaar is https://github.com/Tang1206cc. Identificeer het product, de versie en uw verzoek. Neem geen wachtwoorden, login-cookies, verbindingscodes, volledige opnames of onnodige persoonlijke informatie op in uw eerste bericht.",
              "Specificeer “Regenwaarschuwing / 雨水提醒” en de reikwijdte van uw verzoek. Geef voor de informatie van een andere geselecteerde student een minimale gebeurtenistijd en cursuscontext op, in plaats van publiekelijk een volledige naam en studentnummer te posten."
            ]
          },
          {
            "title": "15. Vriendenpools, individuele autorisatie en hulp bij medestudie",
            "paragraphs": [
              "De co-studievriendenpool omvat altijd de eigenaar en ondersteunt maximaal vijf vrienden, geïsoleerd op basis van het eigenaarsaccount en het huidige apparaat. Elke vriend moet persoonlijk de officiële QR-aanmelding bevestigen. De service slaat de geretourneerde account-ID, het weergaveprofiel en de officiële sessie op om de identiteit te verifiëren, de inlogstatus weer te geven en te helpen bij toegang na een actief scanverzoek. Vriendwachtwoorden worden niet gevraagd en ook niet opgeslagen. Officiële inloggegevens worden door de server verwerkt, en niet alleen door de scantelefoon. Vriendensessies worden buiten de herinneringsaccounttabel van de eigenaar bewaard en schakelen niet automatisch klasherinneringen in voor die vrienden.",
              "Vriendprofielen en inloggegevens worden gecodeerd in een aparte vriendendatabase. Eigenaar-/apparaatkoppelingen, statussen, tijdstempels en andere operationele velden komen niet neer op versleuteling van de hele database. De huidige apparaathouder kan de weergavenamen van vrienden, beschikbare avatars en inlogstatus bekijken en hulp initiëren. Vrienden moeten deze reikwijdte begrijpen en alleen vertrouwde, toegestane apparaten autoriseren. De service kan weergaveavatars ophalen van toegestane officiële bronnen, waarvan de regels deze verzoeken beheersen.",
              "Help vrienden meestudie gebruiken de camera of een afbeelding alleen wanneer u deze initieert. De browser decodeert de QR lokaal. De service ontvangt de tekst en gebruikt de sessie van elke samengevoegde account afzonderlijk om het klaslokaal te controleren, ondersteunde verzoeken in te dienen en officiële resultaten te verifiëren. Dit kan officiële invoergegevens wijzigen; het beantwoordt geen oefeningen en reageert ook niet op appèls. Video en geselecteerde afbeeldingen worden niet geüpload; Voor die bewerking wordt gedecodeerde tekst gebruikt. Taken en resultaten worden tijdelijk in het procesgeheugen bewaard, niet als permanente registratie of bewijs van fysieke aanwezigheid.",
              "Als u een vriend verwijdert, wordt de overeenkomende record van die pool verwijderd en worden oude vacatures ongeldig zonder dat er een officieel uitlogverzoek voor de vriend wordt verzonden. Als u zich afmeldt, van eigenaarsaccount wisselt of het apparaat intrekt, worden de inloggegevens van vrienden voor die eigenaar/apparaatpool ongeldig. Tijdens het onderhoud worden verlopen apparaten behandeld. Vriendschapsrelaties en profielen blijven ongeldige records, zonder een uniforme deadline voor automatische verwijdering; dezelfde vriend opnieuw autoriseren of verwijdering aanvragen. De pools van andere geldige apparaten blijven onaangetast. Een verlopen officiële login van de eigenaar maakt de inloggegevens van een vriend niet automatisch ongeldig zolang de apparaatsessie geldig blijft. Geldige vrienden kunnen dus nog steeds worden geholpen. De aparte vriendendatabase is opgenomen in bestaande gecodeerde back-ups; het verwijderen van online records wist niet tegelijkertijd historische back-ups."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Servicevoorwaarden voor regenwaarschuwing",
        "intro": "Rain Alert biedt aanvullende meldingen over gebeurtenissen in het klaslokaal. Besteed bijzondere aandacht aan accountautorisatie, het daadwerkelijke effect van gewone incheckverzoeken en de grenzen van push-bezorging.",
        "sections": [
          {
            "title": "1. Reikwijdte, aanbieder en acceptatie",
            "paragraphs": [
              "Deze voorwaarden zijn van toepassing op de Rain Alert Web App en herinneringsinstantie die wordt onderhouden onder Sparkle door 唐梓耀 / AdrianSparkle en 丁铭 / EliasSparkle. Lees ze voordat u verbinding maakt, een account autoriseert of herinneringen inschakelt. Onderneem deze acties niet als u het er niet mee eens bent. Voortgezet gebruik alleen leidt niet tot de vereiste toestemming of autorisatie van een voogd."
            ]
          },
          {
            "title": "2. Onafhankelijke tool en officiële kanalen",
            "paragraphs": [
              "Rain Alert is geen officieel product van Rain Classroom, een school of een leraar. Deze pagina claimt geen partnerschap, agentschap of goedkeuring door Rain Classroom, WeChat, Apple of browserleveranciers. Scholen, leraren en officiële Rain Classroom-gegevens bepalen roosters, opdrachten, aanwezigheid en cijfers.",
              "Het product is een aanvulling op officiële klanten, aankondigingen in de klas, handmatige controle en uw eigen aanwezigheidsverantwoordelijkheden. Het biedt momenteel geen uitgebreide herinneringen voor alle opdrachten vóór of na de les, examens of schoolaankondigingen."
            ]
          },
          {
            "title": "3. Geschiktheid en vertrouwde verbindingen",
            "paragraphs": [
              "Je moet geautoriseerd zijn om het account en het apparaat te gebruiken en de regels van school, leraar en platform te volgen. Verbind geen ongeautoriseerde accounts en leen geen sessies. Voor minderjarigen is toestemming van een voogd vereist, zoals vereist door de wet; kinderen onder 14 mogen geen accounts koppelen.",
              "Bevestig alleen officiële QR-aanmeldingen die u heeft geïnitieerd. Geef geen wachtwoorden aan beheerders, webformulieren of vreemden. De huidige startpagina heeft geen verbindingscode nodig. Door een QR-code aan te vragen ontstaat er een apparaatsessie; de gegevens van het gekoppelde Rain Classroom-account zijn alleen toegankelijk nadat u de aanmelding heeft bevestigd."
            ]
          },
          {
            "title": "4. Geautoriseerde verwerking",
            "paragraphs": [
              "Na QR-bevestiging moet de server officiële inloggegevens opslaan en gebruiken om accountgegevens, cursussen, lopende lessen en noodzakelijke klasevenementen op te vragen en geregistreerde apparaten op de hoogte te stellen. In het privacybeleid worden gegevens, ontvangers, hosting in Hongkong en retentie uitgelegd. Door actief een studie-uitnodiging aan te maken, geeft u de service ook opdracht om uw officiële sessie te gebruiken om de overeenkomende QR-code van een vriend voor die specifieke les te verwerken. Uitnodigingen duren ongeveer 30 minuten. Controleer de ontvanger en de weergegeven naam en klasinformatie voordat u deze deelt. Hierdoor krijgt de vriend noch uw wachtwoord, noch cookies, noch toegang tot andere lessen.",
              "Begrijp dat bereik voordat u herinneringen inschakelt. Autorisatie betekent geen toestemming om niet-gerelateerd materiaal te lezen, uw cursussen te publiceren, marketing uit te voeren of AI-modellen te trainen."
            ]
          },
          {
            "title": "5. Herinneringen in de klas en incheckeffecten",
            "paragraphs": [
              "Door oefen-, willekeurige selectie-, snelle-antwoord- of commentaarbeschikbaarheidsherinneringen in te schakelen, kan de service klasautorisatie verkrijgen volgens de platformregels. Wanneer het platform expliciet een gewone check-in identificeert, kan de dienst automatisch een verzoek tot toegang tot het klaslokaal verzenden. Met dat verzoek kunnen toegangs- of incheckgegevens op het officiële platform worden aangemaakt. De service is niet volledig alleen-lezen.",
              "U kunt actief een vriend uitnodigen om een overeenkomende QR-code voor een klaslokaal te scannen, beperkt tot de geverifieerde normale QR-stroom. Locatie, onbekende stromen en andere niet-ondersteunde beperkingen vereisen nog steeds de officiële client. De dienst vervalst de locatie niet, kraakt geen QR-codes, beantwoordt oefeningen, reageert niet op appèls of geeft geen snelle antwoorden. Automatische toegang en studeren met vrienden moeten voldoen aan de regels van school, leraar en platform. De status van accountinvoer mag niet worden weergegeven als fysieke aanwezigheid of worden gebruikt om aanwezigheid te vervalsen."
            ]
          },
          {
            "title": "6. Switches, testen en notificatie-inhoud",
            "paragraphs": [
              "Per apparaat worden vijf soorten herinneringen beheerd. Systeemtoestemming en individuele herinneringsschakelaars zijn verschillende instellingen. Met pushtests worden vijf duidelijk gelabelde gesimuleerde berichten verzonden, zelfs als de bijbehorende schakelaars zijn uitgeschakeld, zonder deze te wijzigen. Succesvol testen verifieert de bron van de live gebeurtenis in het klaslokaal niet.",
              "Bij willekeurige selectiemeldingen kunnen namen en studentnummers worden weergegeven die aan de klas zijn bekendgemaakt. Andere meldingen tonen samenvattingen van cursussen en evenementen. Beheer voorbeelden en gedeelde apparaten en stuur de informatie van klasgenoten niet publiekelijk door. Als het platform geen betrouwbare starttijd levert, is de weergegeven detectietijd niet de starttijd van de les."
            ]
          },
          {
            "title": "7. Timing en betrouwbaarheid",
            "paragraphs": [
              "Pollen op ongeveer vijf seconden onder normale omstandigheden werkt samen met klaslokaal-gebeurtenisverbindingen. Dit is geen leveringstermijn of serviceniveaugarantie. Platformwijzigingen, netwerken, onderhoud, energiebesparing, machtigingen, push-leveranciers, browserbeleid, ongeldige login of verlopen koppelingen kunnen berichten vertragen, weglaten, herhalen of stopzetten.",
              "“Geaccepteerd door push-service” bevestigt de aanvaarding van een verzoek. Een ontvangstbewijs van het apparaat bevestigt de afhandeling van het systeem, niet dat iemand de melding heeft gelezen of gehoord. Blijf officiële kanalen controleren; vertrouw niet uitsluitend op deze tool voor aanwezigheid, examens of belangrijke deadlines."
            ]
          },
          {
            "title": "8. Apparaten, vervaldatum en herkomstmigratie",
            "paragraphs": [
              "Apparaatverbindingen duren normaal gesproken 30 dagen. Gedurende de laatste zeven dagen verschijnt er een verlengingsprompt. Apparaatnaamgeving, de apparaatlijst en intrekkingsopties zijn niet beschikbaar in de huidige interface; Neem contact op met beheerders om onbekende verbindingen te onderzoeken en in te trekken. Verlopen officiële autorisatie of apparaatsessies hebben invloed op de monitoring en herinneringen.",
              "De belangrijkste en behouden oude toegangspunten zijn verschillende browseroorsprongen. Met een inloggegevens voor eenmalig gebruik van vijf minuten worden het account, de instellingen en de benodigde geschiedenis gemigreerd; notificatietoestemming moet opnieuw worden verleend op de nieuwe oorsprong. Een migratielink geeft tijdelijke toegang en mag niet worden gedeeld. Deactivering van het oude abonnement is afhankelijk van een succesvolle registratie van het nieuwe abonnement."
            ]
          },
          {
            "title": "9. Acceptabel gebruik",
            "paragraphs": [
              "Omzeil de school- of platformcontroles niet, vervals de aanwezigheid, steel of deel geen inloggegevens, verzamel geen gegevens van niet-verwante mensen, intimideren of inbreuk maken op rechten, misbruik push-levering, val interfaces niet aan, of verkoop ongeautoriseerde toegang door. Gebruik geen cursussen, namen, studentnummers of leeractiviteiten voor reclameprofielen of publieke bekendheid.",
              "Normaal gebruik moet nog steeds voldoen aan de platform- en schoolregels; het product kan geen toestemming van derden voor u verkrijgen. Als u een onbekend apparaat of een onjuiste levering aantreft, schakelt u de relevante herinneringen uit en neemt u contact op met de beheerders om het apparaat te onderzoeken en in te trekken."
            ]
          },
          {
            "title": "10. Beschikbaarheid, kosten, ondersteuning en wijzigingen",
            "paragraphs": [
              "De service wordt momenteel openbaar getest. Permanente beschikbaarheid, permanente vrije toegang, vaste responstijden en specifieke capaciteit worden niet beloofd. Eventuele kosten, abonnementen of materiële nieuwe voorwaarden moeten duidelijk worden bekendgemaakt voordat ze van kracht worden en de vereiste procedures moeten worden gevolgd. Deze voorwaarden alleen scheppen geen betalingsverplichting.",
              "Onderhoud, beveiliging, capaciteit en upstream-veranderingen vereisen mogelijk aanpassing of opschorting. Waar redelijkerwijs te verwachten is, moeten passende uitleg en begeleiding voor migratie, export of stopzetting worden gegeven. Urgente risico's vereisen mogelijk eerst de noodzakelijke actie en indien nodig een uitleg, zonder dat wettelijke verplichtingen worden opgeheven."
            ]
          },
          {
            "title": "11. Afmelden, opschorting en beëindiging",
            "paragraphs": [
              "U kunt herinneringen uitschakelen, uitloggen, beheerders vragen apparaten in te trekken of stoppen met het gebruik van de service. Als u het laatste geldige apparaat ontkoppelt, worden de inloggegevens vrijgegeven. In het Privacybeleid worden de resterende profielen, geschiedenis en back-ups apart uitgelegd; stopzetting verwijdert niet automatisch een volledig account.",
              "Duidelijke misbruik-, inbreuk- of veiligheidsrisico's kunnen het beperken van relevante verbindingen in de noodzakelijke mate rechtvaardigen, met redenen en een mogelijkheid voor feedback of correctie waar nodig. Toepasselijke plichten op het gebied van vertrouwelijkheid, intellectueel eigendom en gegevensbescherming blijven ook na beëindiging bestaan."
            ]
          },
          {
            "title": "12. Rechten, garanties en verantwoordelijkheid",
            "paragraphs": [
              "U behoudt rechten op uw gegevens. Cursusmateriaal is eigendom van de rechthebbenden. De verwerking verleent de dienst geen onbeperkt gebruik of sublicentierechten. Productlicentie- en componentvoorwaarden staan ​​vermeld in de softwarelicenties en kennisgevingen van derden.",
              "Voor zover toegestaan door de wet, wordt de service geleverd in de beschikbare staat, zonder belofte van een foutloze, continue werking of tijdige bezorging van elk bericht. De verantwoordelijkheid hangt af van feiten, fouten en toepasselijk recht. De aansprakelijkheid voor opzettelijk wangedrag, grove nalatigheid, persoonlijk letsel, onrechtmatige verwerking van persoonlijke informatie en andere niet-uitsluitbare zaken blijft bestaan, evenals verplichte rechtsmiddelen voor consumenten."
            ]
          },
          {
            "title": "13. Geschillen, interpretatie en herzieningen",
            "paragraphs": [
              "Neem contact op met beheerders bij vragen of geschillen. Het staat u vrij om hulp te zoeken bij een rechtbank of toezichthouder met wettige jurisdictie, zonder verplichte arbitrage, een aangewezen buitenlandse rechtbank of afstand van wettelijke rechten. Een niet-afdwingbare bepaling maakt onafhankelijk van kracht zijnde bepalingen niet ongeldig.",
              "Materiële herzieningen worden gedateerd en volgen de vereiste kennisgevings- of toestemmingsprocedures. Taalversies streven ernaar gelijkwaardig te zijn; vertaalverschillen sluiten lokale rechtsbescherming niet uit."
            ]
          },
          {
            "title": "14. Contacteer",
            "paragraphs": [
              "Voor privacyvragen, rechtenverzoeken, ondersteuning of meldingen van inbreuken kunt u contact opnemen met de beheerder 唐梓耀 / AdrianSparkle op QQ op 2410710390. Het openbare profiel van de ontwikkelaar is https://github.com/Tang1206cc. Identificeer het product, de versie en uw verzoek. Neem geen wachtwoorden, login-cookies, verbindingscodes, volledige opnames of onnodige persoonlijke informatie op in uw eerste bericht."
            ]
          },
          {
            "title": "15. Autorisatie- en hulpgrenzen van vriendenpool",
            "paragraphs": [
              "Elke vriend moet persoonlijk de officiële QR-aanmelding bevestigen en begrijpen dat de herinneringsservice inloggegevens opslaat en dat de huidige account-/apparaathouder hulp kan initiëren. Bewaar, draag of gebruik de sessie van iemand anders niet zonder toestemming en omzeil de regels van school, leraar of officieel platform niet. Als u de eigenaar en maximaal vijf vrienden meeneemt, ontstaat er geen recht op toegang tot of inchecken in een klaslokaal.",
              "Uitnodigingslinks en vriendenpools zijn afzonderlijke stromen: de helper van een link hoeft niet in te loggen, terwijl elke samengevoegde vriend individueel toestemming moet geven. Hulp vereist het actief scannen van een toepasselijke QR-code in het klaslokaal, waarbij de resultaten afzonderlijk per account worden geverifieerd. Inzendings-, wacht- en toegangsgegevens vormen geen bewijs van fysieke aanwezigheid. Voor beperkte of niet-ondersteunde stromen is nog steeds de officiële client vereist; beschikbaarheid voor elke school, klaslokaal of account wordt niet beloofd. Zie het privacybeleid voor afmelden, verwijderen, verlopen, back-ups en resterende gegevens."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Rain Alert-software en servicelicentie",
        "intro": "In deze licentie wordt het toegestane gebruik van de originele code en interface van de webapp uitgelegd. Toegang verleent geen herdistributie van de bron, onafhankelijke implementatie of Sparkle merkrechten. Open-sourcecomponenten behouden hun eigen licenties.",
        "sections": [
          {
            "title": "1. Rechthebbenden en reikwijdte",
            "paragraphs": [
              "De rechten op de originele code, interface, afbeeldingen en documentatie van Rain Alert blijven eigendom van hun respectieve rechthebbenden. Sparkle wordt onderhouden door 唐梓耀 / AdrianSparkle en 丁铭 / EliasSparkle. Deze licentie dekt toegang tot de geleverde Web App-client en -service, zonder de inhoud van derden of open-sourcemachtigingen te wijzigen."
            ]
          },
          {
            "title": "2. Beperkte client- en toegangsrechten",
            "paragraphs": [
              "Met inachtneming van de Servicevoorwaarden ontvangt u een beperkt, niet-exclusief, niet-overdraagbaar, niet-sublicentieerbaar recht om toegang te krijgen tot de dienst die daadwerkelijk beschikbaar is gesteld, om de clientcode die bij de pagina's wordt geleverd te laden en uit te voeren, en om een gewone browserinstallatie te gebruiken, zoals het toevoegen aan het startscherm op apparaten waarvan u de eigenaar bent of die u mag gebruiken. U kunt accounts koppelen waarvoor u autorisatie kunt verlenen via ondersteunde functies.",
              "Gebruik ondersteunde stromen om uw eigen account of het account van een vriend te koppelen nadat die vriend persoonlijk de officiële QR-aanmelding voor de pool heeft geautoriseerd. Dit verleent geen account-, cursus- of platformrechten buiten de oorspronkelijke autorisatie."
            ]
          },
          {
            "title": "3. Rechten die niet zijn verleend in de originele code",
            "paragraphs": [
              "De zichtbaarheid of downloadbaarheid van browserscripts plaatst de originele code niet onder een open-sourcelicentie. Tenzij de wet dit toestaat of afzonderlijk schriftelijk is toegestaan, mag u het product niet opnieuw distribueren, een onafhankelijke service wijzigen en exploiteren, het voor verkoop verpakken, verhuren, in sublicentie geven, rechtenkennisgevingen verwijderen of backend-interfaces aanbieden als een ongeautoriseerde commerciële service. Deze softwarereserveringen beperken het rechtmatige gebruik van gegevens uit uw eigen account niet."
            ]
          },
          {
            "title": "4. Wettelijke uitzonderingen en onderzoek",
            "paragraphs": [
              "Deze licentie beperkt geen back-ups, interoperabiliteit, beveiligingsonderzoek of andere rechten waarvan de toepasselijke wetgeving niet toestaat dat een contract deze uitsluit. Bij onderzoek mag geen sprake zijn van onwettige toegang tot inloggegevens, schendingen van de privacy of verstoring van de live-service. Rapporteer kwetsbaarheden met minimaal noodzakelijke reproductiedetails, zonder geldige sleutels of gebruikersgegevens te publiceren."
            ]
          },
          {
            "title": "5. Prioriteit van componentlicenties",
            "paragraphs": [
              "De service maakt gebruik van Express, qrcode, tough-cookie, web-push en hun afhankelijkheden. Exacte versies, copyrightverklaringen en teksten staan ​​in Kennisgevingen van derden. Deze omvatten MIT, ISC, BSD-3-Clause, Apache-2.0 en MPL-2.0; ze zijn niet allemaal MIT. De pagina Studeren met vrienden maakt ook gebruik van de Apache-2.0-gelicentieerde jsQR-decoder, waarvan de onafhankelijke licentie eveneens voorrang heeft.",
              "Elk onderdeel mag onder zijn eigen licentie worden gebruikt, gewijzigd of gedistribueerd. Beperkingen op propriëtaire software overschrijven conflicterende machtigingen voor onafhankelijke componenten niet. web-push gebruikt MPL-2.0; een bronkopie van de gebruikte versie vindt u hier. Door het leveren van componentsource wordt niet het gehele Rain Alert-project als open source vrijgegeven."
            ]
          },
          {
            "title": "6. Gegevens, platforms en handelsmerken",
            "paragraphs": [
              "Er worden geen extra rechten verleend op Rain Classroom cursusinhoud, informatie van andere studenten of officiële platform-API's. U behoudt de wettelijke rechten op uw gegevens. Sparkle, Rain Alert en merken en merken van derden behouden hun respectieve bescherming. Doe u niet voor als een officiële exploitant en claim geen niet-bestaande partnerschappen, certificeringen of goedkeuringen."
            ]
          },
          {
            "title": "7. Onafhankelijke implementatie en wederverkoop",
            "paragraphs": [
              "Toegang omvat niet de levering van de backend-bron, serverbeheer, wederverkoop van diensten of onafhankelijke implementatietoestemming. Zorg indien nodig voor expliciete afzonderlijke toestemming. De aanwezigheid van package.json, afhankelijkheidslijsten of leesbare code in een ontwikkelingsdirectory is geen algemene open source-subsidie ​​voor het oorspronkelijke project."
            ]
          },
          {
            "title": "8. Duur, beëindiging en updates",
            "paragraphs": [
              "Deze licentie is van toepassing tijdens rechtmatig gebruik van de geleverde cliënt en dienst. U kunt het gebruik stopzetten en de vermelding op het startscherm verwijderen. Materiële schendingen kunnen resulteren in wettige toegangsbeperkingen met een redelijke mogelijkheid om waar nodig en herstelbaar te corrigeren. Beëindiging doet de wettelijke gegevensrechten, opgebouwde verantwoordelijkheden of onafhankelijke open-sourcelicenties niet teniet.",
              "Updates blijven onderworpen aan deze licentie, tenzij er andere voorwaarden bij horen. Access garandeert geen eeuwigdurende werking, onderhoud van een bepaalde versie of onbepaalde compatibiliteit. Materiële wijzigingen volgen de Servicevoorwaarden en de toepasselijke wetgeving."
            ]
          },
          {
            "title": "9. Garanties en verantwoordelijkheid",
            "paragraphs": [
              "Voor zover wettelijk toegestaan, worden software en diensten geleverd in de staat waarin ze beschikbaar zijn. Garanties en verantwoordelijkheid worden bepaald door de Servicevoorwaarden, feitelijke verplichtingen en toepasselijke wetgeving. Verplichte consumentenbescherming, niet-uitsluitbare gegevensbeschermingsplichten, aansprakelijkheid voor opzettelijk wangedrag of grove nalatigheid en andere verplichte rechten blijven bestaan."
            ]
          },
          {
            "title": "10. Licentievragen",
            "paragraphs": [
              "Voor privacyvragen, rechtenverzoeken, ondersteuning of meldingen van inbreuken kunt u contact opnemen met de beheerder 唐梓耀 / AdrianSparkle op QQ op 2410710390. Het openbare profiel van de ontwikkelaar is https://github.com/Tang1206cc. Identificeer het product, de versie en uw verzoek. Neem geen wachtwoorden, login-cookies, verbindingscodes, volledige opnames of onnodige persoonlijke informatie op in uw eerste bericht.",
              "Voor teaminzet, bronlicenties, commerciële samenwerking of merkgebruik dient u het beoogde gebruik uit te leggen en contact op te nemen met de houders van rechten. Eigen softwarerechten die niet uitdrukkelijk worden verleend, zijn voorbehouden."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Regenwaarschuwing van derden en open source-kennisgevingen",
        "intro": "De inventaris is gecontroleerd aan de hand van het huidige package-lock.json en de geïnstalleerde pakketten en omvat 110 productieafhankelijkheden. De oorspronkelijke auteursrechten en licentieteksten staan hieronder. Deze geven niet het hele product één gezamenlijke licentie.",
        "sections": [
          {
            "title": "1. Belangrijkste afhankelijkheden",
            "paragraphs": [
              "Express 5.3.0 (MIT) verwerkt HTTP routing; qrcode 1.5.4 (MIT) genereert QR-afbeeldingen voor inloggen; tough-cookie 6.0.2 (BSD-3-Clause) beheert officiële sessiecookies; web-push 3.6.7 (MPL-2.0) handelt Web Push-verzoeken en codering af. De volledige inventaris omvat transitieve afhankelijkheden per installatielocatie, in plaats van alleen deze vier pakketten. De browserpagina Studeren met vrienden maakt bovendien gebruik van jsQR (Apache-2.0) om QR-codes op het apparaat te decoderen. Deze browsercomponent staat los van het bovenstaande aantal Node.js-productieafhankelijkheid. De originele licentie zoals meegeleverd met het huidige product wordt afzonderlijk verstrekt; De voorwaarden voor propriëtaire software doen niets af aan de onafhankelijke toestemmingen ervan."
            ]
          },
          {
            "title": "2. Originele teksten, bron en reikwijdte",
            "paragraphs": [
              "De downloadbare kennisgeving bevat de teksten LICENSE, LICENCE, COPYING en NOTICE die in de aangevinkte pakketten voorkomen. Het geïnstalleerde http_ece 1.2.0 pakket mist een apart licentiebestand; de MIT-tekst is afkomstig van de overeenkomende upstream v1.2.0-tag met de opgenomen bron. Een ZIP bevat afzonderlijk de web-push-componentbron, README, package.json en licentie voor het onderzoeken van bestanden die onder MPL vallen.",
              "Dit is de inventaris van de productieafhankelijkheid van het huidige project. Het betekent niet dat elke serverafhankelijkheid aan de browser wordt doorgegeven of kennisgevingen vervangt die vereist zijn bij het opnieuw distribueren van Node.js, besturingssystemen of aanvullende software. Upstream-teksten behouden hun oorspronkelijke taal en beheersen de componentrechten."
            ]
          },
          {
            "title": "3. Platformrelaties en -verwerking",
            "paragraphs": [
              "Rain Classroom, WeChat en de browsermeldingsinfrastructuur worden beheerd door hun respectieve rechthebbenden. Onafhankelijke herinneringen met behulp van accountautorisatie en relevante interfaces impliceren niet dat ze worden goedgekeurd. Gebruik op Apple-apparaten, als webapp op het startscherm of via Web Push betekent niet dat Apple dit product heeft gemaakt, beoordeeld of gegarandeerd. Platformverwerking en de gegevensstromen van deze service worden beschreven in het respectieve beleid en het privacybeleid van dit product."
            ]
          },
          {
            "title": "4. Rechten- en beveiligingsrapporten",
            "paragraphs": [
              "Als een toeschrijving, inventaris, bronbepaling of copyrightvermelding onvolledig lijkt, vertel dan de beheerders het pakket, de versie en het bewijsmateriaal, zodat deze kunnen worden gecontroleerd en gecorrigeerd. Publiceer geen gebruikersreferenties bij het melden van beveiligingsproblemen.",
              "Voor privacyvragen, rechtenverzoeken, ondersteuning of meldingen van inbreuken kunt u contact opnemen met de beheerder 唐梓耀 / AdrianSparkle op QQ op 2410710390. Het openbare profiel van de ontwikkelaar is https://github.com/Tang1206cc. Identificeer het product, de versie en uw verzoek. Neem geen wachtwoorden, login-cookies, verbindingscodes, volledige opnames of onnodige persoonlijke informatie op in uw eerste bericht."
            ]
          }
        ],
        "links": [
          {
            "label": "Originele jsQR Apache-2.0 licentie · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    },
    "ru": {
      "privacy": {
        "title": "Политика конфиденциальности Rain Alert",
        "intro": "Rain Alert подключается к Rain Classroom через службу напоминаний и отправляет уведомления на ваши устройства. Поэтому он обрабатывает авторизацию учетной записи, информацию о курсе и данные уведомлений на сервере. Ознакомьтесь с этой областью перед подключением или авторизацией учетной записи.",
        "sections": [
          {
            "title": "1. Область применения и сопровождающие",
            "paragraphs": [
              "雨水提醒 (Rain Alert) — это независимое веб-приложение с напоминанием о событиях в классе под названием Sparkle, созданное и поддерживаемое 唐梓耀 / AdrianSparkle и 丁铭 / EliasSparkle. Эта политика распространяется на экземпляр, управляемый Sparkle, сопряжение устройств, QR-авторизацию Rain Classroom, мониторинг класса и Web Push. Эта политика также распространяется на проверки статуса входа в класс и приглашения на обучение с друзьями, которые вы активно создаете.",
              "Это не официальный продукт Rain Classroom и не представляет школы, учителей, Rain Classroom, WeChat, Apple или поставщиков браузеров. Их услуги имеют отдельные правила конфиденциальности. Независимо управляемые экземпляры требуют раскрытия информации от своих собственных операторов; наши соглашения о хостинге и администрировании не распространяются на них автоматически."
            ]
          },
          {
            "title": "2. Данные учетной записи, курсы и учетные данные",
            "paragraphs": [
              "Запрос официального QR-кода для входа автоматически создает сеанс устройства; код подключения не требуется. После того, как вы подтвердите официальный вход в систему с помощью QR, служба получит идентификатор учетной записи, имя или псевдоним, школу и номер учащегося, возвращенные Rain Classroom, а также зарегистрированные курсы, идентификаторы классов, имена, учителей и соответствующие идентификаторы организаций. Они идентифицируют учетную запись и отображают курсы.",
              "На сервере также хранятся официальные файлы cookie для входа, авторизация сеанса и необходимые токены класса для продолжения запросов после закрытия страницы. Мы не запрашиваем и не храним ваш пароль Rain Classroom или WeChat. Файлы cookie и токены могут представлять полномочия входа в систему и требуют специальной защиты. Сканирование не сохраняет авторизацию исключительно на вашем телефоне."
            ]
          },
          {
            "title": "3. Классные мероприятия и информация о других",
            "paragraphs": [
              "Служба запрашивает текущие занятия, необходимые журналы обучения и режимы регистрации. Если включены напоминания в классе, он получает официальную трансляцию событий в классе. Сохраненные поля уведомлений включают названия курсов и классов, типы и идентификаторы событий, время платформы или обнаружения, а также необходимые сводные данные.",
              "События случайного выбора могут содержать имена и номера учеников, объявленные учителем классу. Они могут храниться в зашифрованных записях событий и отображаться в органах уведомлений, включая информацию об одноклассниках. Тщательно управляйте предварительным просмотром на экране блокировки и общими устройствами и не публикуйте эту информацию повторно. Сервис не использует их для профилирования студентов.",
              "Текущая реализация не сохраняет текст вопросов или ответы в качестве постоянного содержимого напоминаний, ответов на вопросы, ответов на переклички или быстрых ответов, а также сбора данных о местоположении устройства. Обычное посещение может вызвать запрос на вход с помощью включенных напоминаний в классе. Вы также можете активно пригласить друга на урок, который признан незарегистрированным; друг отправляет декодированный текст соответствующего QR-кода класса, и служба использует официальный сеанс приглашающего для проверенного нормального процесса входа. Эти запросы могут изменить официальные записи о входе или посещаемости; см. Условия обслуживания."
            ]
          },
          {
            "title": "4. Устройства, уведомления и техническая информация",
            "paragraphs": [
              "Мы обрабатываем случайные идентификаторы устройств, хэшированные сеансы подключения, метки устройств, время создания и последнего открытия, срок действия 30, привязки учетных записей и переключение напоминаний. Исходная категория устройства извлекается из пользовательского агента браузера. Переименование устройства и список устройств не отображаются в текущем интерфейсе; связанные данные и конечные точки управления остаются.",
              "Когда вы включаете уведомления, браузер предоставляет конечную точку push, открытый ключ p256dh и секрет аутентификации. Сервер хранит подписку для отправки на это устройство. Попытки доставки, статус принятия или неудачи, временные метки и хэши случайных квитанций поддерживают устранение неполадок, дедупликацию и подтверждение обработки системы. Квитанция не доказывает, что вы увидели, услышали или прочитали уведомление.",
              "Предоставление сетевой услуги включает обработку IP-адресов, заголовков запросов, источников, времени подключения и информации об ошибках. IP-адреса также поддерживают ограничение частоты злоупотреблений в памяти. Текущее приложение не имеет SDK для рекламы или поведенческой аналитики и не использует эти данные для межсайтового отслеживания или продажи личной информации. Поставщики инфраструктуры и связи могут обрабатывать технические журналы по своим правилам."
            ]
          },
          {
            "title": "5. Цели и границы полномочий",
            "paragraphs": [
              "Эти данные поддерживают сопряжение, идентификацию вашей авторизованной учетной записи, запрос и отображение классов, отправку выбранных событий, поддержание сеансов, миграцию источников, защиту безопасности, устранение неполадок и восстановление. Данные учетной записи и курса не используются для рекламы, коммерческого профилирования или обучения искусственному интеллекту. Без QR-авторизации курсы читать невозможно. Без разрешения на уведомление страница, на которой выполнен вход, по-прежнему может отображать информацию, но не может отправлять системные уведомления на это устройство.",
              "Конфиденциальные учетные данные, информация об одноклассниках и межрегиональная обработка требуют уведомлений, законных оснований и процедур согласия, применимых в соответствии с законом. Эта политика объясняет фактические потоки. Его просмотр, запрос QR-кода для входа или сканирование QR-кода не рассматриваются как удовлетворение каждого отдельно требуемого согласия. Не авторизуйте учетные записи или информацию, которую вы не имеете права предоставлять."
            ]
          },
          {
            "title": "6. Файлы cookie, хранилище браузера и разрешения",
            "paragraphs": [
              "Подключение устройства использует файл cookie rain_session; сервер хранит свой хэш. Более HTTPS имеет атрибуты Secure, HttpOnly и SameSite=Strict и действует до 30 дней при подключении устройства, сбрасывается при обновлении. Это файл cookie аутентификации, а не рекламный файл cookie. Выход из Rain Classroom не удаляет автоматически этот файл cookie подключения устройства.",
              "Разрешения браузера управляют уведомлениями устройства. Страницы совместного изучения и приглашения используют камеру только после того, как вы активно начнете сканирование и предоставите доступ, а также могут принять изображение. Декодирование QR происходит в браузере; передается только декодированный текст, без загрузки видео или выбранных изображений. Зум камеры использует аппаратный или цифровой зум, который поддерживает устройство. Микрофон, местоположение и контакты не запрашиваются."
            ]
          },
          {
            "title": "7. Получатели, хостинг и международные переводы",
            "paragraphs": [
              "Текущий экземпляр под управлением Sparkle работает в облаке Tencent Cloud в Гонконге, Китай. Если вы находитесь в материковом Китае или другом регионе, данные учетной записи, файлы cookie, курсы, события и подписки на устройства, отправленные в этот экземпляр, передаются и хранятся в Гонконге. Авторизация и мониторинг также взаимодействуют с официальными API Rain Classroom и службами классных мероприятий. Любой, у кого есть действительное приглашение на обучение, может прочитать отображаемое имя приглашающего, название класса, время истечения срока действия и статус обработки, а также отправить QR-код для входа в указанный класс. Декодированный текст проходит через службу Гонконга на официальные интерфейсы Rain Classroom. Друг не получает файлы cookie, пароль или полный список курсов приглашающего. Делитесь приглашениями только с доверенными людьми, которым разрешено помогать.",
              "В зависимости от браузера Web Push использует такую инфраструктуру, как Apple, Google, Mozilla или Microsoft, которая может обрабатывать данные в других странах или регионах. Служба отправляет зашифрованные push-полезные данные и необходимую информацию о маршрутизации в конечную точку подписки; браузеры и операционные системы отображают их. На устройстве могут появляться текстовые уведомления. Принудительное шифрование не означает, что сервер напоминаний не может прочитать базовые данные.",
              "Cloudflare в настоящее время предоставляет регистрацию доменов и DNS. В существующей конфигурации трафик приложения не проходит через прокси-сервер CDN; Обработка DNS по-прежнему включает в себя необходимую информацию запроса. Мы не продаем и не сдаем в аренду личную информацию. Раскрытие информации, требуемое законом, необходимые меры безопасности или другие передачи, которые вы прямо указываете, должны быть ограничены соответствующей целью."
            ]
          },
          {
            "title": "8. Ограничения шифрования и безопасности",
            "paragraphs": [
              "Профили учетных записей, кэши курсов, файлы cookie для входа, учетные данные класса, полезные данные событий и принудительные подписки хранятся с помощью AES-256-GCM. Идентификаторы учетных записей и устройств, ассоциации, переключатели, время, статусы и другие рабочие поля не все индивидуально шифруются. База данных и главный ключ управляются на одном хосте; это не сквозное шифрование, которое выдерживает полную компрометацию сервера.",
              "Служба использует HTTPS, хеширование сеансов, проверки происхождения, ограничение скорости и ограниченные конечные точки push-уведомлений. У авторизованных администраторов может быть доступ, необходимый для расшифровки. В случае инцидента, связанного с безопасностью личной информации, мы предпримем меры по исправлению положения и уведомим пострадавших людей и органы власти в соответствии с требованиями применимого законодательства, объяснив задействованную информацию, возможные последствия, принятые меры и пути контакта. Абсолютной безопасности не обещают. Подключайте только доверенные устройства и не передавайте коды подключения, файлы cookie, ссылки на миграцию или личные уведомления."
            ]
          },
          {
            "title": "9. Онлайн-удержание",
            "paragraphs": [
              "Срок действия подключений устройств составляет 30 дней с момента создания или продления вручную; истекший сеанс больше не предоставляет доступ. Недействительное официальное разрешение приостанавливает соответствующий мониторинг. Когда последнее действительное связанное устройство выходит из системы, отзывается или истекает срок его действия, обработка выхода из системы или периодическое обслуживание очищают файлы cookie для входа в учетную запись и сохраненные учетные данные класса и приостанавливают соединения.",
              "Завершенные классы и записи об их доставке, исторические события за пределами активных классов и смоделированные push-записи очищаются во время периодического обслуживания с использованием порогового значения 90 в коде. Активные классы и защищенные связанные записи могут оставаться дольше. Учетные данные для миграции являются одноразовыми и истекают через пять минут. В приглашениях на обучение используются случайные жетоны. Хэш-индекс в памяти процесса содержит отображаемое имя приглашающего, указанный класс, срок действия примерно 30-минуты, количество попыток и состояние результата. Приглашения с истекшим сроком действия использовать нельзя, и приглашения не сохраняются после перезапуска службы. Записи памяти с истекшим сроком действия очищаются при создании последующих приглашений, а не гарантированно стираются на уровне байтов по истечении срока действия. Раскодированный QR-текст используется для текущего запроса; учебный модуль не записывает в базу данных кадры камеры, выбранные изображения или QR-текст. Официальные записи о въезде и технические журналы инфраструктуры соответствуют действующим правилам обращения.",
              "Текущая реализация не имеет единого периода автоматического удаления для всех профилей учетных записей, кешей курсов, метаданных устройств, полей статуса или резервных копий. Правила подключения за 30 и истории за 90 в это время не стирают всю учетную запись. Свяжитесь с сопровождающими, если вы прекратите использовать службу и хотите удалить оставшиеся данные. Отсутствие автоматической очистки не дает права на бессрочное хранение. Когда данные больше не нужны или их удаление требуется по закону, мы действуем в соответствии с действующим законодательством и проверяем объем, требующий ручной обработки."
            ]
          },
          {
            "title": "10. Резервные копии, вспомогательные материалы и объем очистки",
            "paragraphs": [
              "Резервные копии для восстановления включают снимки базы данных, служебные ключи, push-ключи и исходную конфигурацию. Экспортированные резервные копии используют случайный ключ данных AES-256-GCM, завернутый в отдельный открытый ключ RSA-OAEP; закрытый ключ дешифрования хранится отдельно. Однако облачное хранилище также может хранить снимки SQLite, защищенные правами доступа к файлам, а привилегии хоста могут получать доступ к операционным данным. Таким образом, защита резервного копирования зависит от типа копии и места ее хранения.",
              "Существующий процесс резервного копирования не имеет единого автоматического срока действия; офлайн-экспорт может остаться. Удаление онлайн-данных не приводит к немедленному удалению исторических резервных копий. В запросе на удаление может быть задан вопрос об оставшихся резервных копиях, причинах хранения и процедурах удаления. Это требует ручной проверки; никакого нереализованного мгновенного стирания в один клик не обещано. Переписки со службой поддержки и отправленные вложения сохраняются по мере необходимости, а не для рекламы или обучения."
            ]
          },
          {
            "title": "11. Отключить, выйти, отозвать и запросить удаление",
            "paragraphs": [
              "Вы можете отключить каждый из пяти типов напоминаний, отозвать системные уведомления, выйти из Rain Classroom на этом устройстве или прекратить продление соединения. Текущий интерфейс не имеет списка устройств или элементов управления отзывом; свяжитесь с обслуживающим персоналом для проверки или отзыва других устройств. Переключатель останавливает только соответствующие напоминания этого устройства. Мониторинг может продолжаться, если на другом устройстве включены напоминания. Выход из системы отключает это устройство и удаляет его принудительную подписку на стороне сервера; разрешения браузера или состояние подписки могут потребовать отдельного управления системой.",
              "Освобождение учетных данных для входа после ухода последнего действующего устройства не приводит к удалению всех профилей, истории, других метаданных устройства или резервных копий. В текущем продукте нет кнопки автоматического удаления всей учетной записи. Свяжитесь с сопровождающими, чтобы запросить информацию, доступ, копию, исправление, удаление, ограничение, отзыв авторизации или обработку возражений относительно информации другого лица."
            ]
          },
          {
            "title": "12. Проверка, юридическое удержание и средства правовой защиты",
            "paragraphs": [
              "Мы проверяем связь между запросом и аккаунтом пропорционально риску и запрашиваем только необходимую информацию. Не отправляйте файлы cookie, пароли или учетные данные миграции. Запросы должны обрабатываться оперативно, как того требует закон. Если техническое разделение, резервное копирование, споры или юридические обязательства по хранению препятствуют немедленному завершению, следует объяснить причины, объем и последующие меры. Если закон требует прекращения другой обработки, сохраненные данные ограничиваются необходимым хранением и безопасностью, а не возвращаются для обычного мониторинга. Восстановление требует проверки ранее обработанных запросов прав. Законные права не ограничиваются существующими кнопками интерфейса. Вы можете подать жалобу компетентному регулирующему органу."
            ]
          },
          {
            "title": "13. Несовершеннолетние и контекст обучения",
            "paragraphs": [
              "Услуга предназначена для пользователей, которые могут законно авторизовать свои учетные записи и устройства. Несовершеннолетним требуется соответствующее разрешение опекуна и они должны соблюдать школьные правила. Подключение учетной записи не предназначено для детей младше 14. В настоящее время не существует механизма проверки возраста; свяжитесь с обслуживающим персоналом, если информация о детях могла быть обработана без необходимого разрешения, чтобы ее можно было расследовать и обрабатывать в соответствии с законом.",
              "Имена, номера учащихся и события в классе используются для напоминаний, а не для оценки посещаемости или успеваемости другого человека. Записи школ и учителей, поступающие по официальным каналам, остаются авторитетными."
            ]
          },
          {
            "title": "14. Изменения и языковые версии",
            "paragraphs": [
              "Существенные изменения в категориях данных, целях, хостинге или получателях будут описаны здесь и датированы. Обновление текста или продолжение использования не могут заменить требуемое по закону дополнительное уведомление, отдельное согласие или другие процедуры. Языковые версии призваны описывать один и тот же объем; различия не умаляют ваших прав согласно действующему законодательству."
            ]
          },
          {
            "title": "15. Контакт",
            "paragraphs": [
              "По вопросам конфиденциальности, запросам о правах, поддержке или сообщениям о нарушениях обращайтесь к сопровождающему 唐梓耀 / AdrianSparkle в QQ по адресу 2410710390. Общедоступный профиль разработчика: https://github.com/Tang1206cc. Укажите продукт, версию и ваш запрос. Не включайте пароли, файлы cookie для входа, коды подключения, целые записи или ненужную личную информацию в свое первоначальное сообщение.",
              "Укажите «Оповещение о дожде / 雨水提醒» и объем вашего запроса. Для информации о другом выбранном студенте укажите минимальное время проведения мероприятия и контекст курса, а не публикуйте публично его полное имя и номер студента."
            ]
          },
          {
            "title": "15. Пул друзей, индивидуальная авторизация и помощь в совместном обучении",
            "paragraphs": [
              "Пул друзей для совместного исследования всегда включает своего владельца и поддерживает до пяти друзей, изолированных по учетной записи владельца и текущему устройству. Каждый друг должен лично подтвердить официальный вход по QR. Служба сохраняет возвращенный идентификатор учетной записи, профиль отображения и официальный сеанс для проверки личности, отображения статуса входа и помощи при входе после активного запроса на сканирование. Пароли друзей не запрашиваются и не сохраняются. Официальные учетные данные обрабатываются сервером, а не только на сканирующем телефоне. Сеансы друзей хранятся за пределами таблицы учетных записей напоминаний владельца и не включают автоматически напоминания в классе для этих друзей.",
              "Профили и учетные данные друзей зашифрованы в отдельной базе данных друзей. Ассоциации владельца/устройства, статусы, временные метки и другие рабочие поля не являются шифрованием всей базы данных. Текущий владелец устройства может просматривать отображаемые имена друзей, доступные аватары, статус входа и инициировать помощь. Друзья должны понимать эту область и авторизовать только проверенные и разрешенные устройства. Служба может получать отображаемые аватары из разрешенных официальных источников, правила которых регулируют эти запросы.",
              "Помогите друзьям в совместном исследовании, используя камеру или изображение только тогда, когда вы инициируете это. Браузер декодирует QR локально. Служба получает текст и использует сеанс каждой объединенной учетной записи отдельно для проверки класса, отправки поддерживаемых запросов и проверки официальных результатов. Это может изменить официальные записи о въезде; он не отвечает на упражнения и не отвечает на переклички. Видео и выбранные изображения не загружаются; для этой операции используется декодированный текст. Задания и результаты временно хранятся в памяти процесса, а не как постоянные записи или доказательства физического присутствия.",
              "Удаление друга удаляет соответствующую запись этого пула и делает старые вакансии недействительными без отправки официального запроса на выход для друга. Выход из системы, переключение учетных записей владельца или отзыв устройства делают недействительными учетные данные друга для этого пула владельца/устройства. Устройства с истекшим сроком годности обрабатываются во время технического обслуживания. Дружеские отношения и профили остаются недействительными записями без единого срока автоматического удаления; повторно авторизуйте того же друга или запросите удаление. Пулы других действительных устройств не затрагиваются. Официальный логин владельца с истекшим сроком действия не аннулирует автоматически учетные данные друга, пока сеанс устройства остается действительным, поэтому действительным друзьям по-прежнему можно оказать помощь. Отдельная база данных друзей включена в существующие зашифрованные резервные копии; удаление онлайн-записей не приводит к одновременному удалению исторических резервных копий."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "terms": {
        "title": "Условия использования оповещения о дожде",
        "intro": "Rain Alert предоставляет дополнительные уведомления о событиях в классе. Обратите особое внимание на авторизацию учетной записи, фактический эффект обычных запросов на регистрацию и ограничения на push-доставку.",
        "sections": [
          {
            "title": "1. Область применения, поставщик и принятие",
            "paragraphs": [
              "Эти условия применяются к веб-приложению Rain Alert и экземпляру напоминания, поддерживаемому под именем Sparkle компаниями 唐梓耀/AdrianSparkle и 丁铭/EliasSparkle. Прочтите их перед подключением, авторизацией учетной записи или включением напоминаний. Не предпринимайте этих действий, если вы не согласны. Продолжение использования само по себе не требует отдельного получения согласия или разрешения опекуна."
            ]
          },
          {
            "title": "2. Независимый инструмент и официальные каналы",
            "paragraphs": [
              "Rain Alert не является официальным продуктом Rain Classroom, школы или учителя. Эта страница не претендует на партнерство, агентство или поддержку со стороны Rain Classroom, WeChat, Apple или поставщиков браузеров. Школы, учителя и официальные записи Rain Classroom определяют расписание, задания, посещаемость и оценки.",
              "Продукт дополняет официальных клиентов, объявления в классе, ручную проверку и ваши собственные обязанности по посещаемости. В настоящее время он не предоставляет подробных напоминаний обо всех заданиях, экзаменах или школьных объявлениях перед и после занятий."
            ]
          },
          {
            "title": "3. Право на участие и надежные связи",
            "paragraphs": [
              "У вас должно быть разрешение на использование учетной записи и устройства, а также на соблюдение правил школы, учителя и платформы. Не подключайте неавторизованные аккаунты, заимствуйте сессии. Несовершеннолетним требуется разрешение опекуна в соответствии с требованиями закона; детям младше 14 не следует подключать учетные записи.",
              "Подтверждайте только официальные входы по QR, которые вы инициировали. Не сообщайте пароли сопровождающим, веб-формам или незнакомцам. Текущая домашняя страница не требует кода подключения. Запрос QR-кода создает сеанс устройства; данные связанной учетной записи Rain Classroom доступны только после подтверждения входа в систему."
            ]
          },
          {
            "title": "4. Авторизованная обработка",
            "paragraphs": [
              "После QR-подтверждения серверу необходимо сохранить и использовать официальные учетные данные для входа в систему для запроса данных учетной записи, курсов, текущих занятий и необходимых событий в классе, а также для уведомления зарегистрированных устройств. Политика конфиденциальности объясняет данные, получателей, хостинг в Гонконге и их хранение. Активно создавая приглашение на обучение, вы также поручаете службе использовать ваш официальный сеанс для обработки QR-кода, соответствующего записи друга, для этого указанного класса. Приглашения длятся около 30 минут. Прежде чем поделиться, проверьте получателя, отображаемое имя и информацию о классе. Это не дает другу ни вашего пароля, ни файлов cookie, ни доступа к другим классам.",
              "Прежде чем включать напоминания, поймите эту область действия. Авторизация не означает разрешения читать несвязанные материалы, публиковать ваши курсы, заниматься маркетингом или обучать модели искусственного интеллекта."
            ]
          },
          {
            "title": "5. Напоминания в классе и эффекты регистрации",
            "paragraphs": [
              "Включение напоминаний об упражнениях, случайном выборе, быстром ответе или наличии комментариев позволяет службе получить авторизацию в классе в соответствии с правилами платформы. Если платформа явно идентифицирует обычную регистрацию, сервис может автоматически отправить запрос на вход в класс. Этот запрос может создавать записи о входе или регистрации на официальной платформе. Служба не полностью доступна только для чтения.",
              "Вы можете активно пригласить друга отсканировать соответствующий QR-код входа в класс, ограниченный проверенным обычным QR-потоком. Местоположение, неизвестные потоки и другие неподдерживаемые ограничения по-прежнему требуют официального клиента. Служба не подделывает местоположение, не взламывает QR-коды, не отвечает на упражнения, не отвечает на переклички и не отправляет быстрые ответы. Автоматический вход и обучение с друзьями должны соответствовать правилам школы, учителя и платформы. Состояние входа в учетную запись не должно представляться как физическое присутствие или использоваться для фальсификации явки."
            ]
          },
          {
            "title": "6. Переключатели, тестирование и содержимое уведомлений",
            "paragraphs": [
              "Для каждого устройства доступно пять типов напоминаний. Системное разрешение и отдельные переключатели напоминаний — это разные настройки. Push-тестирование отправляет пять четко обозначенных смоделированных сообщений, даже если соответствующие переключатели выключены, без их изменения. Успешное тестирование не подтверждает источник событий в классе в реальном времени.",
              "В уведомлениях о случайном выборе могут отображаться имена и номера учащихся, объявленные классу. Другие уведомления показывают краткие сведения о курсах и мероприятиях. Управляйте предварительным просмотром и общими устройствами и не пересылайте публично информацию одноклассников. Если платформа не указывает достоверное время начала, отображаемое время обнаружения не является временем начала занятия."
            ]
          },
          {
            "title": "7. Сроки и надежность",
            "paragraphs": [
              "Опрос длительностью примерно пять секунд в нормальных условиях работает наряду с подключением к событиям в классе. Это не срок поставки или гарантия уровня обслуживания. Изменения платформы, сети, обслуживание, энергосбережение, разрешения, поставщики push-уведомлений, политики браузера, неверный вход в систему или соединение с истекшим сроком действия могут задерживать, пропускать, повторять или останавливать сообщения.",
              "«Принято push-сервисом» подтверждает принятие запроса. Квитанция об устройстве подтверждает работу системы, а не то, что человек прочитал или услышал уведомление. Продолжайте проверять официальные каналы; Не полагайтесь исключительно на этот инструмент при посещении занятий, экзаменах или важных сроках."
            ]
          },
          {
            "title": "8. Устройства, срок действия и миграция источника",
            "paragraphs": [
              "Подключения устройств обычно длятся 30 дней. Запрос на продление появится в течение последних семи дней. Именование устройств, список устройств и элементы управления отзывом недоступны в текущем интерфейсе; свяжитесь с сопровождающими, чтобы изучить и отменить незнакомые соединения. Официальное разрешение или сеансы устройства с истекшим сроком действия влияют на мониторинг и напоминания.",
              "Основными и сохранившимися устаревшими точками входа являются разные браузеры. Одноразовые пятиминутные учетные данные позволяют перенести учетную запись, настройки и необходимую историю; Разрешение на уведомление должно быть предоставлено снова для нового источника. Ссылка на миграцию предоставляет временный доступ и не подлежит совместному использованию. Деактивация старой подписки зависит от успешной регистрации новой."
            ]
          },
          {
            "title": "9. Допустимое использование",
            "paragraphs": [
              "Не обходите контроль школы или платформы, не фальсифицируйте посещаемость, не крадите и не делитесь учетными данными, не собирайте данные посторонних людей, не преследуйте и не нарушайте права, не злоупотребляйте push-доставкой, не атакуйте интерфейсы и не перепродавайте несанкционированный доступ. Не используйте курсы, имена, номера студентов или учебную деятельность для рекламы профилей или публичного освещения.",
              "Обычное использование должно по-прежнему соответствовать правилам платформы и школы; продукт не может получить для вас разрешение третьей стороны. Если вы обнаружите незнакомое устройство или неправильную доставку, отключите соответствующие напоминания и обратитесь к специалистам по обслуживанию, чтобы они расследовали и отозвали устройство."
            ]
          },
          {
            "title": "10. Доступность, стоимость, поддержка и изменения",
            "paragraphs": [
              "В настоящее время сервис находится на стадии публичного тестирования. Постоянная доступность, постоянный свободный доступ, фиксированное время ответа и определенная емкость не обещаются. Любые платежи, подписки или существенные новые условия должны быть четко раскрыты до их вступления в силу и следовать необходимым процедурам. Эти условия сами по себе не создают никаких обязательств по оплате.",
              "Изменения в обслуживании, безопасности, емкости и исходных данных могут потребовать корректировки или приостановки. Там, где это разумно предсказуемо, должны быть предоставлены соответствующие объяснения и рекомендации по миграции, экспорту или прекращению использования. Срочные риски могут потребовать предварительного принятия необходимых мер и объяснения, если это необходимо, без снятия юридических обязанностей."
            ]
          },
          {
            "title": "11. Выход, приостановка и прекращение действия",
            "paragraphs": [
              "Вы можете отключить напоминания, выйти из системы, попросить обслуживающего персонала отозвать устройства или прекратить использование службы. Отключение последнего действующего устройства освобождает учетные данные для входа. В Политике конфиденциальности отдельно объясняются остальные профили, история и резервные копии; прекращение не приводит к автоматическому удалению всей учетной записи.",
              "Явное злоупотребление, нарушение прав или угроза безопасности могут оправдать ограничение соответствующих связей в необходимой степени с указанием причин и возможностью обратной связи или исправления, где это необходимо. Применимые обязательства по конфиденциальности, защите интеллектуальной собственности и данных остаются в силе после прекращения действия Соглашения."
            ]
          },
          {
            "title": "12. Права, гарантии и ответственность",
            "paragraphs": [
              "Вы сохраняете права на свою информацию. Материалы курса принадлежат их правообладателям. Обработка не предоставляет сервису права на неограниченное использование или сублицензирование. Условия лицензирования продукта и компонентов приведены в Лицензии на программное обеспечение и Уведомлениях третьих лиц.",
              "В пределах, разрешенных законом, услуга предоставляется в доступном состоянии без обещания безошибочной, непрерывной работы или своевременной доставки каждого сообщения. Ответственность зависит от фактов, вины и применимого законодательства. Ответственность за умышленное неправомерное поведение, грубую небрежность, телесные повреждения, незаконную обработку личной информации и другие неисключаемые вопросы сохраняется, как и обязательные средства защиты прав потребителей."
            ]
          },
          {
            "title": "13. Споры, толкование и пересмотры",
            "paragraphs": [
              "По вопросам или спорам обращайтесь к сопровождающим. Вы по-прежнему можете обращаться за помощью в суд или регулирующий орган с законной юрисдикцией без обязательного арбитража, назначенного иностранного суда или отказа от законных прав. Неисполнимое положение не лишает законной силы независимо действующие положения.",
              "Существенные изменения будут датированы и будут соответствовать необходимым процедурам уведомления или согласия. Языковые версии стремятся быть эквивалентными; различия в переводе не исключают местную правовую защиту."
            ]
          },
          {
            "title": "14. Контакт",
            "paragraphs": [
              "По вопросам конфиденциальности, запросам о правах, поддержке или сообщениям о нарушениях обращайтесь к сопровождающему 唐梓耀 / AdrianSparkle в QQ по адресу 2410710390. Общедоступный профиль разработчика: https://github.com/Tang1206cc. Укажите продукт, версию и ваш запрос. Не включайте пароли, файлы cookie для входа, коды подключения, целые записи или ненужную личную информацию в свое первоначальное сообщение."
            ]
          },
          {
            "title": "15. Границы авторизации и помощи в пуле друзей",
            "paragraphs": [
              "Каждый друг должен лично подтвердить официальный вход в систему с помощью QR и понимать, что служба напоминаний хранит учетные данные, а текущий владелец учетной записи/устройства может инициировать помощь. Не сохраняйте, не передавайте и не используйте сеанс другого человека без разрешения и не обходите правила школы, учителя или официальной платформы. Включение владельца и до пяти друзей не дает права на доступ или регистрацию в любом классе.",
              "Ссылки-приглашения и пулы друзей представляют собой отдельные потоки: помощнику ссылки не нужно входить в систему, тогда как каждый друг из пула должен авторизоваться индивидуально. Помощь требует активного сканирования QR-кода, соответствующего классу, с проверкой результатов отдельно для каждой учетной записи. Записи о подаче, ожидании и входе не подтверждают физическое присутствие. Ограниченные или неподдерживаемые потоки по-прежнему требуют официального клиента; доступность для каждой школы, класса или учетной записи не гарантируется. Ознакомьтесь с политикой конфиденциальности для получения информации о выходе, удалении, истечении срока действия, резервном копировании и оставшихся данных."
            ]
          }
        ],
        "links": [],
        "version": "1.3",
        "updated": "2026-10-23"
      },
      "licenses": {
        "title": "Лицензия на программное обеспечение и обслуживание Rain Alert",
        "intro": "В этой лицензии разъясняется разрешенное использование исходного кода и интерфейса Веб-приложения. Доступ не предоставляет права на перераспределение исходного кода, независимое развертывание или права на брендинг Sparkle. Компоненты с открытым исходным кодом сохраняют свои собственные лицензии.",
        "sections": [
          {
            "title": "1. Правообладатели и сфера применения",
            "paragraphs": [
              "Права на исходный код, интерфейс, графику и документацию Rain Alert остаются за соответствующими правообладателями. Sparkle поддерживается 唐梓耀/AdrianSparkle и 丁铭/EliasSparkle. Эта лицензия распространяется на доступ к поставляемому клиенту и службе веб-приложения без изменения стороннего контента или разрешений с открытым исходным кодом."
            ]
          },
          {
            "title": "2. Ограниченный клиент и разрешение доступа",
            "paragraphs": [
              "В соответствии с Условиями обслуживания вы получаете ограниченное, неисключительное, не подлежащее передаче и сублицензированию право на доступ к фактически доступной услуге, загрузку и запуск клиентского кода, поставляемого с ее страницами, а также использование обычной установки браузера, например добавление на главный экран на устройствах, которыми вы владеете или имеете право использовать. Вы можете подключать учетные записи, на которые у вас есть право авторизоваться, с помощью поддерживаемых функций.",
              "Используйте поддерживаемые потоки для подключения своей учетной записи или учетной записи друга после того, как этот друг лично авторизует официальный вход в пул по QR-коду. Это не предоставляет никаких прав на учетную запись, курс или платформу, кроме первоначального разрешения."
            ]
          },
          {
            "title": "3. Права, не предоставленные в исходном коде",
            "paragraphs": [
              "Видимость или возможность загрузки сценариев браузера не ставит исходный код под лицензию с открытым исходным кодом. За исключением случаев, когда это разрешено законом или отдельно разрешено в письменной форме, не распространяйте продукт, не модифицируйте и не используйте независимый сервис, не упаковывайте его для продажи, сдачи в аренду, сублицензии, не удаляйте уведомления о правах и не предлагайте серверные интерфейсы в качестве несанкционированной коммерческой услуги. Эти резервирования программного обеспечения не ограничивают законное использование данных из вашей учетной записи."
            ]
          },
          {
            "title": "4. Законодательные исключения и исследования",
            "paragraphs": [
              "Эта лицензия не ограничивает резервное копирование, функциональную совместимость, исследования безопасности или другие права, которые действующее законодательство не позволяет исключать из контракта. Исследования не должны включать незаконный доступ к учетным данным, нарушение конфиденциальности или нарушение работы службы в режиме реального времени. Сообщайте об уязвимостях с минимально необходимыми деталями воспроизведения, не публикуя действующие ключи или пользовательские данные."
            ]
          },
          {
            "title": "5. Приоритет лицензий на компоненты",
            "paragraphs": [
              "Служба использует Express, qrcode, tough-cookie, Web-Push и их зависимости. Точные версии, заявления об авторских правах и тексты приведены в Уведомлениях третьих сторон. К ним относятся MIT, ISC, BSD-3-Clause, Apache-2.0 и MPL-2.0; они не все из MIT. На странице «Обучение с друзьями» также используется декодер jsQR с лицензией Apache-2.0, независимая лицензия которого также имеет приоритет.",
              "Каждый компонент можно использовать, изменять или распространять по собственной лицензии. Ограничения на несвободное программное обеспечение не отменяют конфликтующих разрешений независимых компонентов. web-push использует MPL-2.0; исходная копия используемой версии представлена ​​здесь. Предоставление исходного кода компонента не делает весь проект Rain Alert открытым."
            ]
          },
          {
            "title": "6. Данные, платформы и товарные знаки",
            "paragraphs": [
              "Никакие дополнительные права не предоставляются на содержание курса Rain Classroom, информацию других студентов или официальные API платформы. Вы сохраняете законные права на свою информацию. Sparkle, Rain Alert, а также сторонние бренды и знаки сохраняют свою соответствующую защиту. Не выдавайте себя за официального оператора и не заявляйте о несуществующих партнерских отношениях, сертификатах или одобрениях."
            ]
          },
          {
            "title": "7. Независимое внедрение и перепродажа",
            "paragraphs": [
              "Доступ не включает доставку исходного кода, администрирование сервера, перепродажу услуг или разрешение на независимое развертывание. При необходимости получите явное отдельное разрешение. Наличие package.json, списков зависимостей или читаемого кода в каталоге разработки не является общим разрешением открытого исходного кода для исходного проекта."
            ]
          },
          {
            "title": "8. Срок действия, прекращение действия и обновления",
            "paragraphs": [
              "Данная лицензия применяется при законном использовании поставляемого клиента и услуги. Вы можете прекратить использование и удалить запись с главного экрана. Существенные нарушения могут привести к законным ограничениям доступа с разумной возможностью исправить их, если это необходимо и поправимо. Прекращение действия не отменяет законных прав на данные, возникших обязанностей или независимых лицензий на открытый исходный код.",
              "На обновления распространяется действие этой лицензии, если к ним не прилагаются другие условия. Доступ не гарантирует бессрочную работу, поддержку определенной версии или бессрочную совместимость. Существенные изменения соответствуют Условиям обслуживания и действующему законодательству."
            ]
          },
          {
            "title": "9. Гарантии и ответственность",
            "paragraphs": [
              "В пределах, разрешенных законом, программное обеспечение и услуги предоставляются в доступном состоянии. Гарантии и ответственность определяются Условиями обслуживания, фактическими обязательствами и применимым законодательством. Обязательная защита потребителей, неисключаемые обязанности по защите данных, ответственность за умышленное неправомерное поведение или грубая халатность, а также другие обязательные права сохраняются."
            ]
          },
          {
            "title": "10. Лицензионные запросы",
            "paragraphs": [
              "По вопросам конфиденциальности, запросам о правах, поддержке или сообщениям о нарушениях обращайтесь к сопровождающему 唐梓耀 / AdrianSparkle в QQ по адресу 2410710390. Общедоступный профиль разработчика: https://github.com/Tang1206cc. Укажите продукт, версию и ваш запрос. Не включайте пароли, файлы cookie для входа, коды подключения, целые записи или ненужную личную информацию в свое первоначальное сообщение.",
              "При групповом развертывании, лицензировании исходного кода, коммерческом сотрудничестве или использовании бренда объясните предполагаемое использование и свяжитесь с правообладателями. Права собственности на программное обеспечение, не предоставленные явно, защищены."
            ]
          }
        ],
        "links": [],
        "updated": "2026-10-23",
        "version": "1.2"
      },
      "notices": {
        "title": "Rain Alert Уведомления сторонних организаций и приложений с открытым исходным кодом",
        "intro": "Перечень проверен по текущему package-lock.json и установленным пакетам и включает 110 производственных зависимостей. Исходные уведомления об авторских правах и тексты лицензий доступны ниже. Они не предоставляют единую лицензию на весь продукт.",
        "sections": [
          {
            "title": "1. Основные зависимости",
            "paragraphs": [
              "Express 5.3.0 (MIT) управляет маршрутизацией HTTP; qrcode 1.5.4 (MIT) генерирует QR-изображения для входа в систему; tough-cookie 6.0.2 (BSD-3-Clause) управляет официальными файлами cookie сеанса; web-push 3.6.7 (MPL-2.0) обрабатывает запросы Web Push и шифрует. Полный перечень включает транзитивные зависимости по месту установки, а не только эти четыре пакета. Браузерная страница «Обучение с друзьями» дополнительно использует jsQR (Apache-2.0) для декодирования QR-кодов на устройстве. Этот компонент браузера отделен от приведенного выше количества производственных зависимостей Node.js. Исходная лицензия, поставляемая с текущим продуктом, предоставляется отдельно; условия несвободного программного обеспечения не умаляют его независимых разрешений."
            ]
          },
          {
            "title": "2. Оригинальные тексты, источник и объем",
            "paragraphs": [
              "В загружаемом уведомлении сохраняются тексты LICENSE, LICENCE, COPYING и NOTICE, найденные в проверенных пакетах. В установленном пакете http_ece 1.2.0 отсутствует отдельный файл лицензии; его текст MIT берется из соответствующего восходящего тега v1.2.0 с записанным источником. ZIP отдельно содержит исходный код компонента web-push, README, package.json и лицензию на проверку файлов, покрытых MPL.",
              "Это инвентарь производственных зависимостей текущего проекта. Это не означает, что все серверные зависимости передаются в браузер или заменяют уведомления, необходимые при распространении Node.js, операционных систем или дополнительного программного обеспечения. Тексты исходной версии сохраняют свой исходный язык и регулируют права на компоненты."
            ]
          },
          {
            "title": "3. Отношения с платформой и обработка",
            "paragraphs": [
              "Rain Classroom, WeChat и инфраструктура уведомлений браузера управляются соответствующими правообладателями. Самостоятельные напоминания с использованием авторизации аккаунта и соответствующих интерфейсов не означают их одобрения. Использование на устройствах Apple в качестве веб-приложения на главном экране или через Web Push не означает, что Apple создал, проверил или дал гарантию на этот продукт. Обработка платформы и потоки данных этой службы описаны в соответствующих политиках и Политике конфиденциальности этого продукта."
            ]
          },
          {
            "title": "4. Отчеты о правах и безопасности",
            "paragraphs": [
              "Если сведения об авторстве, описи, источнике или уведомлении об авторских правах кажутся неполными, сообщите сопровождающим пакет, версию и доказательства, чтобы их можно было проверить и исправить. Не публикуйте учетные данные пользователя при сообщении о проблемах безопасности.",
              "По вопросам конфиденциальности, запросам о правах, поддержке или сообщениям о нарушениях обращайтесь к сопровождающему 唐梓耀 / AdrianSparkle в QQ по адресу 2410710390. Общедоступный профиль разработчика: https://github.com/Tang1206cc. Укажите продукт, версию и ваш запрос. Не включайте пароли, файлы cookie для входа, коды подключения, целые записи или ненужную личную информацию в свое первоначальное сообщение."
            ]
          }
        ],
        "links": [
          {
            "label": "Исходная лицензия jsQR Apache-2.0 · TXT",
            "url": "/assets/legal/rain-alert/jsQR-LICENSE.txt"
          }
        ],
        "updated": "2026-10-18",
        "version": "1.1"
      }
    }
  }
}
