## 1. Project Overview & Quickstart (NSRingo/box-js)

# box-js

Open-source repository NSRingo/box-js

### Repository Details
- **Repository:** [NSRingo/box-js](https://github.com/NSRingo/box-js)
- **Primary Language:** Code

*Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.*

## 2. Official Technical Reference & Guides (NSRingo/NSRingo.github.io)

## File: docs/guide/Siri/apple-intelligence.mdx

import { ModuleInstall } from "@theme";
import _Footer from "../_Footer.md";

# 🟥 Apple 智能

## 简介


## 使用说明


## 功能列表


## 配置方法


## 安装链接


## 更新日志


<_Footer />

---

## File: docs/guide/Siri/siri.mdx

---
repo: NSRingo/Siri
---

import { Steps, ModuleInstall } from "@theme";
import _Footer from "../_Footer.md";

# ⭕ Siri

:::danger ‼️ 已失效

从 iOS 26 beta1 起  
`Siri 请求`使用的连接`guzzoni.smoot.apple.com`  
不再可以通过 MitM 改写请求  
⚠️ 此模块已停止更新

:::

:::warning ⚠️ 最高支持

- iOS 18.x
- iPadOS 18.x
- macOS 15.x
- tvOS 18.x
- watchOS 11.x

:::

:::info ✅ Siri 请求

iOS 18、macOS 15、watchOS 11 及以上版本此功能名为`Siri 请求`  
`Siri 请求`使用的连接为`guzzoni.smoot.apple.com`  
可以通过 MitM 改写  

:::

:::danger ❌ 询问 Siri

iOS 17、macOS 14、watchOS 10 及以下版本此功能名为`询问 Siri`  
`询问 Siri`使用的连接为`guzzoni.apple.com`  
不可以通过 MitM 改写  

:::

## 简介
* 将「Siri 知识」卡片改为国际版
  * `百度百科`改为`维基百科`
* 将「Siri 请求」的国家与地区改为`🇸🇬 新加坡`
  * 国家与地区代码改为`SG`
  * 获取更多的「Siri 请求」功能
* 将「Siri 请求」响应语言改为简体中文
  * Siri 使用始终简体中文回答您

## 功能列表



## 配置方法
* 基础: 直接使用
  * 采用[默认配置](#默认设置)
* 进阶: 配合`Loon`设置面板或`Surge`参数设置功能进行个性化设置
  * 提供一定的自定义设置，如`国家与地区代码`选择、`区域`选择等
* 高级: 配合`BoxJs`及订阅使用
  
  ℹ️ 用前须知：使用`BoxJs`进行配置将被视为专业用户，官方不受理因使用`BoxJs`配置导致的各种问题

  1. 安装`BoxJs`插件并更新引用资源或脚本:
     * 安装方法及下载链接详见: [🧰 BoxJs](../box-js)
  2. 在`BoxJs`的配置面板中进行个性化设置:
     1. 浏览器访问[BoxJs.com](http://boxjs.com)
     2. 在[`应用`](http://boxjs.com/#/app)页面点开` iRingo`折叠
     3. 在[`⭕ Siri`](http://boxjs.com/#/app/iRingo.Siri)根据需要填写您的设置信息
  

## 安装链接

<ModuleInstall urlPrefix="https://github.com/NSRingo/Siri/releases/latest/download/">
  <ModuleInstall.Tab type="loon">
    <ModuleInstall.Item
      url="iRingo.Siri.plugin"
      badge={[
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="surge">
    <ModuleInstall.Item
      url="iRingo.Siri.sgmodule"
      badge={[
        {
          type: "danger",
          text: "MitM",
          outline: true,
        },
        {
          type: "warning",
          text: "脚本",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="stash">
    <ModuleInstall.Item
      url="iRingo.Siri.stoverride"
      badge={[
        {
          type: "info",
          text: "覆写",
          outline: true,
        },
        {
          type: "info",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="egern">
    <ModuleInstall.Item
      url="iRingo.Siri.yaml"
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="qx">
    <ModuleInstall.Item
      url="iRingo.Siri.snippet"
      badge={[
        {
          type: "danger",
          text: "重写",
          outline: true,
        },
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
</ModuleInstall>

## [更新日志](/changelog/Siri)

<_Footer />

---

## File: docs/guide/Siri/spotlight.mdx

---
repo: NSRingo/Siri
---

import { Steps, ModuleInstall } from "@theme";
import _Footer from "../_Footer.md";

# 🔍 聚焦搜索

:::danger ‼️ 已失效

 已通过推送安全响应更新  
禁止 MitM iOS 14 及以上版本`Siri 建议`  
`Siri 建议`配置下发所使用的`api.smoot.apple.com`的网络请求  
不再可以通过 MitM 改写  

:::

## 简介
* 激活「Siri建议/来自APPLE的内容/来自APPLE的建议」并开启全部已知可用功能。

## 解锁步骤

    <Steps>
      #### 第 1 步
      启用[`📍 定位`](../GeoServices/location) + [`🔍 聚焦搜索`](./spotlight)两个模块
      > [`📍 定位`](../GeoServices/location)的地区不可以设置为`🇨🇳CN`  
      > [`🔍 聚焦搜索`](./spotlight)的地区不可以设置为`🇨🇳CN`  
      > 可辅以`全局代理`确保稳定  

      #### 第 2 步
      打开`✈️飞行模式`，同时保持`Wi-Fi`或`有线网络`连接
      > * 未装有 SIM 卡的 iOS/iPadOS/macOS 设备，可省略`✈️飞行模式`相关步骤。  
      > * 装有 SIM 卡的 iOS/iPadOS 设备，也可通过`卡贴`或`海外 SIM 卡`的方式，绕过基于 SIM 卡的 `MCC/MNC` ([移动设备网络代码](https://zh.wikipedia.org/wiki/移动设备网络代码))检测。  

      #### 第 3 步
      重新冷启动一次`地图` app
      * 指后台无`地图`应用时，重开`地图`app
      > * 在 `Loon` 的`仪表`-`最近请求`中应观察到:  
      > * 在 `Surge` 的`工具`-`最近请求`中应观察到:  
      > * 在 `Quantumult X` 的`网络活动`中应观察到:  
      >   1. `检测设备信息`的 `https://configuration.ls.apple.com/config/defaults` 链接  
      >   2. `基于网络的地区检测`的 `https://gspe1-ssl.ls.apple.com/pep/gcc` 链接，且流量抓取结果不是`CN`  
      >   3. 获取`Siri建议`配置下发的`https://api.smoot.apple.com/bag`或`https://api.smoot.apple.cn/bag`链接

      #### 第 4 步
      执行一次Spotlight搜索，测试「来自APPLE的内容\来自APPLE的建议\Siri建议」是否正常工作
      > * 如未生效，可尝试以下方法进行激活操作:
      >   * 重启设备 (必定触发一次Siri配置文件下发检测)
      >     * 注意开启VPN的`开机自启`等相关功能，以便第一时间截取到下发的配置文件链接
      >   * macOS上关闭再开启`系统偏好设置`-`聚焦`-`Siri建议`
      >   * iOS上关闭再开启`设置`-`Siri与搜索`-`来自APPLE的内容`和`来自APPLE的建议`
      >   * 更改`设置`-`通用`-`语言与地区`-`地区`
      >   * 等待半小时，「Siri建议」会根据`基于网络的地区检测`结果向服务器`*.smoot.apple.com/bag`请求刷新区域设置与功能可用状态

      #### 第 5 步
      关闭`✈️飞行模式`，关闭[`📍 定位`](../GeoServices/location)模块  
      正常使用「来自APPLE的内容\来自APPLE的建议\Siri建议」  
      * 关闭[`📍 定位`](../GeoServices/location)模块为非必需步骤
      * 取决于是否还需要激活 [📰 News](../apple-news) 等功能
    </Steps>

## 配置方法
* 基础: 直接使用
  * 采用[默认配置](#默认设置)
* 进阶: 配合`Loon`设置面板或`Surge`参数设置功能进行个性化设置
  * 提供一定的自定义设置，如`国家与地区代码`选择、`功能`选择等
* 高级: 配合`BoxJs`及订阅使用
  
  ℹ️ 用前须知：使用`BoxJs`进行配置将被视为专业用户，官方不受理因使用`BoxJs`配置导致的各种问题

  1. 安装`BoxJs`插件并更新引用资源或脚本:
     * 安装方法及下载链接详见: [🧰 BoxJs](../box-js)
  2. 在`BoxJs`的配置面板中进行个性化设置:
     1. 浏览器访问[BoxJs.com](http://boxjs.com)
     2. 在[`应用`](http://boxjs.com/#/app)页面点开` iRingo`折叠
     3. 在[`🔍 聚焦搜索`](http://boxjs.com/#/app/iRingo.Spotlight)根据需要填写您的设置信息
  

## 功能列表
* 在以下位置及功能中可用:
  - [x] 聚焦搜索(Spotlight)
  - [x] 查询(Look Up)
  - [x] Safari浏览器(Safari)
    - [x] 视觉搜索(Visual Look Up)
    - [x] 智能历史记录
  - [x] 地图(Apple Maps)
  - [x] 新闻(Apple News)
  - [ ] 询问Siri(Ask Siri)
    - [x] 无SIM卡设备可被[`📍定位`](../GeoServices/location)模块修改切换至海外版(维基百科)
    - [ ] SIM卡设备会因「MCC / MNC」检测回退至国内版(百度百科)
  - [x] 照片
    - [x] 视觉搜索(Visual Look Up)
  - [x] 电话
  - [x] 家庭
  - [x] 日历
  - [x] 提醒事项
  - [x] 通讯录
  - [x] 信息
  - [x] 邮件
* 启用的功能:
  - [x] 来自APPLE的内容(CONTENT FROM APPLE)
  - [x] 来自APPLE的建议(SUGGESTIONS FROM APPLE)
  - [x] Siri建议(Siri Suggestions)
* 已知可用的信息卡片:
  - [x] 天气 (搜索关键词`城市名 天气`或`天气 城市名`，例如`天气 上海`，不是所有城市都有天气搜索结果)
  - [x] Siri资料(Siri Knowledge)  截图:[macOS](../blob/main/images/screenshot/Siri%20Knowledge%20-%20Spotlight%20-%20macOS.png?raw=true "Siri Knowledge - Spotlight - macOS")
  - [x] Siri建议的网站(Siri Suggested Websites)
  - [x] 维基百科 (macOS端需要Surge启用“增强模式”)
  - [ ] 地图 (当地图为中国区时不显示内容，有知道解决方法或成因的请联系我)
  - [x] 体育  截图:[macOS](../blob/main/images/screenshot/Sports%20-%20Spotlight%20-%20macOS.png?raw=true "Sports - Spotlight - macOS") / [iOS](./ScreenShots/Sports%20-%20Spotlight%20-%20iOS.jpeg?raw=true "Sports - Spotlight - iOS")
  - [x] 股票  截图:[macOS](../blob/main/images/screenshot/Stock%20-%20Spotlight%20-%20macOS.png?raw=true "Stock - Spotlight - macOS")
  - [x] 航班  截图:[macOS](../blob/main/images/screenshot/Flights%20-%20Spotlight%20-%20macOS.png?raw=true "Flights - Spotlight - macOS")
  - [x] App Store\Mac App Store  截图:[macOS](../blob/main/images/screenshot/Mac%20App%20Store%20-%20Spotlight%20-%20macOS.png?raw=true "Mac App Store - Spotlight - macOS") / [iOS](../blob/main/images/screenshot/App%20Store%20-%20Spotlight%20-%20iOS.jpeg?raw=true "App Store - Spotlight - iOS")
  - [x] 电影 & 电视节目
    - [x] tv  截图:[macOS](../blob/main/images/screenshot/tv%20-%20Spotlight%20-%20macOS.png?raw=true "tv - Spotlight - macOS")
    - [x] iTunes
  - [x] 音乐
    - [x] Apple Music  截图:[macOS](../blob/main/images/screenshot/Apple%20Music%20-%20Spotlight%20-%20macOS.png?raw=true "Apple Music - Spotlight - macOS") / [iOS](../blob/main/images/screenshot/Apple%20Music%20-%20Spotlight%20-%20iOS.jpeg?raw=true "Apple Music - Spotlight - iOS")
    - [x] iTunes
  - [x] 新闻
  - [ ] Twitter集成 (官方功能列表中有此功能，有知道解决方法或成因的请联系我)

## 安装链接

<ModuleInstall urlPrefix="https://github.com/NSRingo/Siri/releases/latest/download/">
  <ModuleInstall.Tab type="loon">
    <ModuleInstall.Item
      url="iRingo.Search.plugin"
      title="iOS"
      badge={[
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 2.1.18(377) 及以上版本",
        },
      ]}
    />
    <ModuleInstall.Item
      url="iRingo.Spotlight.plugin"
      title="macOS"
      badge={[
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 2.1.18(377) 及以上版本",
        },
      ]}
    >
      - `插件`内置代理规则
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="surge">
    <ModuleInstall.Item
      url="iRingo.Search.sgmodule"
      title="iOS"
      badge={[
        {
          type: "danger",
          text: "MitM",
          outline: true,
        },
        {
          type: "warning",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 5.9.0 及以上版本",
        },
      ]}
    />
    <ModuleInstall.Item
      url="iRingo.Spotlight.sgmodule"
      title="macOS"
      badge={[
        {
          type: "danger",
          text: "MitM",
          outline: true,
        },
        {
          type: "warning",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 5.5.0(2589) 及以上版本",
        },
      ]}
    >
      - 可通过`模块`的`编辑参数…`功能自定义内置`策略组`名称
      - 默认`策略组`名为`🌑Proxy`
      - 内置 macOS 用`域名集`:[LookUp.Wikipedia.list](https://github.com/NSRingo/Siri/releases/latest/download/LookUp.Wikipedia.list "Look Up - Wikipedia")
      - 此`域名集`只作用于macOS的`词典`的维基百科与`查询`的维基百科搜索集成
      - 需要开启Surge的`增强模式`
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="stash">
    <ModuleInstall.Item
      url="iRingo.Search.stoverride"
      title="iOS"
      badge={[
        {
          type: "info",
          text: "覆写",
          outline: true,
        },
        {
          type: "info",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 1.6.2(309) 及以上版本",
        },
      ]}
    />
    <ModuleInstall.Item
      url="iRingo.Spotlight.stoverride"
      title="macOS"
      badge={[
        {
          type: "info",
          text: "覆写",
          outline: true,
        },
        {
          type: "info",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 2.1.18(377) 及以上版本",
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="egern">
    <ModuleInstall.Item
      url="iRingo.Search.yaml"
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="qx">
    <ModuleInstall.Item
      url="iRingo.Search.snippet"
      badge={[
        {
          type: "danger",
          text: "重写",
          outline: true,
        },
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "需要 1.0.29(656) 及以上版本",
        },
      ]}
    >
      - 不含`规则集`，需要自行添加`规则集`至`设置`-`分流`-`引用`并设置`策略偏好`
      - macOS用`规则集`:[LookUp.Wikipedia.list](https://github.com/NSRingo/Siri/releases/latest/download/LookUp.Wikipedia.list "Look Up - Wikipedia")
      - 此域名集只作用于macOS的`词典`和维基百科搜索集成，iOS/iPadOS不需要此域名集。
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
</ModuleInstall>

## [更新日志](/changelog/Siri)
* v3.1.0
  * 优化与修复
    1. 移除 NanoCat-Me 的 URL polyfill, 改为 Web API 的 URL 
* v3.0.0
  * 优化与修复
    1. 重构代码
    2. 修复bug
* v2.1.5
  * 优化与修复
    1. 更新环境设置(setENV)功能，增加配置文件和缓存读取方法
    2. 修复argument配置方法
    3. 更新数据库(DataBase)格式
    4. 更新脚本结束($done)方式
* v2.1.2
  * 优化与修复
    1. 修复「国家或地区代码」的“自动”选项在某些地区设置下不生效的问题
* v2.1.1
  * 优化与修复
    1. 增加兼容方案，Quantumult X商店版现在可以使用
* v2.1.0
  * 优化与修复
    1. 更新环境设置(setENV)功能
    2. 修复Surge的argument配置方法
* v2.0.0
  * 更新功能
    1. 新增BoxJs面板支持，可以精确控制Siri功能
    2. 增加开启Safari智能历史记录功能
    3. 增加开启 [视觉搜索](https://support.apple.com/zh-cn/guide/iphone/iph37fdd714b/ios)(看图查询) 功能([效果预览1](https://t.me/GetSomeFriesChannel/65), [效果预览2](https://t.me/GetSomeFriesChannel/96))
    4. 其他新增设置项，详见BoxJs设置面板
    5. 兼容系统设置中的自定义地区设置(自定义货币，计量单位等）
  * 优化与修复
    1. 同步来自🍿️ [DualSubs](https://t.me/GetSomeFriesChannel/61) 的代码结构和逻辑

<_Footer />

---

## File: docs/guide/Weather/weather.mdx

---
repo: NSRingo/Weather
---

import { ModuleInstall } from "@theme";
import _Footer from "../_Footer.md";

# 🌤 天气

:::danger ‼️ 已失效

 已通过推送安全响应更新  
禁止 MitM iOS 15 至 iOS 17「天气 app」所使用的`weather-data.apple.com`的网络请求  
此模块已停止更新

:::

:::warning ⚠️ 最高支持

- iOS 16 beta 4 (20A5328h)
- iPadOS 16 beta 4 (20A5328h)
- macOS 13 beta 4 (22A5311f)
- tvOS 16 beta 4 (20J5344f)
- watchOS 9 beta 4 (20R5332g)

:::

:::info ℹ️ 用前须知

如果您想在配对的 Watch 上使用  
则 ⌚️ 也需安装相同的 MitM 证书

:::

## 简介
* 安装后无需任何额外配置，即可启用下列功能: 
  * 解锁全部天气数据类型(默认全解锁)
  * 替换「空气质量」数据(默认本地换算，前日同期空气质量对比采用本地缓存)
  * 添加「未来一小时降水强度」信息(默认数据源: 气象在线)
  * 替换空气质量地图(默认不替换)

## 配置方法
* 基础: 直接使用
  * 采用[默认配置](#默认设置)
* 进阶: 配合`argument`字段使用:
  * 此方法可以将相关脚本及配置固化到Loon、Surge或Stash的配置文件中
  * Loon与Surge可以使用[@baranwang](https://github.com/baranwang)的[Surge模块Argument代理](https://sgmodule-argument-proxy.vercel.app/)直接生成带配置的专属模块
    * [Surge模块Argument代理](https://sgmodule-argument-proxy.vercel.app/)的[使用说明](https://github.com/baranwang/sgmodule-argument-proxy#readme)
  * `argument`内容如下:
```
🆕V4版，键值请参见默认设置:
Switch=true&NextHour.Switch=true&NextHour.Source=www.weatherol.cn&AQI.Switch=true&AQI.Targets=HJ6332012&AQI.Local.Switch=true&AQI.Local.Standard=WAQI_InstantCast&AQI.Source=www.weatherol.cn&AQI.Comparison.Switch=true&AQI.Comparison.Source=Local&Map.AQI=false&APIs.WeatherOL.HTTPHeaders={'Content-Type':'application/json'}&APIs.ColorfulClouds.HTTPHeaders={'Content-Type':'application/json'}&APIs.ColorfulClouds.Token=&APIs.ColorfulClouds.ForceCNForAQI=true&APIs.ColorfulClouds.ForceCNForComparison=false&APIs.WAQI.HTTPHeaders={'Content-Type':'application/json'}&APIs.WAQI.Token=&Log.Level=info&Log.Location=false
V3版:
Switch=true&NextHour.Switch=true&AQI.Switch=true&AQI.Mode=WAQI Public&AQI.Location=Station&AQI.Auth=你的私钥&AQI.Scale=EPA_NowCast.2204&Map.AQI=true
V2版:
Mode=WAQI Private&Location=City&VerifyMode=Token&Token=你的私钥
```
* 高级: 配合`BoxJs`及订阅使用
  
  ℹ️ 用前须知：使用`BoxJs`进行配置将被视为专业用户，官方不受理因使用`BoxJs`配置导致的各种问题

  1. 安装`BoxJs`插件并更新引用资源或脚本:
     * 安装方法及下载链接详见: [🧰 BoxJs](./box-js)
  2. 在`BoxJs`的配置面板中进行个性化设置:
     1. 浏览器访问[BoxJs.com](http://boxjs.com)
     2. 在[`应用`](http://boxjs.com/#/app)页面点开` iRingo`折叠
     3. 在[`🌤 天气`](http://boxjs.com/#/app/iRingo.Weather)根据需要填写您的设置信息
  * 使用彩云天气源必须配置令牌，请见: [彩云API](http://caiyunapp.com/api/weather_intro.html)
  * 申请WAQI令牌请见: [Air Quality Open Data Platform API Token Request Form](https://aqicn.org/data-platform/token/cn/#/)
  

## 功能列表
* 解锁全部天气数据类型
  * 苹果天气APIv2: 当前天气，10日天气预报，每小时天气预报，"history"，"weatherChange"，未来一小时降水强度，极端天气，空气质量，"appLocationConfig"
  * 苹果天气APIv3: 当前天气，10日天气预报，每小时天气预报，"weatherChange"，未来一小时降水强度，"news"，天气警报，天气警报通知，空气质量
* 替换「空气质量」数据
  * 前日同期空气质量对比，数据源: 
    * [World Air Quality Index Project](https://waqi.info/) (查询速度慢)
    * [彩云天气](https://caiyunapp.com/weather/)
    * 本地缓存 (默认方法，对同一地点同一时间的空气质量进行缓存，需等待次日生效)
  * 当没有空气污染数据时，调用数据源获取空气污染信息，数据源: 
    * [World Air Quality Index Project](https://waqi.info/)
    * [彩云天气](https://caiyunapp.com/weather/)
    * [气象在线](https://www.weatherol.cn/index.html)
    * 本地换算，数据源: (默认来源，使用 [WAQI InstantCast 算法](https://aqicn.org/faq/2015-03-15/air-quality-nowcast-a-beginners-guide/))
      * [和风天气](https://www.qweather.com): iOS 15，iPadOS 15，macOS 12及以下版本
      * [WeatherKit](https://developer.apple.com/cn/weatherkit/): iOS 16，iPadOS 16，macOS 13
* 添加「未来一小时降水强度」信息，数据源: 
  * [彩云天气](https://caiyunai.com/map/)
  * [气象在线](https://www.weatherol.cn/index.html)
* 替换「空气质量地图」数据，数据源: 
  * [World Air Quality Index Project](https://waqi.info/)(默认关闭，有图层色彩差异问题)

* 注:
  * 天气信息来源为`weather-data.apple.com`的Watch可使用本模块改写天气信息，需要在Watch上安装与代理设备相同的`CA证书`以进行MitM。
  * 「未来一小时降水强度」通知功能需要在天气APP内手动开启
  * 「未来一小时降水强度」在近期无降水时不显示，属正常现象
  * 「极端天气」通知功能没有实际作用
  * 替换的空气质量地图偏色问题暂未解决，属正常现象，地图图层有偏移也属正常现象
  * 天气信息可用性查询，约每天首次打开天气app时触发，可以通过删除城市，删除天气app强制刷新

## 安装链接
### 🆕V4版
<ModuleInstall
  urlPrefix="https://github.com/NSRingo/Weather/raw/main/modules/"
  urls={{
    loon: "Weather.plugin",
    surge: "Weather.sgmodule",
    qx: "Weather.snippet",
    stash: "Weather.stoverride",
    shadowrocket: "Weather.sgmodule",
  }}
/>

## 适用版本
* 三种来源:
  * `api.weather.com`:部分Watch(不可修改)
  * `weather-data.apple.com`:iOS天气APP、macOS天气小组件、地图、部分Watch(可修改)
  * `weather-data-origin.apple.com`:iOS天气小组件、iOS天气APP的回退查询(不确定)
* 三种版本: 
  * `v1`:Watch、地图、iOS 14、iPadOS 14及以下的天气APP、macOS 11及以下的天气小组件
  * `v2`:iOS 15、iPadOS 15的天气APP、macOS 12的天气小组件
  * `v3`:iOS 16、iPadOS 16、macOS 13及以上的天气APP

## 默认设置
- [x] 总开关(Switch)
- [x] [下小时降水强度] 修改开关(NextHour.Switch)
- [下小时降水强度] 数据源(NextHour.Source)
  - [x] 气象在线(www.weatherol.cn)
  - [ ] 彩云天气(专业套餐及以上)(api.caiyunapp.com)
- [x] [空气质量]修改开关(AQI.Switch)
- [空气质量] 需要修改的标准(选中的空气质量标准会被替换。请注意各国监测的污染物种类可能有所不同，转换算法或API未必适合当地。)(AQI.Targets)
  - [ ] 加拿大(CA AQHI)(CA.AQHI)
  - [ ] 法国(FR ATMO)(FR.ATMO)
  - [ ] 德国(UBA)(UBA)
  - [ ] 印度(NAQI)(NAQI)
  - [ ] 意大利(EU EAQI)(EU.EAQI)
  - [ ] 墨西哥(ICARS)(ICARS)
  - [ ] 荷兰(NL LKI)(NL.LKI)
  - [ ] 新加坡(SG NEA)(SG.NEA)
  - [ ] 韩国(KR CAI)(KR.CAI)
  - [ ] 西班牙(ES MITECO)(ES.MITECO)
  - [ ] 英国(DAQI)(DAQI)
  - [ ] 墨西哥(ICARS)(ICARS)
  - [ ] 美国(及日本)(EPA NowCast)(EPA_NowCast)
  - [x] 中国(HJ 633—2012)(HJ6332012)
- [x] [空气质量] 本地替换(使用本地替换算法，将Apple数据转换为特定标准)(AQI.Local.Switch)
- [空气质量] 本地替换算法(AQI.Local.Standard)
  - [x] WAQI InstantCast(WAQI_InstantCast)
- [空气质量] 数据源(AQI.Source)
  - [ ] 仅使用Apple数据(Local)
  - [x] 气象在线(www.weatherol.cn)
  - [ ] 彩云天气(专业套餐及以上)(api.caiyunapp.com)
  - [ ] The World Air Quality Project(api.waqi.info)
- [x] [空气质量] 对比昨日空气质量(AQI.Comparison.Switch)
- [空气质量] 数据源(AQI.Comparison.Source)
  - [x] 仅使用缓存数据(Local)
  - [ ] 彩云天气(个人套餐及以上)(api.caiyunapp.com)
  - [ ] The World Air Quality Project (非常慢)(api.waqi.info)
- [x] [开发中] [空气质量地图] 修改开关(Map.AQI)
- [气象在线] HTTP请求头(APIs.WeatherOL.HTTPHeaders): `{ 'Content-Type': 'application/json' }`
- [彩云天气] HTTP请求头(APIs.ColorfulClouds.HTTPHeaders): `{ 'Content-Type': 'application/json' }`
- [彩云天气] 彩云天气令牌(APIs.ColorfulClouds.Token): 
- [x] [彩云天气] 强制使用国标AQI(空气质量)(APIs.ColorfulClouds.ForceCNForAQI)
- [ ] [彩云天气] 强制使用国标AQI(对比昨日空气质量)(APIs.ColorfulClouds.ForceCNForComparison)
- [WAQI] HTTP请求头(APIs.WAQI.HTTPHeaders): `{ 'Content-Type': 'application/json' }`
- [WAQI] WAQI令牌(APIs.WAQI.Token): 
- 日志级别 (Log.Level)
  - [ ] 调试(debug)
  - [x] 信息(info)
  - [ ] 警告(warn)
  - [ ] 错误(error)
- [ ] 在日志中显示坐标(Log.Location)

## 更新日志
### 🆕V4版
* v4.0.0-RC
  * 优化与修复
      1. 修复了填写WAQI token后只选择了AQI源为WAQI时无法处理WAQI数据的[问题](https://t.me/GetSomeFries/194317)
      2. 给彩云天气和气象在线裁了个logo
      3. 删除了和风天气的API
      4. 从旧版升级到新版会收到重新设置的提示
      5. 调试级别下会打印下小时降水的大致修改情况

* v4.0.0-beta8
  * 优化与修复
      1. 填写了WAQI token后，会使用WAQI station feed获取监测站ID
      2. 现已可缓存WAQI的token
      3. 修复了缓存写入的问题
      4. 修复了WAQI AQI feed API可能无法使用的问题
      5. 修复了WAQI历史数据查找的问题
      6. 重写了查找AQI缓存的函数
      7. 添加了和风天气的API(未完善、未启用)
      8. (Box.js)更新了API付费需求和坐标日志的描述，移除WAQI模式选项
      9. (开发者)现在可以使用 isNonEmptyString() 和 isObject() 进行类型检查
      10. (开发者)toAirQuality() 现在不会限制 aqiObject.primary 的值

* v4.0.0-beta7
  * 优化与修复
      1. 修复了WAQI数据源无法使用的问题
      2. 支持使用WAQI来查询历史空气质量(需更新Box.js订阅，API需三次请求，非常慢，建议针对 api.waqi.info 添加代理规则)
      3. 修复了下小时降水和对比昨日空气质量数据缺失时，模块崩溃的错误
      4. 修复了WAQI作为AQI数据源且苹果无污染物数据时，无法显示主要污染物的问题
      5. (开发者)完善类型注释
  * 已知问题: 
      1. WAQI token缓存还没做

* v4.0.0-beta6
  * 优化与修复
      1. 修复了WAQI API无法使用的若干问题
      2. 添加了获取WAQI历史AQI数据的支持(但还没有启用)
      3. 添加了日志，并可以调节日志详尽程度
      4. 在没有数据时将temporarilyUnavailable、temporarily_unavailable设置为true
      5. (开发者)完善JSDoc类型注释

* v4.0.0-beta5
  * 优化与修复
      1. 修复了iOS 14上没有正确检测需下小时降水情况的问题

* v4.0.0-beta4
  * 优化与修复
      1. 修复了APIv3上无法正确识别雨停时间的问题
      2. BoxJS更新，新增更多AQI标准可选择被替换

* v4.0.0-beta3
  * 优化与修复
      1. 修复了下小时降水不能正确显示的问题
      2. 修复了主要污染物无法正确显示的问题
  * 已知问题
      1. 主要污染物WAQI源可能仍有问题

* v4.0.0-beta2
  * 优化与修复
      1. 修复了英文语系下降水描述显示不正确的问题
      2. 修复了只在下小时降水中使用彩云天气时，无法正常显示降水类型的问题
      3. 修复了iOS 14上无法本地转换AQI的问题 
      4. 修复了小雨、小雪检测不正常的问题
      5. 修复了彩云天气作为AQI数据源时，无视「对比昨日空气质量」功能开关的问题
  * 已知问题
      1. iOS 14上「未来一小时降水强度」功能工作仍不正常

* v4.0.0-beta1
  * 功能更新
      1. 支持Apple APIv3(即正在测试中的iOS 16、iPadOS 16和macOS Ventura)
      2. 支持本地换算AQI标准
      3. 支持对比昨日空气质量状况(本地缓存或彩云天气的历史数据)
      4. 对降水强度的判断更加精确
      5. 修复了降水即将开始却显示为降水即将停止的bug
      6. 气象在线不再实时更新降水数据，脚本会自动筛选过期数据
  * 已知问题: 
      1. iOS 14无法使用
      2. (下小时降水)仅将彩云天气作为数据源时，无法正常显示降水状态
      3. (下小时降水)如果只能从API得到一个数据，脚本会超时崩溃
      4. 空气质量的修改目标只有中国和美国
      5. 本地换算的AQI虽然使用了WAQI算法，但是与WAQI略有差距
      6. 气象在线和彩云天气作为AQI数据源时，logo无法正常显示
      7. WAQI的模式切换功能不起作用
      8. 仍不支持修改空气质量地图、一小时预报降水地图
      9. (开发者)JSDoc的类型注释不完善
      10. (开发者)Debug设置没有作用

### V3版
* v3.2.x
  * 功能更新
      1. 支持iOS14的「未来一小时降水强度」
  * 优化与修复
      1. 同步beta版部分功能代码
      2. 修复无传入情况下的时间生成
      3. 更新了时间换算功能
      4. 更新了部分outputNextHour的实现方法
      5. 将outputNextHour的function置于末端
      6. 分离降水量等级换算功能
      7. 分离每分钟降水数据生成功能
      8. 重构了天气摘要生成功能，现在应该可以正常通知(最后一次抓取数据)80分钟内的降水

* v3.1.5
  * 功能更新
      1. 支持argument方式配置
      2. 现在「空气质量」数据未取得的情况下，会在天气app对应城市的页面内不显示空气质量板块
      3. Shadowrocket, Loon, Surge, Stash的脚本超时时间调整为20秒
      4. 默认关闭「空气质量地图」修改
      5. 增加了WAQI.info的logo by @ranckinuta
  * 优化与修复
      1. 更新了元数据生成功能
      2. 更新了时间换算功能
      3. 更新了空气质量级别换算功能
      4. 更新了污染物参数转换功能
      5. 更新了「未来一小时降水强度」的刷新时间，现在是15分钟
      6. 修复了 WAQI.info的logo在v1版api上的显示

* v3.1.0
  * 功能更新
      1. 添加降水强度显示
        *「预报有雨」=>「预报有小雨」/「预报有暴雨」/「即将停止下雨」

* v3.0.0
  * 功能更新
      1. 添加「未来一小时降水强度」信息和通知功能，数据来源: 气象在线(需iOS15及更高版本)
      2. 可替换空气质量地图，数据来源: waqi.info(此功能默认关闭)
      3. BoxJs面板更新，现在可以单独控制三个子功能开关

### V2版
* v2.x
  * 功能更新
      1. 天气信息可用性查询，始终返回所有功能列表(如: 为原本不支持空气质量信息和下一小时降水强度的地区解锁全部功能)
      2. 同步来自🍿️ [DualSubs](https://t.me/GetSomeFriesChannel/61) 的代码结构和逻辑(优化后WAQI公共API查询时间约1秒，私有API查询时间约0.2秒)
      3. 为添加其他功能面板，提升了BoxJs的缓存结构(兼容旧版本设置，但如需更新设置，则需要重新填写)

### V1版
* v1.x
  * 功能更新
      1. 启用模块后，修改空气质量数据源为WAQI，标准为AQI(US)

<_Footer />

---

## File: docs/guide/Weather/weather-kit.mdx

---
repo: NSRingo/WeatherKit
---

import { ModuleInstall } from "@theme";
import Footer from "../_Footer.md";

# 🌤 WeatherKit

:::warning ⚠️ 最低支持

- iOS 18
- iPadOS 18
- macOS 15
- tvOS 18
- visionOS 2
- watchOS 11

:::

:::info ℹ️ 用前须知

如果您想在配对的 Watch 上使用  
则 ⌚️ 也需安装相同的 MitM 证书

:::

## 简介
* 解锁全部天气数据类型
* 替换「空气质量」数据
* 添加「未来一小时降水强度」信息
* 替换「天气」数据
  * 包括「当前天气」、「每小时天气预报」、「10日天气预报」
* 修改「天气预警」数据


:::tip ✅ 小提示

1. `未来一小时降水强度`面板仅在此城市未来一小时内有降水的情况下显示。  
2. `降水通知`仅在城市位于您天气 app 的关注列表中，并于关注列表右上角的`通知`中，开启此城市的`未来一小时降水强度通知`，且此城市的降水您还并未主动获知（主动查看或显示在小组件上均为已获知）的情况下，才会进行降水通知。

:::

## 配置方法
* 基础: 直接使用
  * 采用[默认配置](#正式版模块默认设置)
* 进阶: 配合`Loon`设置面板或`Surge`参数设置功能进行个性化设置
  * 提供一定的自定义设置，如`数据源`选择、`需要替换的供应商`选择等
* 高级: 配合`BoxJs`及订阅使用
  
  ℹ️ 用前须知：使用`BoxJs`进行配置将被视为专业用户，官方不受理因使用`BoxJs`配置导致的各种问题

  1. 安装`BoxJs`插件并更新引用资源或脚本:
     * 安装方法及下载链接详见: [🧰 BoxJs](../box-js)
  2. 在`BoxJs`的配置面板中进行个性化设置:
     1. 浏览器访问[BoxJs.com](http://boxjs.com)
     2. 在[`应用`](http://boxjs.com/#/app)页面点开` iRingo`折叠
     3. 在[`🌤 WeatherKit`](http://boxjs.com/#/app/iRingo.WeatherKit)根据需要填写您的设置信息
  

:::info ℹ️ 配置优先级

正式版模块的`Storage`默认为`Argument`：优先使用模块参数，模块未提供的设置才从 BoxJs 读取。需要只使用 BoxJs 配置时，请将模块参数中的`Storage`改为`PersistentStore`。

:::

:::tip ✅ 小提示

1. `彩云天气`的`分钟级降水接口`权限不对普通开发者开放，需要额外采购，请勿在此脚本中填写使用普通开发者token  
2. `和风天气`的`昨日空气质量对比`接口权限仅对付费订阅用户开放，请勿在此脚本中填写使用普通开发者token  

:::

## BoxJs 设置说明

BoxJs 使用完整配置，提供 10 个数据集和 21 个可见设置；正式版模块参数只暴露其中 6 个已支持的数据集与常用设置。

### 数据集与天气

* `[数据集]`
  * 决定哪些 WeatherKit FlatBuffer 数据槽需要解析和处理；未选择的数据槽保持 Apple 原始内容透传。
  * BoxJs 默认全选`airQuality`、`currentWeather`、`forecastDaily`、`forecastHourly`、`forecastNextHour`、`news`、`weatherAlerts`、`weatherChange`、`trendComparison`与`locationInfo`。
  * 正式版模块参数只提供空气质量、当前天气、每日预报、每小时预报、未来一小时降水强度与天气预警 6 项。
* `[天气] 替换范围`（默认 `CN`）
  * 填写正则表达式，只替换国家或地区代码匹配的天气数据；默认只替换中国大陆。
* `[天气] 数据源`（默认 `ColorfulClouds`）
  * `WeatherKit`: 保留 Apple 原始天气数据。
  * `ColorfulClouds`: 使用彩云天气替换当前天气、每小时预报与每日预报。
  * `QWeather`: 使用和风天气替换上述天气数据，需要正确的 Host 与 Token。
* `[天气预警] 数据源`（默认 `QWeatherWeb`）
  * `WeatherKit`: 不修改 Apple 原始天气预警。
  * `QWeatherWeb`: 从和风天气网页取得预警，无需 API Token。
  * `QWeather`: 使用和风天气 API，需要 Host 与 Token。
  * `ColorfulClouds`: 使用彩云天气 API，需要 Token。
* `[未来一小时降水强度] 数据源`（默认 `ColorfulClouds`）
  * `WeatherKit`: 不添加数据。
  * `ColorfulClouds`: 使用彩云天气分钟级降水；普通开发者 Token 不包含此接口权限。
  * `QWeather`: 使用和风天气，需要 Host 与 Token。

### 今日空气质量

* `[今日污染物] 数据源`（默认 `ColorfulClouds`）
  * 使用彩云天气或和风天气填补污染物浓度数据。
* `[今日污染物 - 单位转换] 替换目标`（默认不选择）
  * 可选择美国`EPA_NowCast`、欧盟`EU.EAQI`、中国`HJ6332012`或德国`UBA`。
  * 只为选中的空气质量标准转换污染物单位；转换会产生小数和轻微精度损失，小数部分也可能被省略。
* `[今日污染物 - 单位转换] 模式`（默认 `Scale`）
  * `Scale`: 使用各空气质量标准要求的单位。
  * `ugm3`、`EU_ppb`、`US_ppb`: 除非标准另有要求，否则分别转换为`µg/m³`、欧盟 ppb 或美标 ppb。
  * `Force_ugm3`、`Force_EU_ppb`、`Force_US_ppb`: 强制所有污染物使用指定单位。
* `[今日空气指数] 替换目标`（默认 `HJ6332012`）
  * 选择需要替换指数的空气质量标准；支持中国、爱尔兰、奥地利、比利时、德国、法国、韩国、加拿大、捷克、荷兰、美国、墨西哥、欧盟、瑞士、西班牙、新加坡、印度与英国标准。
* `[今日空气指数] 数据源`（默认 `Calculate`）
  * `Calculate`: 使用 iRingo 内置算法和污染物数据计算。
  * `ColorfulCloudsUS`: 使用彩云天气美标指数（2018 年 9 月版）。
  * `ColorfulCloudsCN`: 使用彩云天气国标指数（2012 年 2 月版）。
  * `QWeather`: 使用和风天气国标指数（2012 年 2 月版）。
* `[今日空气指数] 强制主要污染物`（默认开启）
  * 忽略国标`HJ 633—2012`仅在 AQI 大于 50 时提供主要污染物的限制，始终使用 IAQI 最大的污染物作为主要污染物。

### 昨日对比

* `[空气质量 - 对比昨日] 变化时替换`（默认关闭）
  * 开启后，即使 Apple 已提供昨日对比，只要今日空气质量指数被修改，也会重新生成昨日对比结果。
* `[昨日污染物] 数据源`（默认 `QWeather`）
  * 使用和风天气的昨日污染物数据，供 iRingo 内置算法计算昨日空气质量指数；该历史接口需要相应订阅权限。
* `[昨日空气指数] 数据源`（默认 `ColorfulCloudsUS`）
  * 可选择内置算法、彩云天气美标、彩云天气国标或和风天气国标，结果用于与今日空气质量指数比较。

### 内置空气质量算法

* `[iRingo 内置算法] 算法`（默认 `EU_EAQI`）
  * `None`: 不转换。
  * `UBA`: 德国 LQI（FB001846）。
  * `EU_EAQI`: 欧盟 EAQI（ETC HE Report 2024/17）。
  * `WAQI_InstantCast_US`: 美标 InstantCast（EPA-454/B-24-002）。
  * `WAQI_InstantCast_CN`: 国标 InstantCast（HJ 633—2012）。
  * `WAQI_InstantCast_CN_25_DRAFT`: 国标 InstantCast（HJ 633 2025 年草案）。
  * 另支持加拿大 AQHI、香港 AQHI、AQHI-Multi（中国/中国+香港）与致死风险 AQHI（中国/中国+香港）。
* `[iRingo 内置算法] 允许指数超标`（默认开启）
  * 允许美标和国标指数超过 500；超过 500 后，天气 app 中表示等级颜色的小圆点会消失。

### API 与调试

* `[API] 彩云天气令牌`（默认留空）
  * 用于需要彩云天气授权的接口；留空时使用脚本内置的可用能力。
* `[API] 和风天气主机`（默认 `devapi.qweather.com`）
  * 填写和风天气为您的订阅分配或要求使用的 API 主机名。
* `[API] 和风天气令牌`（默认留空）
  * 使用和风天气 API 数据源时填写。
* `[API] WAQI 令牌`（默认留空）
  * 填写后自动使用 WAQI 高级 API。
* `[日志等级]`（默认 `WARN`）
  * 可选`OFF`、`ERROR`、`WARN`、`INFO`、`DEBUG`或`ALL`；排查问题时再提高日志详细程度。

## 功能列表
* 按数据集选择处理范围
  * 正式版支持「空气质量」、「当前天气」、「每日预报」、「每小时预报」、「未来一小时降水强度」与「天气预警」
  * 未选择的数据集保持 Apple 原始内容透传
* 替换天气数据
  * 彩云天气（默认，可选 Token）
  * 和风天气（需要 Host 和 Token）
  * WeatherKit（不替换）
* 修改天气预警
  * 和风天气网页（默认，无需 Token）
  * 和风天气 API（需要 Host 和 Token）
  * 彩云天气 API（需要 Token）
  * WeatherKit（不修改）
* 添加未来一小时降水强度
  * 彩云天气（默认，可选 Token）
  * 和风天气（需要 Host 和 Token）
  * WeatherKit（不添加）
* 填补空气质量污染物数据
  * 彩云天气（默认，可选 Token）
  * 和风天气（需要 Host 和 Token）
* 使用内置算法计算空气质量指数
  * 默认使用欧盟 EAQI（ETC HE Report 2024/17）
  * 支持德国 LQI、美国与中国 InstantCast、加拿大及香港 AQHI 等算法

## 安装链接

<ModuleInstall urlPrefix="https://github.com/NSRingo/WeatherKit/releases/latest/download/">
  <ModuleInstall.Tab type="loon">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.lpx"
      badge={[
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="surge">
    <ModuleInstall.Item 
      url="iRingo.WeatherKit.sgmodule"
      badge={[
        {
          type: "danger",
          text: "MitM",
          outline: true,
        },
        {
          type: "warning",
          text: "脚本",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="stash">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.stoverride"
      badge={[
        {
          type: "info",
          text: "覆写",
          outline: true,
        },
        {
          type: "info",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="egern">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.yaml"
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="qx">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.snippet"
      badge={[
        {
          type: "danger",
          text: "重写",
          outline: true,
        },
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
</ModuleInstall>

## 安装链接(Rewrite 版)

<ModuleInstall urlPrefix="https://github.com/NSRingo/WeatherKit/raw/main/modules/">
  <ModuleInstall.Tab type="shadowrocket">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.Rewrite.srmodule"
      badge={[
        {
          type: "tip",
          text: "HTTPS 解密",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="loon">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.Rewrite.lpx"
      badge={[
        {
          type: "warning",
          text: "重写",
          outline: true,
        },
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="surge">
    <ModuleInstall.Item 
      url="iRingo.WeatherKit.Rewrite.sgmodule"
      badge={[
        {
          type: "warning",
          text: "HTTP 重写",
          outline: true,
        },
        {
          type: "danger",
          text: "MitM",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="egern">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.Rewrite.yaml"
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="stash">
    <ModuleInstall.Item
      url="iRingo.WeatherKit.Rewrite.stoverride"
      badge={[
        {
          type: "info",
          text: "改写",
          outline: true,
        },
        {
          type: "info",
          text: "MitM",
          outline: true,
        },
      ]}
    />
  </ModuleInstall.Tab>
</ModuleInstall>

## [更新日志](/changelog/WeatherKit)

## 正式版模块默认设置
* [数据集]
  * [x] airQuality: 空气质量
  * [x] currentWeather: 当前天气
  * [x] forecastDaily: 每日预报
  * [x] forecastHourly: 每小时预报
  * [x] forecastNextHour: 未来一小时降水强度
  * [x] weatherAlerts: 天气预警
* [天气] 数据源
  * [ ] WeatherKit: WeatherKit（不替换）
  * [x] ColorfulClouds: 彩云天气
  * [ ] QWeather: 和风天气
* [天气预警] 数据源
  * [ ] WeatherKit: WeatherKit（不修改）
  * [x] QWeatherWeb: 和风天气网页
  * [ ] QWeather: 和风天气 API
  * [ ] ColorfulClouds: 彩云天气 API
* [未来一小时降水强度] 数据源
  * [ ] WeatherKit: WeatherKit（不添加）
  * [x] ColorfulClouds: 彩云天气
  * [ ] QWeather: 和风天气
* [今日污染物] 数据源
  * [x] ColorfulClouds: 彩云天气
  * [ ] QWeather: 和风天气
* [iRingo 内置算法] 算法
  * [x] EU_EAQI: 欧盟 EAQI（ETC HE Report 2024/17）
* [API] 和风天气主机: devapi.qweather.com
* [储存] 配置类型: Argument
* [调试] 日志等级: WARN

<Footer />

---

## File: docs/guide/_Footer.md

## 相关链接

### iOS 18、macOS 15、watchOS 11 及以上

| [🌤WeatherKit](/guide/Weather/weather-kit) | [📍定位服务](/guide/GeoServices/location-service) | [🗺️MapKit](/guide/GeoServices/map-kit) | [🟥Apple 智能](/guide/Siri/apple-intelligence) | [⭕Siri](/guide/Siri/siri) | [📺TV](/guide/apple-tv) | [📰News](/guide/apple-news) | [~~✈TestFlight~~](/guide/test-flight) | [⌚️WATCH](/guide/apple-watch) | [🧰BoxJs](/guide/box-js) |
| :--------------------------------------------: | :----------------------------------------------------: | :------------------------------------: | :-------------------------------------------------: | :-----------------------------: | :---------------------------: | :-------------------------------: | :----------------------------------------: | :----------------------------------: | ----------------------------- |

### iOS 17、macOS 14、watchOS 10 及以下

| [~~🌤天气~~](/guide/Weather/weather) | [📍定位服务](/guide/GeoServices/location-service) | [🗺️MapKit](/guide/GeoServices/map-kit) | [~~🔍聚焦搜索~~](/guide/Siri/spotlight) | [📺TV](/guide/apple-tv) | [📰News](/guide/apple-news) | [~~🌐专用代理~~](/guide/private-relay) | [~~✈TestFlight~~](/guide/test-flight) | [⌚️WATCH](/guide/apple-watch) | [🧰BoxJs](/guide/box-js) |
| :--------------------------------------: | :----------------------------------------------------: | :------------------------------------: | :------------------------------------------: | :---------------------------: | :-------------------------------: | :-----------------------------------------: | :----------------------------------------: | :----------------------------------: | :---------------------------: |

---

## File: docs/guide/apple-news.mdx

---
repo: NSRingo/News
---

import { Steps, ModuleInstall } from "@theme";
import _Footer from "./_Footer.md";

# 📰 News

## 简介
* 解锁`News`app 使用，并自定义部分设置与功能

## 解锁步骤

    <Steps>
      ### 第 1 步
      启用[`📍 定位`](./GeoServices/location) + [`📰 News`](./apple-news)两个模块
      > * `iOS` 与 `iPadOS` 设备，还需额外在`设置`-`通用`-`语言与地区`中，将`地区`设置改为 `News` 可用地区  
      > * `macOS` 设备，可以通过为 `News` app 创建`替身`的方式，来绕过 `News` app 隐藏的问题  
      > * 目前，仅有`美国`、`英国`、`加拿大`、`澳大利亚`四国支持 `News` 服务  

      ### 第 2 步
      根据您所使用的代理APP不同，指定相关分流策略为`🇺🇸美国`(或其他 `News` 可用地区)代理策略或节点
      > * 部分代理软件所使用的`模块`或`插件`中已内置了`规则集`或`代理规则`，无需额外添加相关`规则`或`分流`，其他代理软件需要手动添加相关`规则`或`分流`并指定相关策略，具体差异请参看 [安装链接](#安装链接) 段落中的使用说明。  
      > * 无分流配置的情况下，也可使用`全局代理`模式。  

      ### 第 3 步
      打开`✈️飞行模式`，同时保持`Wi-Fi`或`有线网络`连接
      > * 未装有 SIM 卡的 iOS/iPadOS/macOS 设备，可省略`✈️飞行模式`相关步骤。  
      > * 当存在`移动蜂窝网络`时，不触发此检测方式，将直接采用基于SIM卡的[移动设备网络代码](https://zh.wikipedia.org/wiki/移动设备网络代码)「MCC / MNC」进行检测
      > * 装有 SIM 卡的 iOS/iPadOS 设备，也可通过`卡贴`或`海外 SIM 卡`的方式，绕过基于 SIM 卡的 `MCC/MNC` ([移动设备网络代码](https://zh.wikipedia.org/wiki/移动设备网络代码))检测。  
      > * 基于以上原因，推荐 Mac 或无 SIM 卡的 iPad 使用 [`📰 News`](./apple-news)

      ### 第 4 步
      重新冷启动一次`地图` app
      * 指后台无`地图`应用时，重开`地图`app
      > * 在 `Loon` 的`仪表`-`最近请求`中应观察到:  
      > * 在 `Surge` 的`工具`-`最近请求`中应观察到:  
      > * 在 `Quantumult X` 的`网络活动`中应观察到:  
      >   1. `基于网络的地区检测`的 `https://gspe1-ssl.ls.apple.com/pep/gcc` 链接，且流量抓取结果不是`CN`  
      >   2. `检测设备信息`的 `https://configuration.ls.apple.com/config/defaults` 链接  

      ### 第 5 步
      打开`News`，此时应是[解锁状态说明](#解锁状态说明)中的`解锁成功`状态
      > * 首次加载 `News` 需保证 `gateway.icloud.com` 为海外线路  
      > * 使用 `News` 过程中 `gateway.icloud.com` 无策略或线路要求  

      ### 第 6 步
      关闭`✈️飞行模式`，正常使用 News
      > * 关闭`✈️飞行模式`后，如再次触发基于 SIM 卡的 `MCC/MNC` ([移动设备网络代码](https://zh.wikipedia.org/wiki/移动设备网络代码))检测，则 News 会回到[解锁状态说明](#解锁状态说明)中的`解锁失效`状态，此时需从[第 3 步](#第-3-步)再次操作。  
    </Steps>

## 配置方法
* 基础: 直接使用
  * 采用[默认配置](#默认设置)
* 进阶: 配合`Loon`设置面板或`Surge`参数设置功能进行个性化设置
  * 提供一定的自定义设置，如内置规则的`分流策略`选择、`国家或地区代码`选择等
* 高级: 配合`BoxJs`及订阅使用
  
  ℹ️ 用前须知：使用`BoxJs`进行配置将被视为专业用户，官方不受理因使用`BoxJs`配置导致的各种问题

  1. 安装`BoxJs`插件并更新引用资源或脚本:
     * 安装方法及下载链接详见: [🧰 BoxJs](./box-js)
  2. 在`BoxJs`的配置面板中进行个性化设置:
    1. 浏览器访问[BoxJs.com](http://boxjs.com)
    2. 在[`应用`](http://boxjs.com/#/app)页面点开` iRingo`折叠
    3. 在[`📰 News`](http://boxjs.com/#/app/iRingo.News)根据需要填写您的设置信息
  

## 解锁状态说明
|  锁定状态  | 解锁成功 | 解锁失效 | 
| :---: | :---: | :---: |
| 未通过地区检测  | 已成功通过地区检测 | 通过检测后，再次触发检测时未通过检测  |
| 请在`✈️飞行模式`下通过`Wi-Fi`或`有线网络`再次执行解锁步骤  | `gateway.icloud.com`需走代理才能完整加载内容 | 请在`✈️飞行模式`下通过`Wi-Fi`或`有线网络`再次执行解锁步骤  |
| Apple News isn't supported in your current region. | **Feed Unavailable**   There may be a problem with the sever or network. Plase try again later. | **Feed Unavailable**  Apple News isn't supported in your current region. |
||||

## 关于新闻小组件
* 新闻小组件`parsecd/1.0 ({Device}; {Version} {Build}) News/1`没有地区限制，可以任意区域环境下使用
* 新闻小组件内容由`Siri建议`服务`api*.smoot.apple.com`提供，而不是`新闻`服务`news-*.apple.com`，已在`🆕新版Siri_Suggestions.*`中修复

## 关于体育比分与赛事关注
* 关注的球队与赛事内容由`体育`服务`WatchListKit.framework`提供，而不是`新闻`服务`news-*.apple.com`，已在`🆕V3版`中修复

## 安装链接

<ModuleInstall urlPrefix="https://github.com/NSRingo/News/releases/latest/download/">
  <ModuleInstall.Tab type="loon">
    <ModuleInstall.Item
      url="iRingo.News.plugin"
      badge={[
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
      ]}
    >
      - `插件`内置代理规则，使用前请先修改为自己指定的`美国/英国/加拿大/澳大利亚`策略组或节点
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="surge">
    <ModuleInstall.Item
      url="iRingo.News.sgmodule"
      badge={[
        {
          type: "danger",
          text: "MitM",
          outline: true,
        },
        {
          type: "warning",
          text: "脚本",
          outline: true,
        },
        {
          type: "info",
          text: "需要 iOS 5.9.0 及以上版本",
        },
        {
          type: "info",
          text: "需要 macOS 5.5.0(2589) 及以上版本",
        }
      ]}
    >
      - `模块`内置`规则集`，可通过`模块`的`编辑参数…`功能自定义内置`策略组`名称
      - 默认`策略组`名为`🇺🇸美国`，使用前请先修改为自己指定的`美国/英国/加拿大/澳大利亚`策略组或节点
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="stash">
    <ModuleInstall.Item
      url="iRingo.News.stoverride"
      badge={[
        {
          type: "info",
          text: "覆写",
          outline: true,
        },
        {
          type: "info",
          text: "MitM",
          outline: true,
        },
        {
          type: "info",
          text: "脚本",
          outline: true,
        },
      ]}
    >
      - `覆写`内置代理规则
      - 使用前请先修改为自己指定的`美国/英国/加拿大/澳大利亚`策略组或节点
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="egern">
    <ModuleInstall.Item
      url="iRingo.News.yaml"
    />
  </ModuleInstall.Tab>
  <ModuleInstall.Tab type="qx">
    <ModuleInstall.Item
      url="iRingo.News.snippet"
      badge={[
        {
          type: "danger",
          text: "重写",
          outline: true,
        },
        {
          type: "tip",
          text: "MitM",
          outline: true,
        },
      ]}
    >
      - 不含`规则集`，需要自行添加`规则集`至`设置`-`分流`-`引用`并设置`策略偏好`
      - `域名集`:[News.list](https://github.com/NSRingo/News/releases/latest/download/News.list "News")
      - 使用前请先修改`策略偏好`为自己指定的`美国/英国/加拿大/澳大利亚`策略组或节点
    </ModuleInstall.Item>
  </ModuleInstall.Tab>
</ModuleInstall>

## [更新日志](/changelog/apple-news)

## 默认设置
* Proxy: 策略组
  * 仅`Surge`与`Egern`有此设置
  * 默认`策略组`名为`🇺🇸美国`
  * 使用前请先修改为自己指定的`美国/英国/加拿大/澳大利亚`策略组或节点
* CountryCode: 国家或地区代码
  * 默认`国家或地区代码`为`US`
* NewsPlusUser: [搜索] 显示 News+ 内容
  * 默认 `true` (开启)

<_Footer />