Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { VK, Keyboard } = new require('vk-io');
- const vk = new VK();
- const token_user = new VK();
- const fs = require("fs");
- const commands = [];
- const request = require('prequest');
- const { SessionManager } = require('@vk-io/session');
- const { SceneManager, StepScene } = require('@vk-io/scenes');
- const utils = {
- sp: (int) => {
- int = int.toString();
- return int.split('').reverse().join('').match(/[0-9]{1,3}/g).join('.').split('').reverse().join('');
- },
- kek: (int) => {
- int = int.toString();
- return int.split('').reverse().join('').match(/[0-9]{1,1}/g).join('.').split('').reverse().join('');
- },
- rn: (int, fixed) => {
- if (int === null) return null;
- if (int === 0) return '0';
- fixed = (!fixed || fixed < 0) ? 0 : fixed;
- let b = (int).toPrecision(2).split('e'),
- k = b.length === 1 ? 0 : Math.floor(Math.min(b[1].slice(1), 14) / 3),
- c = k < 1 ? int.toFixed(0 + fixed) : (int / Math.pow(10, k * 3) ).toFixed(1 + fixed),
- d = c < 0 ? c : Math.abs(c),
- e = d + ['', 'тыс', 'млн', 'млрд', 'трлн'][k];
- e = e.replace(/e/g, '');
- e = e.replace(/\+/g, '');
- e = e.replace(/Infinity/g, 'ДОХЕРА');
- return e;
- },
- gi: (int) => {
- int = int.toString();
- let text = ``;
- for (let i = 0; i < int.length; i++)
- {
- text += `${int[i]}⃣`;
- }
- return text;
- },
- decl: (n, titles) => { return titles[(n % 10 === 1 && n % 100 !== 11) ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2] },
- random: (x, y) => {
- return y ? Math.round(Math.random() * (y - x)) + x : Math.round(Math.random() * x);
- },
- pick: (array) => {
- return array[utils.random(array.length - 1)];
- }
- }
- let users = require('./users.json');
- let buttons = [];
- let stats = {
- messages: {
- inbox: 0,
- outbox: 0
- },
- new_users: 0,
- bot_start: Date.now()
- }
- async function saveUsers()
- {
- require('fs').writeFileSync('./users.json', JSON.stringify(users, null, '\t'));
- return true;
- }
- vk.setOptions({ token: '1d56c84de9bce8aa152684c2f2f8b1093959bb7a3f4013574f96875067c838275458e42e64caff91d8cc7', pollingGroupId: 182782568 });
- const { updates, snippets } = vk;
- updates.startPolling();
- updates.on('message', async (message, context) => {
- stats.messages.inbox += 1;
- if(Number(message.senderId) <= 0) return;
- if(/\[public\|(.*)\]/i.test(message.text)) message.text = message.text.replace(/\[public\|(.*)\]/ig, '').trim();
- if(!users.find(x=> x.id === message.senderId))
- {
- const [user_info] = await vk.api.users.get({ user_id: message.senderId });
- const date = new Date();
- users.push({
- id: message.senderId,
- uid: users.length,
- balance: 100,
- tag: user_info.first_name
- });
- }
- message.user = users.find(x=> x.id === message.senderId);
- if(message.user.ban) return;
- const bot = (text, params) => {
- return message.send(`${message.user.mention ? `@id${message.user.id} (${message.user.tag})` : `${message.user.tag}`}, ${text}`, params);
- }
- const command = commands.find(x=> message.text);
- if(!command) return;
- message.args = message.text.match(command[0]);
- await command[1](message, bot);
- console.log(`Пользователь ${utils.sp(message.user.uid)}: ${message.text}`)
- });
- function getUnix() {
- return Date.now();
- }
- function unixStamp(stamp) {
- let date = new Date(stamp),
- year = date.getFullYear(),
- month = date.getMonth() + 1,
- day = date.getDate(),
- hour = date.getHours() < 10 ? "0"+date.getHours() : date.getHours(),
- mins = date.getMinutes() < 10 ? "0"+date.getMinutes() : date.getMinutes(),
- secs = date.getSeconds() < 10 ? "0"+date.getSeconds() : date.getSeconds();
- return `${day}.${month}.${year}, ${hour}:${mins}:${secs}`;
- }
- function unixStampLeft(stamp) {
- stamp = stamp / 1000;
- let s = stamp % 60;
- stamp = ( stamp - s ) / 60;
- let m = stamp % 60;
- stamp = ( stamp - m ) / 60;
- let h = ( stamp ) % 24;
- let d = ( stamp - h ) / 24;
- let text = ``;
- if(d > 0) text += Math.floor(d) + " д. ";
- if(h > 0) text += Math.floor(h) + " ч. ";
- if(m > 0) text += Math.floor(m) + " мин. ";
- if(s > 0) text += Math.floor(s) + " с.";
- return text;
- }
- const cmd = {
- hear: (p, f) => {
- commands.push([p, f]);
- }
- }
- const sessionManager = new SessionManager();
- const sceneManager = new SceneManager();
- sceneManager.addScene(new StepScene('signup', [
- (message) => {
- if (message.scene.step.firstTime || !message.text) {
- return message.send(`What\'s your name?`);
- }
- message.scene.state.firstName = message.text;
- return message.scene.step.next();
- },
- (message) => {
- if (message.scene.step.firstTime || !message.text) {
- return message.send(`How old are you?`);
- }
- message.scene.state.age = Number(message.text);
- return message.scene.step.next();
- },
- async (message) => {
- const { firstName, age } = message.scene.state;
- await message.send(`👤 ${firstName} ${age} ages`);
- await message.scene.leave();
- }
- ]));
- updates.on('message', sessionManager.middleware);
- updates.on('message', sceneManager.middleware);
- cmd.hear(/^(?:signupp)$/i, (context) => {
- return context.scene.enter('signup');
- });
- vk.updates.start().catch(console.error);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement