简介
PagerMaid-Pyro 是一个开源的 Telegram 人形自走 Bot 方案,功能强大而丰富,可以帮助你打造专属的便利功能。
这里主要详细说明搭建的流程和注意事项,一键脚本由于不同环境问题较多暂不推荐。
由于资金有限和部分依赖包的安装方便性,这里主要提供 ubuntu 20.04 、centos7 和 Archlinux 的安装过程。(不推荐Docker安装)
功能
远程管理
输入 ,sh 命令 就可快速通过 Telegram 管理自己的服务器。
扩展
安装插件使用 ,apt install 插件名,快速安装,方便使用。
运行状态
随时使用 ,status 监控 bot 是否正常运行。
时间
您可以使用地区名和数字查询某时区时间 ,time 。
快速更新
主程序随时可以使用 ,update 来检查更新。
手动搭建
Ubuntu20.04
拉取项目
本项目托管在 github ,所以您首先需要检查您是否已经安装 git 软件包。并且我们发现当 git 软件包版本过低时,无法实现程序的自动更新,所以您需要首先升级 git 软件包:
sudo apt install --upgrade git -y从仓库拉取项目
cd /var/lib && git clone https://github.com/TeamPGM/PagerMaid-Pyro.git pagermaid && cd pagermaid安装软件包
neofetch
sudo apt install neofetch -yzbar
sudo apt install libzbar-dev -yPip
sudo apt install python3-pip -y安装依赖包
pip3 install -r requirements.txt修改配置文件
将配置 config.gen.yml 文件复制一份并且命名为 config.yml
cp config.gen.yml config.yml然后去 telegram 官网 生成 api 填入配置文件内,我们只需要复制 api id 和 api_hash 值 填入 api_key 和 api_hash 。
vi config.yml按 i 进入编辑模式,粘贴好后,按下 esc 输入 shift 加冒号,输入 wq 保存退出
登录账号
python3 -m pagermaid此步需要填入完整的电话号码(eg:+12569986522)然后 tg 会发给你的其他客户端发送验证码,填入验证码后,回车,如有两步验证密码,则再输入两步验证密码即可。
停止运行:
ctrl + cpagermaid.session 。此文件可以进行账号所有操作,请不要分享给他人使用。
进程守护
此步骤可以方便 pagermaid 的自动运行,您无需在 pagermaid 意外退出后重新登录主机进行操作。
cat <<'TEXT' > /etc/systemd/system/pagermaid.service
[Unit]
Description=PagerMaid-Pyro telegram utility daemon
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
WorkingDirectory=/var/lib/pagermaid
ExecStart=/usr/bin/python3 -m pagermaid
Restart=always
TEXT常用指令
启动程序:systemctl start pagermaid
设置为开机自启:systemctl enable pagermaid
停止程序:systemctl stop pagermaid
Centos 7
拉取项目
本项目托管在 github ,所以您首先需要检查您是否已经安装 git 软件包。并且我们发现当 git 软件包版本过低时,无法实现程序的自动更新,所以您需要首先升级 git 软件包:
sudo yum install git -y从仓库拉取项目
cd /var/lib && git clone https://github.com/TeamPGM/PagerMaid-Pyro.git pagermaid && cd pagermaid安装软件包
neofetch
sudo yum install epel-release -y
curl -o /etc/yum.repos.d/konimex-neofetch-epel-7.repo https://copr.fedorainfracloud.org/coprs/konimex/neofetch/repo/epel-7/konimex-neofetch-epel-7.repo
sudo yum install neofetch -yzbar
sudo yum install zbar-devel -y
sudo yum install zbar -y安装依赖包
pip3 install -r requirements.txt修改配置文件
将配置 config.gen.yml 文件复制一份并且命名为 config.yml
cp config.gen.yml config.yml然后去 telegram 官网 生成 api 填入配置文件内,我们只需要复制 api id 和 api_hash 值 填入 api_key 和 api_hash 。
vi config.yml按 i 进入编辑模式,粘贴好后,按下 esc 输入 shift 加冒号,输入 wq 保存退出
登录账号
python3 -m pagermaid此步需要填入完整的电话号码(eg:+12569986522)然后 tg 会发给你的其他客户端发送验证码,填入验证码后,回车,如有两步验证密码,则再输入两步验证密码即可。
停止运行:
ctrl + cpagermaid.session 。此文件可以进行账号所有操作,请不要分享给他人使用。
进程守护
此步骤可以方便 pagermaid 的自动运行,您无需在 pagermaid 意外退出后重新登录主机进行操作。
cat <<'TEXT' > /etc/systemd/system/pagermaid.service
[Unit]
Description=PagerMaid-Pyro telegram utility daemon
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
WorkingDirectory=/var/lib/pagermaid
ExecStart=/usr/bin/python3 -m pagermaid
Restart=always
TEXT常用指令
启动程序:systemctl start pagermaid
设置为开机自启:systemctl enable pagermaid
停止程序:systemctl stop pagermaid
Archlinux
拉取项目
本项目托管在 github ,所以您首先需要检查您是否已经安装 git 软件包。并且我们发现当 git 软件包版本过低时,无法实现程序的自动更新,所以您需要首先升级 git 软件包:
sudo pacman -S git从仓库拉取项目
cd /var/lib && git clone https://github.com/TeamPGM/PagerMaid-Pyro.git pagermaid && cd pagermaid安装软件包
neofetch
sudo pacman -S neofetchzbar
sudo pacman -S zbar安装依赖包
pip3 install -r requirements.txt修改配置文件
将配置 config.gen.yml 文件复制一份并且命名为 config.yml
cp config.gen.yml config.yml然后去 telegram 官网 生成 api 填入配置文件内,我们只需要复制 api id 和 api_hash 值 填入 api_key 和 api_hash 。
vi config.yml按 i 进入编辑模式,粘贴好后,按下 esc 输入 shift 加冒号,输入 wq 保存退出
代理配置
GitSource
此步是将安装插件的获取源文件更改为国内可以访问的反代源,但是可能因为 cdn 原因,插件更新不及时。
git_source: "https://gitlab.com/Xtao-Labs/PagerMaid_Plugins/-/raw/master/"登录账号
python3 -m pagermaid此步需要填入完整的电话号码(eg:+12569986522)然后 tg 会发给你的其他客户端发送验证码,填入验证码后,回车,如有两步验证密码,则再输入两步验证密码即可。
停止运行:
ctrl + cpagermaid.session 。此文件可以进行账号所有操作,请不要分享给他人使用。
进程守护
此步骤可以方便 pagermaid 的自动运行,您无需在 pagermaid 意外退出后重新登录主机进行操作。
cat <<'TEXT' > /etc/systemd/system/pagermaid.service
[Unit]
Description=PagerMaid-Pyro telegram utility daemon
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
WorkingDirectory=/var/lib/pagermaid
ExecStart=/usr/bin/python3 -m pagermaid
Restart=always
TEXT常用指令
启动程序:systemctl start pagermaid
设置为开机自启:systemctl enable pagermaid
停止程序:systemctl stop pagermaid
插件入门
插件结构
在编写插件之前,首先我们需要了解一下插件的概念。
在 PGP 中,插件是一个单独的 Python 文件 file。 PGP 会在加载时对这些文件做一些特殊的处理使得他们成为一个插件。
创建插件
在 plugins 文件夹下创建一个 .py 文件即可。 例如我们创建一个 example.py 。
pgp
├── data
├── pagermaid
├── languages
├── pyromod
└── plugins
└── example.py了解主修饰器
主修饰器(listener)是处理基本消息的主要修饰器。
主修饰器的基本组成
主修饰器的类型
首先你需要确定你所要创建的插件是用于处理传入消息还是传出消息。 当处理传入消息时,你需要传入参数 incoming=True, 当处理传出消息时,你需要传入参数 outgoing=True。
主修饰器的匹配规则
当你需要处理命令时,你需要传入参数 command="命令", 当你需要处理其他消息时,你需要传入参数 pattern="正则表达式"。
当 command 和 pattern 都不为空时,主修饰器将会优先使用 pattern 。
其余用户的触发权限
为方便管理,我们仅提供了两种触发权限,当传入参数 need_admin=True 时, 仅拥有 plugins_root.command 的 sudo 用户才能触发此插件。 当传入参数 need_admin=False 时,拥有 plugins.command 的 sudo 用户可以触发此插件。
优先级
优先级代表此函数的执行顺序
默认优先级为 50 ,如果你想要改变优先级,可以传入参数 priority=数字 。
阻断
当有任意函数发出了阻止传递信号时, 该消息将不再会传递给下一优先级,直接结束处理。
默认所有情况都不会阻断消息传递,如果你想修改,可以传入参数 block_process=True 。
在默认情况下,可以使用 message.stop_propagation() 方法动态阻止消息传递。
主修饰器的举例
默认情况下,你只需要填写修饰器中的这些参数:
from pagermaid.listener import listener
@listener(command="命令",
description="命令描述",
usage="命令帮助")定义处理函数
在 PGP 中,我们使用了 依赖注入 来帮助你动态管理需要的变量。
在默认情况下,你只需要获取触发函数的消息变量 message: Message 即可
from pagermaid.enums import Message
from pagermaid.listener import listener
@listener(command="命令",
description="命令描述",
usage="命令帮助")
async def example(message: Message):
# 在这里处理消息
pass进行消息操作
在对消息处理时,你可能需要调用 message.edit() 方法来编辑消息。
了解消息属性
编辑消息
async def example(message: Message):
await message.edit("新的消息内容")更多消息操作
进行客户端操作
发送消息
from pagermaid.enums import Client
from pagermaid.listener import listener
@listener(command="命令",
description="命令描述",
usage="命令帮助")
async def example(bot: Client):
# 向 Telegram 账号发送 你好
await bot.send_message(777000, "你好")更多客户端操作
插件示例
使用 ws 开始连接世界
Node-RED 是什么
Node-RED 是一种基于流程的编程工具,由 IBM 的新兴技术服务团队原创开发,现在归属于 JS 基金会。
基于 Node-RED ,你可以添加许多模块模块,与我的世界,智能家居等其他领域实现联动!
开始之前
在使用 Node-RED 之前,你需要先在 PagerMaid-Pyro 中安装 websocket 插件,插件的目的在于与 Node-RED 实现通讯
安装 Node-RED
添加 websocket 监听节点
运行 Node-RED 之后,你需要将 网络 - websocket in 拖动到流程 1 的界面中,并且双击它,以此来添加新的 websocket-listener 节点
连接到 ws
假设你添加的节点路径为 /ws/example
那么你需要在 PagerMaid-Pyro 中运行 ,websocket ws://127.0.0.1:1880/ws/example 来让 userbot 连接到 Node-RED
添加 websocket 输出节点
你只需要将 网络 - websocket out 拖动到流程 1 的界面中,并且双击它,选择上一步添加好的 websocket 路径即可
解析输入
PagerMaid-Pyro 将收到的消息实时以 json 格式传递给 Node-RED ,所以你还需要添加一个 json 解析器,将其转换为 JS 对象
调用 userbot 方法
你需要使用 功能 - template 传回 json 格式的文本,action 值为方法名,data 值为方法参数的字典。
开始自动化
在编辑流程完毕后,你需要使用 部署 按钮应用更改。
一些例子
请参考 GitHub 仓库







