Skip to content
This repository has been archived by the owner on Jul 9, 2022. It is now read-only.

Commit

Permalink
Added new commands (user.js, conv.js and etc.)
Browse files Browse the repository at this point in the history
  • Loading branch information
tretdm committed Apr 25, 2021
1 parent ec8b4ff commit bc31619
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 3 deletions.
5 changes: 3 additions & 2 deletions bot.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const vk = require('node-vk-bot-api');
const fs = require('fs');
const os = require('os');
const strftime = require('strftime')
const lang = require("./languages/ru.js");
const config = require("./config.js");

Expand All @@ -27,9 +28,9 @@ bot.on((ctx) => {
if (ctx.message.text == prefix + lang.start_command) {
commands.get('start').execute(vk, bot, prefix, lang, config, ctx, Markup)
} else if (ctx.message.text == prefix + lang.user_command) {
commands.get('underconstr').execute(vk, bot, prefix, lang, config, ctx, Markup)
commands.get('user').execute(vk, bot, prefix, lang, config, ctx, Markup, strftime)
} else if (ctx.message.text == prefix + lang.conv_command) {
commands.get('underconstr').execute(vk, bot, prefix, lang, config, ctx, Markup)
commands.get('conv').execute(vk, bot, prefix, lang, config, ctx, Markup, strftime)
} else if (ctx.message.text == prefix + lang.cmds_list_command) {
commands.get('cmd_list').execute(vk, bot, prefix, lang, config, ctx, Markup)
}
Expand Down
41 changes: 41 additions & 0 deletions commands/conv.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
module.exports = {
name: 'conv',
description: 'Информация о беседе',
async execute(vk, bot, prefix, lang, config, ctx, Markup, strftime){
try {
let conv_name = "";
let owner_id = "";
let firstmsg = "";
const response = bot.execute('messages.getConversationsById', {peer_ids: ctx.message.peer_id, extended: 1, fields: "name", group_id: config['group_id']}).then(rns => {
try {
const responce2 = bot.execute('users.get', {user_ids: rns.items[0].chat_settings.owner_id, fields: 'online, nickname, city, last_seen, screen_name, bdate, counters', name_case: "nom"}).then(rns2 => {
if(!rns.items[0].chat_settings.title) {
conv_name = " "
} else {
conv_name = " \"" + rns.items[0].chat_settings.title + "\""
}
ctx.reply(lang.conv_message(bot, strftime, ctx, rns, conv_name, owner_id, rns2));
});
} catch(ex) {
ctx.reply(lang.conv_command_err(ex));
}
});
let i = 0
process.on('warning', (warning) => {
if(i < 1) {
const response = bot.execute('messages.getConversationsById', {peer_ids: ctx.message.peer_id, extended: 1, fields: "name", group_id: config['group_id']}).then(rns => {
if(!rns.items[0].chat_settings.title) {
conv_name = " "
} else {
conv_name = " \"" + rns.items[0].chat_settings.title + "\""
}
ctx.reply(lang.conv_message_2(bot, strftime, ctx, rns, conv_name, owner_id));
});
i = i + 1
}
})
} catch(ex) {
ctx.reply(lang.conv_command_err(ex));
}
}
}
9 changes: 9 additions & 0 deletions commands/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
name: 'user',
description: 'Информация о пользователе',
async execute(vk, bot, prefix, lang, config, ctx, Markup, strftime){
const response = bot.execute('users.get', {user_ids: ctx.message.from_id, fields: 'online, nickname, city, last_seen, screen_name, bdate, counters', name_case: "gen"}).then(rns => {
ctx.reply(lang.user_message(bot, strftime, ctx, rns));
});
}
}
3 changes: 2 additions & 1 deletion config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ module.exports = {
'token': process.env.VKTOKEN,
'release_date': '30 апреля 2021 г.',
'version': '01A1-VK-210422',
'prefix': '[club202978127|@tinelix_visionone] '
'prefix': '[club202978127|@tinelix_visionone] ',
'group_id': 202978127
}
58 changes: 58 additions & 0 deletions languages/ru.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,65 @@ module.exports = {
return `ℹ Статистика бота\n\nПод управлением: ${platform} (${os.release()})\nЦП: ${os.cpus()[0].model} (${os.cpus().length} ${core_unit}, ${os.cpus()[0].speed} МГц)\nВерсия Node.js: ${process.version.slice(1)}\nВерсия бота: ${config['version']}\nАналитика: 💬 (в разработке)`
},
user_command: 'О пользователе',
user_message: (bot, strftime, ctx, rns) => {
let online_friends = "";
let platform_client = "";
let isClosed = "";

var ru_RU = {
days: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
shortDays: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
months: ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'],
shortMonths: ['янв.', 'фев.', 'мар.', 'апр.', 'мая', 'июн.', 'июл.', 'авг.', 'сен.', 'окт.', 'ноя.', 'дек.'],
AM: 'ДП',
PM: 'ПП',
am: 'дп',
pm: 'пп',
formats: {
c: '%a %d %b %Y %X',
D: '%d.%m.%y',
F: '%Y-%m-%d',
R: '%H:%M',
r: '%I:%M:%S %p',
T: '%H:%M:%S',
v: '%e-%b-%Y',
X: '%T',
x: '%D'
}
}
var strftimeRU = strftime.localize(ru_RU)

if(rns[0].last_seen.platform < 6) {
platform_client = " 📱"
} else {
platform_client = " 🖥️"
};
if(rns[0].counters.online_friends === 0) {
online_friends = ""
} else {
online_friends = " (" + rns[0].counters.online_friends + " онлайн)"
};
if(rns[0].is_closed === true) {
isClosed = "Да"
} else { isClosed = "Нет" }
return '👤 О пользователе ' + rns[0].first_name + ' ' + rns[0].last_name + '\n\nДата рождения: ' + (rns[0].bdate || 'cкрыто') + '\nАдрес профиля: ' + rns[0].screen_name + "\nДрузей: " + rns[0].counters.friends + online_friends + "\nПоследнее посещение: " + (strftimeRU("%d %B %Y г. в %H:%M МСК", new Date((rns[0].last_seen.time * 1000) + 10800000)) || "неизвестно") + platform_client + "\nЗакрытый профиль: " + isClosed;
},
conv_command: 'О беседе',
conv_message: (bot, strftime, ctx, rns, conv_name, owner_id, rns2) => {
return 'О беседе' + conv_name + '\n\nВладелец: ' + (rns2[0].first_name + " " + rns2[0].last_name || "неизвестно") + '\nКол-во участников: ' + rns.items[0].chat_settings.members_count + " (" + rns.items[0].chat_settings.active_ids.length + " онлайн)\nАдминистраторов: " + rns.items[0].chat_settings.admin_ids.length
},
conv_message_2: (bot, strftime, ctx, rns, conv_name, owner_id) => {
return 'О беседе' + conv_name + '\n\nКол-во участников: ' + rns.items[0].chat_settings.members_count + " (" + rns.items[0].chat_settings.active_ids.length + " онлайн)\nАдминистраторов: " + rns.items[0].chat_settings.admin_ids.length
},
conv_command_err: (ex) => {
if(ex.message === "Cannot read property 'chat_settings' of undefined") {
return "Сначала дайте боту права администратора, поскольку эта информации берется в настройках беседы."
} else if(ex.message === "Cannot read property 'owner_id' of undefined" || ex.message === "Cannot read property 'title' of undefined") {
return "Эта команда недоступна в личных сообщениях."
} else {
return "При выполнении команды произошла ошибка. Код ошибки: " + ex.message
}
},
cmds_list_command: 'Еще »',
cmds_list_message: `📄 Список команд\n\n"Статистика бота" - просмотр системной информации, на чем запущен бот\n\nВсе остальные команды на данный момент не реализованы, но будут разрабатываться.`,
underconstr_message: 'На данный момент эта функция не реализована, поэтому потерпите некоторое время.'
Expand Down

0 comments on commit bc31619

Please sign in to comment.