Skip to main content

PigBotFramework is a fast, easy-to-use, intelligent robot framework.

Project description

新版本预告:

PBFv4即将崭新推出

PBFv4新特性:

  • 重新引入了类似于PBFv2的缓存方案,将需要频繁读写的数据缓存到内存中,由Python维护一个字典
  • PBF核心API命名及所处包优化。PBFv3将所有API都堆在了bot类,而PBFv4分散了,例如CallApi和发送消息等移动到了.client包中
  • 引入Statement,更易维护。现在可以使用Statement构建消息,例如:
    self.client.msg(
        TextStatement('我爱猪比'),
        FaceStatement(151),
        ImageStatemant(file='abab'),
        Statement('poke', qq=3558267090)
    ).send()
    
    同是,您也可以非常方便地构建一个Statement:
    from pbf.statement import Statement
    
    class AudioStatement(Statement):
      cqtype = 'audio'
      url: str = None
      file: str = None
    
      def __init__(self, url, file):
        self.url = url
        self.file = file
    
    然后就可以:
    self.client.msg(AudioStatement('https://audio.com/audio.mp3', 'audio.mp3')).send()
    
    这样就会发送如下的CQ码:
    {"type":"audio","url":"https://audio.com/audio.mp3","file":"audio.mp3"}
    
  • 引入了Model,使数据储存读取更加便捷,易于维护。您无需再接触繁琐的SQL代码,只需要实现一个简单的Model类,然后便可轻松操作
    from pbf.model import DictModel
    
    class Model(DictModel):
      db_table = 'users'
      map = ['uid']
    
      def id(self):
        return 'int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY'
      def uid(self):
        return 'int(11) NOT NULL'
      def name(self):
        return 'varchar(255) NOT NULL', 'PigBot'
    
    然后可以通过便捷的方法修改数据或读取
    model = Model(uid=114514)
    print(model._get('name'))
    model._set(name='homo')
    print(model.existsFlag)
    model._delete()
    
    您无需处理数据表的创建,因为ModelBase会帮你完成。同时,Model还与Cache模块高度联动。所有数据均在Cache中缓存,在调用__del__时同步到数据库,因此您无需担心效率问题。
  • 便捷的指令注册。现在插件注册指令肥肠简单,假设我有一个插件叫foo,需要实现一个指令test
    from pbf.controller.PBF import PBF
    from pbf.utils.RegCmd import RegCmd
    
    class foo(PBF):
      @RegCmd(
        name = "test",
        usage = "test",
        permission = "anyone",
        alias = ["别名1", "别名2"],
        description = "test",
        mode = "分类",
        hidden = 0,
        type = "command"
      )
      def test(self):
        print('test')
        self.send('test')
    
    只需要添加一个RegCmd注解,然后传入需要的参数即可。

PBFv4新架构

PBFv4将采用MSC(Model-Statement-Controller)模式编写插件,与MVC不同之处在于将View更改为了Statement,不过其作用基本相同。
MVC相同,Model部分主要控制数据的存取等。插件需要实现一个model类,来实现数据存取。自建的Model类需要继承model.DictModel类,并可以轻松实现数据存取。具体详见开发文档。 自建的Statement类也需要继承statement.Statement类,具体详见开发文档。

仓库信息

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PigBotFramework-4.1.27.tar.gz (50.6 kB view hashes)

Uploaded Source

Built Distribution

PigBotFramework-4.1.27-py2.py3-none-any.whl (65.1 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page