跳转至

文件结构

本项目的文件结构如下, 将分别介绍各个目录对应的功能

.
│  main.py
├─conf
├─hook
├─OlivOS
│  │  __init__.py
│  │  hook.py
│  ├─adapter
│  ├─core
│  │  ├─boot
│  │  ├─core
│  │  ├─info
│  │  ├─inlineData
│  │  ├─L10N
│  │  └─web
│  ├─libBooter
│  ├─nativeGUI
│  ├─thirdPartyModule
│  └─userModule
├─plugin
│  ├─app
│  ├─conf
│  └─data
├─resource
└─script

main.py

main.py是OlivOS的程序入口,它将完成OlivOS的实例化并启动OlivOS。

OlivOS

这里是OlivOS的主要部分,其中实现了发布版本OlivOS的大部分功能,在这个目录下以库的方式提供调用。

OlivOS/adapter

OlivOS/adapter目录下存放了一些适配器,这些适配器用于为OlivOS实现对接各种平台的协议支持。

通常,一个完整的协议包含一个**SDK.py与一个**API.py,例如OlivOS/adapter/telegram/telegramSDK.pyOlivOS/adapter/telegram/telegramPollServerAPI.py

**SDK.py用于实现对应协议的SDK,其中将包含各种参考官方文档进行编程的对象与算法。

**API.py用于实现协议的运行时,并提供给OlivOS进行调用的API,通常会提供一个OlivOS组件;原则上**API.py要确保尽量使用**SDK.py中的方法,不同适配器间要避免交叉调用。

其中**SDK.py通常以{协议名}SDK.py的方式命名,如:

  • OlivOS/adapter/telegram/telegramSDK.py
  • OlivOS/adapter/discord/discordSDK.py
  • ...

**API.py通常以{协议名}{连接方式}ServerAPI.py的方式命名,连接方式通常用于直观表明协议的主要连接方式,目前基于websocket的会使用Link,基于长轮询的会使用Poll,如:

  • OlivOS/adapter/telegram/telegramPollServerAPI.py
  • OlivOS/adapter/discord/discordLinkServerAPI.py
  • ...

部分早期的模块不遵守这个命名规则,比如OlivOS/adapter/onebotV11/flaskServerAPI.py

OlivOS/core

OlivOS/core目录下为OlivOS的核心组件,这些组件将为OlivOS提供核心功能。

OlivOS/core/boot

OlivOS/core/boot目录下为OlivOS的启动实例相关组件,OlivOS启动时调用的接口直接来自于此。

OlivOS/core/core

OlivOS/core/boot目录下为OlivOS的核心组件,一些核心的功能诸如核心对象、插件加载器、账号管理机、消息抽象语法树、元数据、日志模块,都会放在这里。

OlivOS/core/info

OlivOS/core/info目录下为OlivOS的全局信息,诸如版本信息、版本兼容性、资源文件源,等信息。

OlivOS/core/inlineData

OlivOS/core/inlineData目录下为OlivOS的内联数据,这些数据将在OlivOS启动时被加载,通常是一些静态数据,比如软件图标文件数据。

OlivOS/core/L10N

OlivOS/core/L10N目录下为OlivOS的本地化组件,L10Nlocalization的缩写,这些组件将为OlivOS提供本地化支持。

OlivOS/core/web

OlivOS/core/web目录下为OlivOS的网络支持库,这些组件将为OlivOS提供诸如资源文件更新、代理识别等,网络相关服务支持。

OlivOS/libBooter

OlivOS/libBooter目录下为OlivOS的依赖二进制库的启动器组件,这些组件将为OlivOS提供诸如go-cqgttpwalle-q等二进制文件的挂载启动功能。

OlivOS/nativeGUI

OlivOS/nativeGUI目录下为OlivOS的Win平台原生GUI组件。

OlivOS/thirdPartyModule

OlivOS/thirdPartyModule目录下为OlivOS的第三方模块,原则上,不基于Pypi包管理且需要引入的第三方模块都要在这里引入。

OlivOS/userModule

OlivOS/userModule目录下为OlivOS的社区支持模块,这部分是社区贡献的非核心功能性模块。

plugin

plugin目录下为OlivOS的插件目录。

plugin/app

plugin/app目录下为OlivOS的插件加载目录,在这里的插件将被加载。

plugin/conf

plugin/conf目录下为OlivOS的插件配置目录,存放插件的配置文件。

plugin/data

plugin/data目录下为OlivOS的插件数据目录,存放插件的数据文件。

script

script目录下存放了一些脚本文件,这些脚本文件可以帮助开发者快速进行一些操作,例如start.bat可以帮助开发者快速启动OlivOS实例。