MCPcopy
hub / github.com/Icalingua-plus-plus/Icalingua-plus-plus

github.com/Icalingua-plus-plus/Icalingua-plus-plus @v2.26.0 sqlite

repository ↗ · DeepWiki ↗ · release v2.26.0 ↗
4,104 symbols 11,882 edges 184 files 89 documented · 2%
README

Icalingua++

Icalingua++ 是 Icalingua 的分叉,为已经删除的 Icalingua 提供有限的更新,同时欢迎社区提交PR。

Icalingua 这个名字是日语中「光」和拉丁语中「语言」的组合。

本项目希望为 Linux 打造一个会话前端框架,通过实现 Adapter 后端接口来适配各种聊天平台。目前已经拥有基于 oicq 的分叉 oicq-icalingua-plus-plus 以及 Icalingua 自有协议的后端。

State-of-the-art Shitcode License discord Telegram Discussion Telegram Channel

GitHub release (latest by date) AUR votes (感谢社区提供的 AUR Package)

分支状态

develop

Build/release

GitHub package.json dependency version (prod) GitHub package.json dependency version (dev dep on branch)

头部签名 API

可用于解决无法登录/无法发送消息的问题

不要随意使用无法信任的 API,因为这可能导致消息内容的泄露

常用启动参数

  • 禁用硬件加速: --dha
  • 启动时隐藏主界面: --hide-h
  • 指定配置: --config xxx.yaml-c xxx.yaml
  • 自定义数据目录: --user-data-dir=$path-you-want

默认数据目录

操作系统 路径
Linux ~/.config/icalingua
Windows %AppData%\icalingua
macOS ~/Library/Application Support/icalingua

自定义脚本、样式、主题、插件相关

自定义脚本

客户端默认会加载数据目录下的 addon.js,但是默认不会创建这个文件。

自定义样式

客户端默认会加载数据目录下的 style.css,但是默认不会创建这个文件。

自定义主题

此类主题为颜色主题,仅能修改各处的颜色表现,若需修改样式请使用自定义样式

客户端默认会加载数据目录下的 themes 目录的所有 JSON 文件,以文件名作为主题的名字,JSON 内容可以参考客户端源码中的默认主题文件

默认会采用 白色 (light) 作为基础主题,可以在 bashTheme 字段中指定 light 或者 dark

参考例子(一个基于黑色主题的透明主题)

themes/transparent-dark.json

{
    "baseTheme": "dark",
    "general": {
        "backgroundInput": "#20222364"
    },
    "header": {
        "background": "#181a1b48"
    },
    "footer": {
        "background": "#13141569",
        "backgroundReply": "#1b1c1c84",
        "backgroundTagActive": "#2b2c2c80"
    },
    "content": {
        "background": "#2c2e3064"
    },
    "message": {
        "background": "#22242a78",
        "backgroundMe": "#1f7e8064",
        "backgroundImage": "#dddddd40"
    },
    "panel": {
        "background": "#34343484",
        "itemBg": "#22242a84",
        "itemBgHover": "#1e1e2584",
        "sideBar": "#41383684",
        "headerBg": "#181a1b1c"
    }
}

style.css 配置(壁纸 background-image 自定)

.el-main {
  background-image: url("");
  background-size: cover;
  background-repeat: no-repeat;
}

.vac-container-scroll { margin-top: 64px; }
.el-badge__content--info { background-color: #6771856e; }
.vac-box-footer input { background: #ccc6; }
.el-dialog { background: #526a6bc7; }
.vac-card-window a { color: #a3b8cb; }
.vac-box-footer>div { backdrop-filter: blur(5px); }

自定义插件

须在选项中勾选启用插件,bridge 则在配置文件中设置 customtrue

插件为名为 custom 的目录,非 bridge 的插件存放在数据目录中,bridge 的插件目录与 data 目录同级存放。

参考插件此插件需使用 tsc 编译成 JavaScript 后才能使用!

插件需使用 JavaScript 编写,且只有在接收到消息时才会调用插件导出的 onMessage 方法,data 与 bot 参数的使用方法请参考 OICQ v1 的 wiki。若需监听其他事件可使用 bot.on(),理论上可以兼容使用修改后的 OICQ v1 API 的机器人框架并增加更完善的插件系统。

统计

Stargazers over time

License

免责声明

本开源项目仅用于学习和交流会话前端框架实现,一切开发旨在学习,请勿用于非法用途。本项目使用 AGPL-3.0 许可,完全免费开源,不收取任何费用。请勿将本项目用于商业用途。因使用本项目调用不同 Adapter 后端接口(如 oicq)产生的一切问题与后果由使用者自行承担,项目开发者不承担任何责任。

本项目基于 AGPL 发行。修改、再发行和运行服务需要遵守 AGPL 许可证,源码需要和服务一起提供。

Extension points exported contracts — how you extend this code

StorageProvider (Interface)
(no doc) [6 implementers]
packages/types/StorageProvider.d.ts
PgMyOpt (Interface)
PostgreSQL 和 MySQL/MariaDB 连接需要的信息的类型定义
packages/storageProviders/SQLStorageProvider.ts
StableTitleOptions (Interface)
(no doc)
icalingua/src/utils/IcalinguaWindow.ts
DecodedGroupMessageId (Interface)
(no doc)
icalingua-bridge-oicq/utils/milkyMessageId.ts
RkeyResponse (Interface)
(no doc)
icalingua-bridge-oicq/adapters/milkyAdapter.ts
IncomingMessage (Interface)
(no doc)
icalingua-bridge-oicq/clients/MilkyClient.ts
SearchableFriend (Interface)
(no doc)
packages/types/SearchableFriend.d.ts
SQLiteOpt (Interface)
SQLite 存放 DB 文件需要的信息的类型定义
packages/storageProviders/SQLStorageProvider.ts

Core symbols most depended-on inside this repo

getConfig
called by 263
icalingua/src/main/utils/configManager.ts
I
called by 236
icalingua/static/file-manager/assets/vendor.8788b689.js
I
called by 236
icalingua-bridge-oicq/static/file-manager/assets/vendor.8788b689.js
on
called by 228
icalingua/static/file-manager/assets/vendor.8788b689.js
$
called by 213
icalingua/static/file-manager/assets/vendor.8788b689.js
$
called by 213
icalingua-bridge-oicq/static/file-manager/assets/vendor.8788b689.js
j
called by 176
icalingua/static/file-manager/assets/vendor.8788b689.js
j
called by 176
icalingua-bridge-oicq/static/file-manager/assets/vendor.8788b689.js

Shape

Function 3,390
Method 587
Class 74
Interface 52
Enum 1

Languages

TypeScript100%

Modules by API surface

icalingua/static/file-manager/assets/vendor.8788b689.js1,359 symbols
icalingua-bridge-oicq/static/file-manager/assets/vendor.8788b689.js1,359 symbols
icalingua/src/main/adapters/oicqAdapter.ts116 symbols
icalingua-bridge-oicq/adapters/oicqAdapter.ts102 symbols
icalingua/src/renderer/utils/ipc.ts92 symbols
icalingua/src/main/adapters/readOnlyAdapter.ts81 symbols
packages/types/Adapter.d.ts80 symbols
icalingua-bridge-oicq/adapters/milkyAdapter.ts79 symbols
icalingua/src/main/adapters/socketIoAdapter.ts78 symbols
icalingua-bridge-oicq/clients/MilkyClient.ts76 symbols
icalingua-bridge-oicq/adapters/onebotAdapter.ts75 symbols
icalingua/src/main/utils/ui.ts62 symbols

Dependencies from manifests, versioned

@actions/core1.10.0 · 1×
@icalingua/storage-providersworkspace:* · 1×
@icalingua/typesworkspace:* · 1×
@noble/ed255191.7.1 · 1×
@rspack/cli1.7.12 · 1×
@rspack/core1.7.12 · 1×
@rspack/dev-server1.2.1 · 1×
@saltify/milky-tea0.1.4 · 1×
@saltify/milky-types1.2.0-rc.4 · 1×
@types/express4.17.25 · 1×
@types/fluent-ffmpeg2.1.28 · 1×
@types/ioredis4.28.10 · 1×

Datastores touched

(mongodb)Database · 1 repos

For agents

$ claude mcp add Icalingua-plus-plus \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact