Документация AstrixRU

В этой документации расписаны все пути API, сокеты и официальные библиотеки для создания ботов.

HTTP API

Методы для взаимодействия с сервером. Важно: Параметры, отмеченные как "Необходимо", передаются в Body запроса.

POST /api/bot/login
Необходимо: token — токен для входа в бота.
GET /api/conversations
Получить переписки бота.
GET /api/friends/global-search
Необходимо: query — найти человека по глобальному поиску.
GET /api/friends/list
Получить список заявок в друзья и друзей.
POST /api/friends/send-request
Необходимо: targetNickname — отправить запрос в друзья.
POST /api/friends/accept-request
Необходимо: senderNickname — принять запрос от человека.
POST /api/friends/decline-request
Необходимо: senderNickname — отклонить запрос от человека.
POST /api/friends/remove
Необходимо: targetNickname — удалить человека из друзей.
GET /api/music/list
Получить 20 последних треков.
GET /api/profile/nickname
Получить профиль пользователя.

Socket Events

События для работы в реальном времени.

join_chat Подключает к комнате чата.
Payload: chatId
send_message Отправляет сообщение.
Payload: { chatId, text/file }
delete_message Удаляет сообщение (только своё).
Payload: chatId, messageTimestamp
edit_message Редактирует сообщение.
Payload: chatId, messageTimestamp, newText
forward_message Пересылает сообщение.
Payload: fromChatId, toChatId, messageTimestamp
react_to_message Добавляет/удаляет реакцию.
Payload: chatId, messageTimestamp, emoji
pin_message Закрепляет сообщение.
Payload: chatId, messageTimestamp
unpin_message Открепляет сообщение.
Payload: chatId, messageTimestamp
typing Статус "печатает".
Payload: chatId
stop_typing Убирает статус "печатает".
Payload: chatId
call-user Предложение звонка (WebRTC offer).
Payload: targetNickname, offer
make-answer Ответ на звонок (WebRTC answer).
Payload: targetNickname, answer
ice-candidate Обмен P2P кандидатами.
Payload: targetNickname, candidate
wallet_updated Входящий перевод средств.
Data: newBalance, message, senderInfo, amount

Python — AstrixLibrary

Официальная библиотека для Python.

Установка

Terminal
pip install astrixlibrary

Быстрый старт

main.py
from AstrixLibrary import AstrixBot
import time

bot = AstrixBot(token="ВАШ_ТОКЕН")

@bot.newCommand("/ping")
def ping(ctx):
    ctx.send("Pong!")

bot.login()
bot.connect()
bot.run_forever()

API Библиотеки

Контекст команды (ctx)

Объект ctx передается в функцию команды:

Примеры

Аргументы

@bot.newCommand('/add')
def add(ctx, a, b):
    res = int(a) + int(b)
    ctx.send(f"Результат: {res}")

Кошелек (Событие)

def on_wallet_updated(new_balance, message, sender_info, amount):
    print(f"Пришло {amount} ключей от {sender_info['displayName']}")
    print(f"Баланс: {new_balance}")

bot.on_wallet_updated = on_wallet_updated

Полный пример

from AstrixLibrary import AstrixBot
import time

bot = AstrixBot(token="TOKEN")
bot.login()

@bot.newCommand("/ping")
def ping(ctx):
    ctx.send("Pong!")

@bot.newCommand("/test")
def test(ctx):
    ctx.start_typing()
    time.sleep(2)
    ctx.stop_typing()
    ctx.send("Готово!")

bot.connect()
bot.run_forever()

Node.js — AstrixLibrary

Официальная библиотека для JavaScript.

Установка

Terminal
npm install astrixlibrary

Быстрый старт

index.js
import { AstrixBot } from 'astrixlibrary';
const bot = new AstrixBot('YOUR_TOKEN');

bot.onCommand('!ping', (ctx) => {
    ctx.send('Pong!');
}, "Ping command");

async function start() {
    await bot.login();
    bot.connect();
}
start();

API Библиотеки

Контекст (ctx)

Примеры

Аргументы

bot.onCommand('!say', (ctx, ...args) => {
    const text = args.join(' ');
    ctx.send(text || 'Что сказать?');
});

Кошелек

bot.onWalletUpdated = ({ newBalance, message, senderInfo, amount }) => {
    console.log(`[WALLET] +${amount} от ${senderInfo.nickname}. Сообщение: ${message}`);
};

Отладка ответов

Как понять, что возвращает метод?

bot.onCommand('!debug', async (ctx) => {
    const user = await bot.findUser("admin");
    console.log(user); // Смотрим структуру в консоли
});

Примеры ботов