ata
发布于 2022-10-19 / 2 阅读 / 0 评论 / 0 点赞

Xor 部署教程 - TS 版本的 Telegram 人形自走机器人

简介

Xor 是一个基于 Deno + Grm + TypeScript 的 Telegram 人形自走机器人(和 PagerMaid 类似,只是语言、框架不同),可以登录 Telegram 账号协助号主完成各项操作。

Grm 是 Xor 作者基于 Gram.js 做的移植版本,支持 Deno。

部署流程

准备环境

Deno

首先安装 Deno,这是 Node.js 之父的新项目,旨在解决 Node.js 的一些弊端。

Linux 和 macOS 可使用以下方式:

curl -fsSL https://deno.land/x/install/install.sh | sh

Tip 1:
安装后根据脚本的提示,将 Deno 添加至环境变量。(此处以本人为例)

export DENO_INSTALL="/root/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"

Tip 2:
CentOS 7 用户可能会遇到报错:version 'GLIBC_2.18’ not found
可将 CentOS 升级到更高的大版本解决,也可以手动编译安装 glibc 2.18:

wget https://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar -zxvf glibc-2.18.tar.gz
cd glibc-2.18 && mkdir build
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install

Windows 可使用 Chocolately 安装:

choco install deno

安装完后输入 deno --version 检查安装是否成功

> deno --version
deno 1.26.2 (release, x86_64-unknown-linux-gnu)
v8 10.7.193.16
typescript 4.8.3

配置 Xor

  1. 创建 .env 文件,填写以下内容:

    APP_ID=
    APP_HASH=
    STRING_SESSION=
    
  2. 登录 https://my.telegram.org ,获取 API ID 和 API Hash,分别填写到上一步的第 1、2 行;

  3. 运行以下脚本,获取 String session(拥有它即可登录您的账号,请妥善保管此值

    deno run --allow-env --allow-net https://ghc.deno.dev/xorgram/session@main/main.ts
    

    过程中会要求输入 API ID、API Hash、手机号(带国家代码,如 8613812345678)、验证码和二步验证密码(如果有)。

    获取完毕后,会将 string session 发送至 Telegram 账号的收藏夹,前往复制值,填到第一步的 STRING_SESSION

    如果你安装了 Node.js 和 NPM,也可以直接运行 npx tgsession,获取过程同上。

  4. 在包含 .env 的目录下运行:

    wget https://raw.githubusercontent.com/xorgram/xor/main/scripts/start.sh
    chmod +x start.sh
    ./start.sh
    

    Xor 应该就能启动了。

进程守护

可以用 PM2 进行进程守护,要安装 Node.js 和 NPM。

npm i -g pm2
pm2 start --name xor "./start.sh"

使用 Xor

不知为何,Xor 不会处理收藏夹里的消息,在其它聊天中才能正常识别命令,这一点和 PagerMaid 不同。

\ping - 测试 Xor 是否在线
\modules - 已安装的模块
\help <module_name> - 查看模组帮助
\install <url> 从远程链接安装 Xor
\disable <module_name> - 禁用模组
\enable <module_name> - 启用模组
\uninstall <module_name> - 卸载模组

一个模组可以用 CommandHandler 声明多个要处理的命令。

第三方的模组主要收录在 Xor Modules Directory。目前主要有 ban 人、批量删消息、查看 GitHub 用户信息等模组。

可以参考 这里 写自己的模组(Xor 目前名气不高,没什么人贡献,文档也不齐全,高阶的用法得看源代码或自己摸索)


评论