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` به دست میآید.
|
||||
|
||||
### کامپایل بخش 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 功能`
|
||||
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
|
||||
const globalAny: any = globalThis
|
||||
|
||||
// 目前提供的方法
|
||||
// روشهای ارائهشده در حال حاضر
|
||||
interface nekoray_in {
|
||||
log(...a: any): void
|
||||
}
|
||||
|
||||
// 目前提供的 hook 点
|
||||
// نقاط hook ارائهشده در حال حاضر
|
||||
interface nekoray_hook {
|
||||
hook_core_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 {
|
||||
return config // 返回输入,表示不修改
|
||||
return config // بازگشت ورودی، نشان دهنده عدم تغییر
|
||||
}
|
||||
|
||||
hook_tun_script(script: string): string {
|
||||
console.log("Script") // 输出到 stdout
|
||||
this.nekoray.log("Script:", script) // 输出到日志
|
||||
console.log("Script") // خروجی به stdout
|
||||
this.nekoray.log("Script:", script) // خروجی به لاگ
|
||||
return script
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ class my_hook implements nekoray_hook {
|
||||
globalAny.hook = new my_hook
|
||||
```
|
||||
|
||||
## 示例代码 (javascript)
|
||||
## کد نمونه (javascript)
|
||||
|
||||
```js
|
||||
var globalAny = globalThis;
|
||||
@ -84,11 +84,11 @@ var my_hook = /** @class */ (function () {
|
||||
return JSON.stringify(json);
|
||||
};
|
||||
my_hook.prototype.hook_tun_config = function (config) {
|
||||
return config; // 返回输入,表示不修改
|
||||
return config; // بازگشت ورودی، نشان دهنده عدم تغییر
|
||||
};
|
||||
my_hook.prototype.hook_tun_script = function (script) {
|
||||
console.log("Script"); // 输出到 stdout
|
||||
this.nekoray.log("Script:", script); // 输出到日志
|
||||
console.log("Script"); // خروجی به stdout
|
||||
this.nekoray.log("Script:", script); // خروجی به لاگ
|
||||
return script;
|
||||
};
|
||||
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