mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-19 14:40:09 +08:00
Farsi Docs updated
This commit is contained in:
parent
b27b5ada31
commit
543bf4eb30
32
docs/Build_Core_fa.md
Normal file
32
docs/Build_Core_fa.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
## ساخت nekoray_core و nekobox_core
|
||||||
|
|
||||||
|
### ساختار دایرکتوری
|
||||||
|
|
||||||
|
```
|
||||||
|
| nekoray
|
||||||
|
| go/cmd/*
|
||||||
|
| Xray-core
|
||||||
|
| sing-box-extra
|
||||||
|
| sing-box
|
||||||
|
| ......
|
||||||
|
```
|
||||||
|
|
||||||
|
### ساخت معمولی
|
||||||
|
|
||||||
|
1. `bash libs/get_source.sh `(دریافت خودکار ساختار دایرکتوری، خودکار checkout commit)
|
||||||
|
2. `GOOS=windows GOARCH=amd64 bash libs/build_go.sh`
|
||||||
|
|
||||||
|
برای مشاهده GOOS و GOARCH های پشتیبانی شده به `libs/build_go.sh` مراجعه کنید.
|
||||||
|
|
||||||
|
در ساخت غیررسمی، نیازی به کامپایل `updater` و `launcher` نیست.
|
||||||
|
|
||||||
|
### تگهای sing-box
|
||||||
|
|
||||||
|
برای مشاهده تگهای استفاده شده به `libs/build_go.sh` مراجعه کنید.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -71,4 +71,4 @@ ninja
|
|||||||
پس از کامپایل، فایل `nekoray` به دست میآید.
|
پس از کامپایل، فایل `nekoray` به دست میآید.
|
||||||
|
|
||||||
### کامپایل بخش Go
|
### کامپایل بخش Go
|
||||||
لطفاً به [Build_Core.md](./Build_Core.md) مراجعه کنید.
|
لطفاً به [Build_Core_fa.md](./Build_Core_fa.md) مراجعه کنید.
|
||||||
|
|||||||
65
docs/Build_Windows_fa.md
Normal file
65
docs/Build_Windows_fa.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
کامپایل Nekoray در ویندوز
|
||||||
|
|
||||||
|
### git clone
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/MatsuriDayo/nekoray.git --recursive
|
||||||
|
```
|
||||||
|
|
||||||
|
### نصب Visual Studio
|
||||||
|
|
||||||
|
با نصب از وب سایت رسمی مایکروسافت، می توانید از نسخه های 2019 و 2022 استفاده کنید و محیط توسعه ++Win32 C را نصب کنید.
|
||||||
|
|
||||||
|
پس از نصب، میتوانید `x64 Native Tools Command Prompt` را در منوی «شروع» پیدا کنید.
|
||||||
|
|
||||||
|
دستورات زیر این مقاله همه در این cmd اجرا می شوند. `cmake` `ninja` و ابزارهای دیگر را می توان با VS استفاده کرد.
|
||||||
|
|
||||||
|
### دانلود Qt SDK
|
||||||
|
|
||||||
|
نسخه ای که در حال حاضر توسط Windows Release استفاده می شود Qt 6.5.x است.
|
||||||
|
|
||||||
|
پس از دانلود و خارج کردن از حالت ظش، پوشه bin را به environment variable اضافه کنید.
|
||||||
|
|
||||||
|
#### بسته Qt مورد استفاده برای کامپایل نسخه (MSVC2019 x86_64) را دانلود کنید
|
||||||
|
|
||||||
|
https://github.com/MatsuriDayo/nekoray_qt_runtime/releases/download/20220503/Qt6.5.0-Windows-x86_64-VS2022-17.5.5-20230507.7z
|
||||||
|
|
||||||
|
#### Official signed version of Qt 5.15.2 (optional, known memory leak bugs)
|
||||||
|
|
||||||
|
پکیج های `qtbase` `qtsvg` `qttools` را از اینجا دانلود کنید و آن را در همان دایرکتوری استخراج کنید.
|
||||||
|
|
||||||
|
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/
|
||||||
|
|
||||||
|
### کامپایل جزئی ++c
|
||||||
|
|
||||||
|
#### وابستگی های مورد نیاز ++C/C را کامپایل و نصب کنید
|
||||||
|
|
||||||
|
(You may have to hang the ladder for this step)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
bash ./libs/build_deps_all.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
در حال حاضر فقط اسکریپت های bash وجود دارد، بدون پردازش دسته ای یا پاورشل، اگر ویندوز همراه bash نیست، توصیه می شود خودتان آن را نصب کنید.
|
||||||
|
|
||||||
|
جزئیاتی مانند پارامترهای CMake مشابه لینوکس است. اگر سوالی دارید، لطفاً به داکیومنت [Build_Linux_fa.md](./Build_Linux_fa.md) مراجعه کنید.
|
||||||
|
|
||||||
|
#### کامپایل کد اصلی
|
||||||
|
|
||||||
|
لطفاً دستورات را با موقعیت QT Sdk خود جایگزین کنید.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=D:/path/to/qt/5.15.2/msvc2019_64 ..
|
||||||
|
ninja
|
||||||
|
```
|
||||||
|
|
||||||
|
بعد از اتمام کامپایل، فایل `nekoray.exe` را دریافت خواهید کرد.
|
||||||
|
|
||||||
|
سپس با اجرای دستور `windeployqt nekoray.exe`، فایلهای مورد نیاز مانند DLL به صورت خودکار در دایرکتوری فعلی کپی میشوند.
|
||||||
|
|
||||||
|
|
||||||
|
### بخش کامپایل Go
|
||||||
|
|
||||||
|
لطفاً به [Build_Core_fa.md](./Build_Core_fa.md) مراجعه کنید.
|
||||||
@ -4,22 +4,22 @@
|
|||||||
1. 打开 `基本设置 - 安全 - 启用 hook.js 功能`
|
1. 打开 `基本设置 - 安全 - 启用 hook.js 功能`
|
||||||
2. js 代码请放置于 `config/hook.nekoray.js` 或 `config/hook.nekobox.js`
|
2. js 代码请放置于 `config/hook.nekoray.js` 或 `config/hook.nekobox.js`
|
||||||
|
|
||||||
## 技术信息
|
## Technical Information
|
||||||
|
|
||||||
* JS Engine: QuickJS ES2020
|
* JS engine: QuickJS ES2020.
|
||||||
* 提供的接口:如下面代码所示
|
* Provided interfaces: as shown in the following code
|
||||||
|
|
||||||
## 示例代码 (typescript)
|
## کد نمونه (typescript)
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
const globalAny: any = globalThis
|
const globalAny: any = globalThis
|
||||||
|
|
||||||
// 目前提供的方法
|
// روشهای ارائهشده در حال حاضر
|
||||||
interface nekoray_in {
|
interface nekoray_in {
|
||||||
log(...a: any): void
|
log(...a: any): void
|
||||||
}
|
}
|
||||||
|
|
||||||
// 目前提供的 hook 点
|
// نقاط hook ارائهشده در حال حاضر
|
||||||
interface nekoray_hook {
|
interface nekoray_hook {
|
||||||
hook_core_config(config: string): string
|
hook_core_config(config: string): string
|
||||||
hook_tun_config(config: string): string
|
hook_tun_config(config: string): string
|
||||||
@ -42,12 +42,12 @@ class my_hook implements nekoray_hook {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hook_tun_config(config: string): string {
|
hook_tun_config(config: string): string {
|
||||||
return config // 返回输入,表示不修改
|
return config // بازگشت ورودی، نشان دهنده عدم تغییر
|
||||||
}
|
}
|
||||||
|
|
||||||
hook_tun_script(script: string): string {
|
hook_tun_script(script: string): string {
|
||||||
console.log("Script") // 输出到 stdout
|
console.log("Script") // خروجی به stdout
|
||||||
this.nekoray.log("Script:", script) // 输出到日志
|
this.nekoray.log("Script:", script) // خروجی به لاگ
|
||||||
return script
|
return script
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ class my_hook implements nekoray_hook {
|
|||||||
globalAny.hook = new my_hook
|
globalAny.hook = new my_hook
|
||||||
```
|
```
|
||||||
|
|
||||||
## 示例代码 (javascript)
|
## کد نمونه (javascript)
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var globalAny = globalThis;
|
var globalAny = globalThis;
|
||||||
@ -84,11 +84,11 @@ var my_hook = /** @class */ (function () {
|
|||||||
return JSON.stringify(json);
|
return JSON.stringify(json);
|
||||||
};
|
};
|
||||||
my_hook.prototype.hook_tun_config = function (config) {
|
my_hook.prototype.hook_tun_config = function (config) {
|
||||||
return config; // 返回输入,表示不修改
|
return config; // بازگشت ورودی، نشان دهنده عدم تغییر
|
||||||
};
|
};
|
||||||
my_hook.prototype.hook_tun_script = function (script) {
|
my_hook.prototype.hook_tun_script = function (script) {
|
||||||
console.log("Script"); // 输出到 stdout
|
console.log("Script"); // خروجی به stdout
|
||||||
this.nekoray.log("Script:", script); // 输出到日志
|
this.nekoray.log("Script:", script); // خروجی به لاگ
|
||||||
return script;
|
return script;
|
||||||
};
|
};
|
||||||
my_hook.prototype.hook_import = function (content) {
|
my_hook.prototype.hook_import = function (content) {
|
||||||
|
|||||||
106
docs/HookJS_fa.md
Normal file
106
docs/HookJS_fa.md
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# استفاده از فایل hook.js
|
||||||
|
## فعالسازی
|
||||||
|
|
||||||
|
1. `Basic Settings - Security - Enable hook.js function` را روشن کنید
|
||||||
|
2. کد JS را در `config/hook.nekoray.js` یا `config/hook.nekobox.js` قرار دهید.
|
||||||
|
|
||||||
|
## 技术信息
|
||||||
|
|
||||||
|
* JS Engine: QuickJS ES2020
|
||||||
|
* 提供的接口:如下面代码所示
|
||||||
|
|
||||||
|
## 示例代码 (typescript)
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const globalAny: any = globalThis
|
||||||
|
|
||||||
|
// 目前提供的方法
|
||||||
|
interface nekoray_in {
|
||||||
|
log(...a: any): void
|
||||||
|
}
|
||||||
|
|
||||||
|
// 目前提供的 hook 点
|
||||||
|
interface nekoray_hook {
|
||||||
|
hook_core_config(config: string): string
|
||||||
|
hook_tun_config(config: string): string
|
||||||
|
hook_tun_script(script: string): string
|
||||||
|
hook_import(content: string): string
|
||||||
|
}
|
||||||
|
|
||||||
|
class my_hook implements nekoray_hook {
|
||||||
|
private nekoray = globalAny.nekoray as nekoray_in
|
||||||
|
|
||||||
|
hook_core_config(config: string): string {
|
||||||
|
var json = JSON.parse(config)
|
||||||
|
var my_rule = {
|
||||||
|
"geosite": "cn",
|
||||||
|
"server": "dns-direct",
|
||||||
|
"disable_cache": true
|
||||||
|
}
|
||||||
|
json["dns"]["rules"].push(my_rule)
|
||||||
|
return JSON.stringify(json)
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_tun_config(config: string): string {
|
||||||
|
return config // 返回输入,表示不修改
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_tun_script(script: string): string {
|
||||||
|
console.log("Script") // 输出到 stdout
|
||||||
|
this.nekoray.log("Script:", script) // 输出到日志
|
||||||
|
return script
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_import(content: string): string {
|
||||||
|
var newContent: Array<any> = []
|
||||||
|
content.split("\n").forEach((line: any) => {
|
||||||
|
if (line.startsWith("vmess://")) {
|
||||||
|
newContent.push(line)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return newContent.join("\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
globalAny.hook = new my_hook
|
||||||
|
```
|
||||||
|
|
||||||
|
## 示例代码 (javascript)
|
||||||
|
|
||||||
|
```js
|
||||||
|
var globalAny = globalThis;
|
||||||
|
var my_hook = /** @class */ (function () {
|
||||||
|
function my_hook() {
|
||||||
|
this.nekoray = globalAny.nekoray;
|
||||||
|
}
|
||||||
|
my_hook.prototype.hook_core_config = function (config) {
|
||||||
|
var json = JSON.parse(config);
|
||||||
|
var my_rule = {
|
||||||
|
"geosite": "cn",
|
||||||
|
"server": "dns-direct",
|
||||||
|
"disable_cache": true
|
||||||
|
};
|
||||||
|
json["dns"]["rules"].push(my_rule);
|
||||||
|
return JSON.stringify(json);
|
||||||
|
};
|
||||||
|
my_hook.prototype.hook_tun_config = function (config) {
|
||||||
|
return config; // 返回输入,表示不修改
|
||||||
|
};
|
||||||
|
my_hook.prototype.hook_tun_script = function (script) {
|
||||||
|
console.log("Script"); // 输出到 stdout
|
||||||
|
this.nekoray.log("Script:", script); // 输出到日志
|
||||||
|
return script;
|
||||||
|
};
|
||||||
|
my_hook.prototype.hook_import = function (content) {
|
||||||
|
var newContent = [];
|
||||||
|
content.split("\n").forEach(function (line) {
|
||||||
|
if (line.startsWith("vmess://")) {
|
||||||
|
newContent.push(line);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return newContent.join("\n");
|
||||||
|
};
|
||||||
|
return my_hook;
|
||||||
|
}());
|
||||||
|
globalAny.hook = new my_hook;
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue
Block a user