@emby-chat/node-sdk
Version:
Official Node SDK for Emby Chat
400 lines (365 loc) • 10.9 kB
JavaScript
const express = require('express')
const Emby = require('../index.js');
const path = require('path');
const { response } = require('express');
const emby = new Emby({
id: process.env.EMBY_ID,
secret: process.env.EMBY_SECRET,
api_token: process.env.EMBY_API_TOKEN,
base_url: process.env.EMBY_BASE_URL
});
// emby.getMessagesFromChat('user16sadasd', {
// withUsers: true,
// isDeleted: false,
// extra: {
// isQuestion: true,
// // isSolved: false
// }
// }, 1, 1000).then(response => {
// console.info(response);
// if(response && response.messages && response.users) {
// }
// })
// .catch(e => {
// console.error(e.message);
// });
// emby.sendMessage('user16sadasd', {
// 'id': 'sadasd23d21',
// 'name': "Жендосикс"
// }, [], "Сисел").then(response => {
// console.info('message was successfully sent', response);
// })
// .catch(e => {
// console.error(e.message);
// });
// emby.updateMessage('production_TOPIC_678', '614cb6c0f7f871001ca55f81', {
// // text: "Сисел 4",
// extra: {
// isQuestion: true,
// isSolved: true
// },
// }, {returnMessage: true}).then((result) => {
// console.info('result', result);
// });
// return;
// emby.updateMessage('60a943c52284ea287ff1fbef', {
// text: "Снова привет"
// }).then((result) => {
// console.info('result', result);
// });
// emby.updateMessage('60a943c52284ea287ff1fbef', {
// text: "Снова привет 12",
// isDeleted: true
// });
// emby.updateMessage('60a943c52284ea287ff1fbef', {
// text: "Снова привет 12",
// });
// emby.updateMessage('60a943c52284ea287ff1fbef', {
// text: "Снова привет 123",
// extra: {
// isQuestion: 'one'
// }
// });
//emby.updateMessage('60f8260545da61001c05c655', {
// text: "Снова привет 123",
// extra: {
// isService: true
// }
//}, {replaceExtra: true});
//return;
// emby.updateMessage('611453299730f1001b05e778', {
// extra: {
// isSolved: true
// }
// }).then((result) => {
// console.info('result', result);
// });
// return;
/*
emby.getMessagesFromChat('production_TOPIC_517', {
withUsers: true,
isDeleted: false,
extra: {
isQuestion: true,
// isSolved: false
}
}, 1, 1000).then(response => {
console.info(response);
if(response && response.messages && response.users) {
}
})
.catch(e => {
console.error(e.message);
});
return;
*/
// emby.getMessagesFromChat('production_TOPIC_384', {
/*emby.getMessagesFromChat('user16sadasd', {
withUsers: true,
isDeleted: false
}, 1, 1000).then(response => {
if(response && response.messages && response.users) {
const messagesKeys = Object.keys(response.messages);
const usersKeys = Object.keys(response.users);
console.info(response.messages);
setInterval(() => {
const randomUser = response.users[usersKeys[Math.floor(Math.random() * usersKeys.length)]];
const randomMessage = response.messages[messagesKeys[Math.floor(Math.random() * messagesKeys.length)]];
if(randomUser && randomMessage)
{
emby.sendMessage('user16sadasd', {
// emby.sendMessage('production_TOPIC_480', {
'id': randomUser._id,
'name': randomUser.name
}, [], randomMessage.text).then(response => {
console.info('message was successfully sent', response);
})
.catch(e => {
console.error(e.message);
});
// emby.sendTyping('user16sadasd', randomUser._id)
// .then(response => {
// console.info('olo', response)
// })
// .catch(e => {
// console.error('e', e);
// });
}
}, 300);
}
})
.catch(e => {
console.error(e.message);
});
return;*/
// emby.getMessagesFromChat('production_TOPIC_384', {
// emby.sendMessage('user16sadasd', {
// 'id': 'user16',
// 'name': 'HAHA'
// }, [], 'test message from api').then(response => {
// console.info('kala', response);
// })
// .catch(e => {
// console.error(e.message);
// });
// return;
// emby.getMessagesFromChat('968', {
// // extra: {
// // isQuestion: true
// // },
// // withUsers: true
// }, 1, 1
// )
// .then(response => {
// console.info('tralalala', response);
// })
// .catch(e => {
// console.info('SSSO');
// console.error(e);
// });
const app = express();
app.set('view engine', 'ejs')
app.set('views', path.join(__dirname, '/views'));
app.use('/chat-with-guest', function (request, response) {
// chatUrl1 = emby.urlByChatId(
// {
// id: 'production_TOPIC_532',
// socket_port: '8009'
// },
// {
// id: 'CWAHUKm8U4ChikaB6JGYd',
// name: ' Daniel Castro ',
// rights: {
// edit_messages: 'any:extra',
// pin_messages: 'for_everyone',
// kick_users: 'on',
// delete_messages: 'any',
// send_messages: true
// }
// },
// [],
// {
// 'skin': 'default',
// // 'skin': 'ebac_webinar',
// 'skin_options': {
// // 'displayHeader': false,
// 'hide_day_delimiter': true,
// 'display_header': true,
// 'lang': 'en'
// }
// }
// );
chatUrl1 = emby.urlByChatId(
{
id: 'https://markuper.com',
title: 'Час со сметаной 666'
},
{
name: 'Custom Name for Guest User',
session: 'terminator1987_666',
},
[],
{
'skin': 'default',
// 'skin': 'ebac_qwebinar',
'skin_options': {
// 'displayHeader': false,
// 'lang': 'es'
}
}
);
// chatUrl1 = emby.urlByChatId(
// {
// id: 'https://markuper.com',
// title: 'Час со сметаной',
// socket_port: 8008
// },
// {
// id: 10000,
// name: 'Steven King',
// session: 'ololo',
// email: 'test@markuper.com',
// rights: {
// kick_users: 'on',
// delete_messages: 'any',
// edit_messages: 'any:extra',
// send_messages: false
// }
// },
// [],
// {
// 'skin': 'default',
// // 'skin': 'ebac_webinar',
// 'skin_options': {
// // 'displayHeader': false,
// 'lang': 'pt'
// }
// }
// );
chatUrl2 = emby.urlByChatId(
{
id: 'https://markuper.com'
},
{
id: 10001,
name: 'Howard Lovecraft',
picture: 'https://via.placeholder.com/400',
rights: {
kick_users: 'on',
edit_messages: 'any:extra',
delete_messages: 'my',
send_messages: true,
pin_messages: 'for_everyone'
}
},
[],
{
'skin': 'default',
'skin_options': {
'displayHeader': false,
'hide_day_delimiter': true,
'message_max_length': 150,
'lang': 'es'
}
}
);
chatUrl3 = emby.urlByChatId(
{
id: 'https://markuper.com'
},
{
id: 10002,
name: 'Nightmare Mike',
rights: {
kick_users: 'on',
delete_messages: 'my',
send_messages: true
}
},
[],
{
// 'skin': 'ebac_webinar',
'skin': 'default',
'skin_options': {
'display_header': false,
'hide_deleted_message': true,
'lang': 'pt'
}
}
);
response.render('chat-with-guest', {
title: 'Emby Chat with guest user',
chatUrl1: chatUrl1,
chatUrl2: chatUrl2,
chatUrl3: chatUrl3
});
});
app.use('/chat-with-guest2', function (request, response) {
chatUrl1 = emby.url({
chat: {
id: 'https://markuper.com',
title: 'Час со сметаной 666'
},
user: {
id: 10002,
name: 'Nightmare Mike',
rights: {
kick_users: 'on',
edit_messages: 'any',
delete_messages: 'any',
send_messages: true,
track_read_state: true
}
},
extra: {
'skin': 'default',
// 'skin': 'ebac_qwebinar',
'skin_options': {
// 'displayHeader': false,
// 'lang': 'es'
}
}
});
chatUrl2 = emby.url({
// chat: {
// id: 'https://markuper.com',
// title: 'Час со сметаной 666'
// },
user: {
id: 10001,
name: 'Howard Lovecraft',
picture: 'https://via.placeholder.com/400',
rights: {
kick_users: 'on',
edit_messages: 'any:extra',
delete_messages: 'my',
send_messages: true,
pin_messages: 'for_everyone',
send_read_state: true,
}
},
extra: {
'skin': 'default',
'skin_options': {
'displayHeader': true,
'hide_day_delimiter': true,
'message_max_length': 150,
// 'lang': 'es'
}
}
});
response.render('chat-with-guest2', {
title: 'Emby Chat with guest for 2 users',
chatUrl1: chatUrl1,
chatUrl2: chatUrl2
});
});
app.use('/api-get-messages', function (request, response) {
const chatId = 'https://markuper.com';
emby.getMessagesFromChat(chatId, {
extra: {
isQuestion: true
}
}, 1, 50);
});
app.listen(9009);