1.0.0-beta.2 • Published 5 months ago
elemapi-lib v1.0.0-beta.2
ElemApi-lib
Неофициальная библиотека для работы с API социальной сети Element через WebSocket.
Установка
npm install elemapi-lib
Быстрый старт
const ElementAPI = require('elemapi-lib');
const api = new ElementAPI();
async function start() {
try {
await api.login('ваш_email@example.com', 'ваш_пароль');
api.onMessage = (rawMessage, parsedMessage) => {
console.log('Сообщение:', parsedMessage);
};
} catch (error) {
console.error('Ошибка:', error.message);
}
}
start();
Подключение и авторизация
const api = new ElementAPI();
const loginResult = await api.login('email@example.com', 'password');
console.log('Результат:', loginResult);
Результат:
{
"status": "success",
"S_KEY": "ваш_ключ_сессии",
"accountID": 1234
}
Обработка WebSocket сообщений
api.onMessage = (rawMessage, parsedMessage) => {
switch(parsedMessage.type) {
case 'onlineUsers':
console.log('Онлайн:', parsedMessage.data);
break;
case 'posts':
console.log('Посты:', parsedMessage.data);
break;
case 'connectionStatus':
console.log('Статус:', parsedMessage);
break;
}
};
Структура данных
Пользователь
{
id: number,
name: string,
username: string,
avatar: string,
email: string,
description: string,
eBalls: number,
permissions: { Admin, Posts, Comments, NewChats, MusicUpload },
channels: array,
links: array
}
Пост
{
id: number,
author: Object,
text: string,
content: array,
createDate: Date,
likes: number,
dislikes: number,
comments: number,
isMyPost: boolean
}
Примеры использования
Получение онлайн пользователей
api.onMessage = (rawMessage, parsedMessage) => {
if (parsedMessage.type === 'onlineUsers') {
console.log('Онлайн:', parsedMessage.data.length);
}
};
Получение постов
await api.getPosts(0);
api.onMessage = (rawMessage, parsedMessage) => {
if (parsedMessage.type === 'posts') {
parsedMessage.data.forEach(post => {
console.log(`${post.author.name}: ${post.text}`);
});
}
};
Отключение
api.disconnect();
Требования
- Node.js >= 14.0.0
- WebSocket
Зависимости
- axios
- ws
- form-data