Skip to main content

编写自己的命令

项目描述

姓名

operbot - 操作员机器人,编写自己的命令。

概要

操作机器人[-c] [-i] [-r]
operbot <cmd> [key=value] [key==value]

描述

operbot是一个可靠的、不可破解的机器人,旨在以静态、仅代码、无弹出、固定导入和不从目录中读取模块的方式进行编程,没有目录来读取模块以向机器人添加命令,但包括将自己编写的模块直接写入 python 代码,因此只包含可信代码(您自己编写的代码)并可以运行。从目录中读取随机代码是可以避免的。正如经验告诉 os.popen 和 __import__ 一样,importlib 也被避免了,直接在代码中导入是使用的。

operbot将其数据存储在磁盘上,其中对象是时间版本的,并且保存在磁盘上的最后一个版本提供给用户层。文件是只读的 JSON 转储,因此应该提供(磁盘)持久性。路径在路径名中携带类型,这使得从文件名重建比从对象读取类型更容易。

operbot有一些功能,主要是将 RSS 提要馈送到 irc 频道。它可以记录一些 txt 并记下待办事项。这应该是您构建自己的机器人的地方;]

安装

pip3 install operbot --upgrade --force -reinstall

配置

通过调用operbot的cfg命令完成配置

irc

operbot cfg server=<server> 频道=<channel> nick=<nick>

(*) 默认频道/服务器是本地主机上的#operbot

sasl

operbot pwd <nickservnick> <nickservpass>
operbot cfg密码=<outputfrompwd>

用户

operbot cfg users=True
operbot 遇到 <用户主机>

RSS

operbot rss <url>

跑步

这部分展示了如何运行operbot

cli

没有任何参数operbot不响应,添加参数让 operbot执行命令:

$ 操作机器人
$

cmd命令向您显示可用命令的列表:

$ operbot 命令
cfg,cmd,dlt,dne,dpl,flt,fnd,ftc,log,met,mre,nme,pwd,rem,rss,tdo,thr,ver

安慰

使用 -c 选项将机器人作为控制台启动。

$ operbot -c
OPERBOT 于 2022 年 9 月 16 日星期五 02:11:23 开始
> th
Console.loop/1s

irc

使用 -i 选项启动 irc 客户端。

$ operbot -i
OPERBOT 于 2022 年 9 月 16 日星期五 02:11:23 开始
> 配置文件
服务器=本地主机端口=6667频道=#operbot nick=operbot cc=!
> th
Console.loop(8s) IRC.keep(8s) IRC.loop(8s) IRC.output(8s) thr(8s)
>

RSS

您可以添加 -r 选项以启动 rss 提取器。

$ operbot -c -r
OPERBOT 于 2022 年 9 月 16 日星期五 02:44:51 开始
> th
Console.loop/1s Fetcher.run/4m59s
>

命令

这里是命令的简短描述。

cfg - 显示 irc 配置,同时编辑配置
cmd - 显示所有命令
dlt - 删除用户
dne - 将待办事项标记为已完成
dpl - 为 RSS 提要设置显示项目
flt - 显示注册到总线的机器人列表
fnd - 允许您显示数据存储上的对象,磁盘上的只读 json 文件
ftc - 运行 RSS 提要获取批处理
log - 记录一些文本
遇到- 添加一个具有 irc 用户主机的用户
mre - 显示缓存输出,通道明智。
nme - 设置 RSS 提要的名称
pwd - 将 nickserv 名称/密码组合成 sasl 密码
rem - 通过匹配它的 url 来删除一个 rss 提要
rss - 添加要获取的提要,获取器每 5 分钟运行一次
thr - 显示正在运行的线程
tdo - 添加一个待办事项,没有选项返回待办事项列表
upt - 显示正常运行时间
ver - 显示版本

编程

op包提供了一个 Object 类,它在使用属性访问时模仿 dict,并提供对磁盘上 json 文件的保存/加载。可以使用数据库功能搜索对象,并使用只读文件来提高持久性和文件名类型以进行重建。方法被分解成函数,以便有一个干净的命名空间来读取 JSON 数据。

基本用法是这样的:

>>> from op.spc import Object
>>> o = Object()
>>> o.key = "value"
>>> o.key
>>> 'value'

对象尝试模仿字典,同时也尝试成为具有正常属性访问权限的对象。提供了隐藏的方法,这些方法被分解为 get、items、keys、register、set、update 和 values 等函数。

从/到磁盘加载/保存:

>>> from op.spc import Object, load, save
>>> o = Object()
>>> o.key = "value"
>>> p = save(o)
>>> obj = Object()
>>> load(obj, p)
>>> obj.key
>>> 'value'

非常适合通过将对象的状态存储在文件中来赋予对象持久性:

>>> from op.spc import Object, save
>>> o = Object()
>>> save(o)
'op.obj.Object/2021-08-31/15:31:05.717063'

作者

Bart Thate- operbot100 @ gmail com

版权

operbot被放置在公共领域。没有版权,没有许可。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

operbot-100.tar.gz (31.6 kB 查看哈希

已上传 source

内置分布

operbot-100-py3-none-any.whl (31.6 kB 查看哈希

已上传 py3