D-Bus, Aurora Bot

preview

Приложение Aurora Bot имеет D-Bus интерфейс. В нем 128 методов и сигнал для отслеживания состояния выполнения. Сервис D-Bus предоставляет интерфейс для других приложений, применяя его в своих приложениях можно значительно упростить реализацию своей задачи. Также это позволяет иметь один центр по управлению инфраструктурой, что позволяет минимизировать количество всевозможных ошибок и быструю реакцию на них.

На интерфейсе D-Bus реализовано графическое приложение Aurora Toolbot, которое имеет полный функционал приложения Aurora Bot.

Selector

Приложение реализует интерфейс D-Bus с выбором вариантов. Эта логика работает для всех интерфейсов: CLI, WebSocket, D-Bus. Если вариантов нет, будет выполнен метод, но если приложением были найдены варианты, будет возвращен объект Selector. Это позволяет предоставить выбор пользователю:

FlutterInfo

Получить информацию об установленных Flutter SDK.

gdbus call --timeout=99999 --session \
    --object-path /api \
    --dest com.keygenqt.aurora_bot.toolbot \
    --method com.keygenqt.aurora_bot.FlutterInfo
{
    "key": "Selector",
    "jsonData": {
        "key": "FlutterInfo",
        "variants": [
            {
                "name": "Flutter SDK: 3.27.3",
                "incoming": {
                    "id": "e39a139f3fd37169dd2b220ec1af834d"
                }
            },
            {
                "name": "Flutter SDK: 3.0.0",
                "incoming": {
                    "id": "b21d3005a1b910452574786ce044084c"
                }
            }
        ]
    }
}

FlutterInfoById

Получить информацию об установленном Flutter SDK по ID.

gdbus call --timeout=99999 --session \
    --object-path /api \
    --dest com.keygenqt.aurora_bot.toolbot \
    --method com.keygenqt.aurora_bot.FlutterInfoById \
    "e39a139f3fd37169dd2b220ec1af834d"
{
    "key": "FlutterInfo",
    "jsonData": {
        "model": {
            "id": "e39a139f3fd37169dd2b220ec1af834d",
            "dir": "/home/keygenqt/.local/opt/flutter_aurora_3.27.3/flutter_aurora",
            "flutter": "/home/keygenqt/.local/opt/flutter_aurora_3.27.3/flutter_aurora/bin/flutter",
            "dart": "/home/keygenqt/.local/opt/flutter_aurora_3.27.3/flutter_aurora/bin/dart",
            "flutter_version": "3.27.3",
            "tools_version": "2.40.2",
            "dart_version": "3.6.1"
        }
    }
}