# blackmatrix7/ios_rule_script architecture

> Architecture diagram of the GitHub repository blackmatrix7/ios_rule_script, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/blackmatrix7/ios_rule_script
- Repository: https://github.com/blackmatrix7/ios_rule_script

## Overview

This repository distributes platform-specific traffic rules and request/response rewrites, alongside standalone automation scripts and external resources. The main user workflow is to choose resources for a supported proxy client, then use rules to classify traffic or rewrites to modify matching traffic; separate scripts capture account credentials, call service APIs, and report results. README capabilities include ad removal, check-ins, account tasks, and other integrations. Sampled source shows several implementations, but does not establish a shared runtime or a central dispatcher.

Main entry points: [`script/archive/smzdm/smzdm_daily.js`](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/smzdm/smzdm_daily.js) (SMZDM tasks), [`script/archive/testflight/testflight.js`](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/testflight/testflight.js) (TestFlight automation), [`source/javascript/c34dc3226966fd23aaf8a3af2fbb7dad.js`](https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/c34dc3226966fd23aaf8a3af2fbb7dad.js) (FamilyMart check-in), [`rule/Clash`](https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash) (Clash rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_rules["Traffic rules"]
  node_rule_clash["Clash rules"]
  node_rule_loon["Loon rules"]
  node_rule_adguard["AdGuard rules"]
end

subgraph group_rewrites["Traffic rewrites"]
  node_rewrite_surge["Surge rewrites"]
  node_rewrite_qx["Quantumult X rewrites"]
  node_rewrite_stash["Stash rewrites"]
  node_rewrite_zhihu["Zhihu assistant"]
  node_rewrite_body["Body replacement"]
  node_rewrite_wallpaper["Wallpaper unlock"]
  node_bilibili["Bilibili cleanup"]
end

subgraph group_scripts["Automation scripts"]
  node_smzdm["SMZDM tasks<br/>[smzdm_daily.js]"]
  node_famijia["FamilyMart check-in"]
  node_testflight["TestFlight automation<br/>[testflight.js]"]
  node_unicom["China Unicom tasks<br/>[unicom_signin.js]"]
  node_startup_ads["Startup ad removal"]
  node_zheye_api["Zhihu answer API<br/>[main.py]"]
  node_zheye_worker["Zhihu worker<br/>[workers.js]"]
end

subgraph group_resources["External resources"]
end

node_user(("User"))
node_proxy_clients(("Proxy clients"))
node_service_apis(("Service APIs"))
node_qinglong[("Qinglong panel")]
node_push(("Notifications"))
node_internet_rules(("Open rule sources"))
node_zhihu(("Zhihu answer pages"))

node_user -->|"selects rules"| node_rule_clash
node_user -->|"selects rules"| node_rule_loon
node_user -->|"selects rules"| node_rule_adguard
node_user -->|"selects rewrites"| node_rewrite_surge
node_user -->|"selects rewrites"| node_rewrite_qx
node_user -->|"selects rewrites"| node_rewrite_stash
node_user -->|"selects rewrites"| node_rewrite_zhihu
node_internet_rules -->|"rule data"| node_rule_clash
node_internet_rules -->|"rule data"| node_rule_loon
node_proxy_clients -->|"invokes script"| node_rewrite_body
node_proxy_clients -->|"invokes script"| node_rewrite_wallpaper
node_proxy_clients -->|"invokes script"| node_bilibili
node_smzdm -->|"requests tasks"| node_service_apis
node_smzdm -.->|"syncs account data"| node_qinglong
node_smzdm -->|"sends results"| node_push
node_famijia -->|"requests check-in"| node_service_apis
node_famijia -->|"sends results"| node_push
node_testflight -->|"checks apps"| node_service_apis
node_testflight -.->|"syncs sessions"| node_qinglong
node_testflight -->|"sends alerts"| node_push
node_unicom -->|"requests account tasks"| node_service_apis
node_startup_ads -->|"returns modified response"| node_proxy_clients
node_zheye_api -->|"fetches answers"| node_zhihu
node_zheye_worker -->|"fetches answers"| node_zhihu

click node_rule_clash "https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash"
click node_rule_loon "https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Loon"
click node_rule_adguard "https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/AdGuard"
click node_rewrite_surge "https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/Surge"
click node_rewrite_qx "https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/QuantumultX"
click node_rewrite_stash "https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/Stash"
click node_rewrite_zhihu "https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/Shadowrocket/ZhihuAssistant"
click node_rewrite_body "https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/94e30f41890b0534a28ac4e45edb8c76.js"
click node_rewrite_wallpaper "https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/a009ab9305f7534ff3da2f6e0a92a500.js"
click node_bilibili "https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/dc29cf91928fc9cd4f90ade43877ba13.js"
click node_smzdm "https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/smzdm/smzdm_daily.js"
click node_famijia "https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/c34dc3226966fd23aaf8a3af2fbb7dad.js"
click node_testflight "https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/testflight/testflight.js"
click node_unicom "https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/10010/unicom_signin.js"
click node_startup_ads "https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/823b94ab6aa0a805fb572fb03492f029.js"
click node_zheye_api "https://github.com/blackmatrix7/ios_rule_script/blob/master/script/zheye/server/main.py"
click node_zheye_worker "https://github.com/blackmatrix7/ios_rule_script/blob/master/script/zheye/server/workers.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_rule_clash,node_rule_loon,node_rule_adguard,node_user,node_proxy_clients toneBlue
class node_rewrite_surge,node_rewrite_qx,node_rewrite_stash,node_rewrite_zhihu,node_rewrite_body,node_rewrite_wallpaper,node_bilibili,node_qinglong toneAmber
class node_smzdm,node_famijia,node_testflight,node_unicom,node_startup_ads,node_zheye_api,node_zheye_worker,node_service_apis toneMint
class node_push,node_internet_rules,node_zhihu toneIndigo
```

## Components

### Traffic rules

- [Clash rules](https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash): `rule/Clash`
- [Loon rules](https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Loon): `rule/Loon`
- [AdGuard rules](https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/AdGuard): `rule/AdGuard`

### Traffic rewrites

- [Surge rewrites](https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/Surge): `rewrite/Surge`
- [Quantumult X rewrites](https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/QuantumultX): `rewrite/QuantumultX`
- [Stash rewrites](https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/Stash): `rewrite/Stash`
- [Zhihu assistant](https://github.com/blackmatrix7/ios_rule_script/tree/master/rewrite/Shadowrocket/ZhihuAssistant): `rewrite/Shadowrocket/ZhihuAssistant`
- [Body replacement](https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/94e30f41890b0534a28ac4e45edb8c76.js): `source/javascript/94e30f41890b0534a28ac4e45edb8c76.js`
- [Wallpaper unlock](https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/a009ab9305f7534ff3da2f6e0a92a500.js): `source/javascript/a009ab9305f7534ff3da2f6e0a92a500.js`
- [Bilibili cleanup](https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/dc29cf91928fc9cd4f90ade43877ba13.js): `source/javascript/dc29cf91928fc9cd4f90ade43877ba13.js`

### Automation scripts

- [SMZDM tasks](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/smzdm/smzdm_daily.js): `script/archive/smzdm/smzdm_daily.js`
- [FamilyMart check-in](https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/c34dc3226966fd23aaf8a3af2fbb7dad.js): `source/javascript/c34dc3226966fd23aaf8a3af2fbb7dad.js`
- [TestFlight automation](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/testflight/testflight.js): `script/archive/testflight/testflight.js`
- [China Unicom tasks](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/archive/10010/unicom_signin.js): `script/archive/10010/unicom_signin.js`
- [Startup ad removal](https://github.com/blackmatrix7/ios_rule_script/blob/master/source/javascript/823b94ab6aa0a805fb572fb03492f029.js): `source/javascript/823b94ab6aa0a805fb572fb03492f029.js`
- [Zhihu answer API](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/zheye/server/main.py): `script/zheye/server/main.py`
- [Zhihu worker](https://github.com/blackmatrix7/ios_rule_script/blob/master/script/zheye/server/workers.js): `script/zheye/server/workers.js`

### Other components

- **User**
- **Proxy clients**
- **Service APIs**
- **Qinglong panel**
- **Notifications**
- **Open rule sources**
- **Zhihu answer pages**

## Connections

- User → Clash rules: selects rules
- User → Loon rules: selects rules
- User → AdGuard rules: selects rules
- User → Surge rewrites: selects rewrites
- User → Quantumult X rewrites: selects rewrites
- User → Stash rewrites: selects rewrites
- User → Zhihu assistant: selects rewrites
- Open rule sources → Clash rules: rule data
- Open rule sources → Loon rules: rule data
- Proxy clients → Body replacement: invokes script
- Proxy clients → Wallpaper unlock: invokes script
- Proxy clients → Bilibili cleanup: invokes script
- SMZDM tasks → Service APIs: requests tasks
- SMZDM tasks → Qinglong panel: syncs account data
- SMZDM tasks → Notifications: sends results
- FamilyMart check-in → Service APIs: requests check-in
- FamilyMart check-in → Notifications: sends results
- TestFlight automation → Service APIs: checks apps
- TestFlight automation → Qinglong panel: syncs sessions
- TestFlight automation → Notifications: sends alerts
- China Unicom tasks → Service APIs: requests account tasks
- Startup ad removal → Proxy clients: returns modified response
- Zhihu answer API → Zhihu answer pages: fetches answers
- Zhihu worker → Zhihu answer pages: fetches answers
