Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

storybot

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

storybot

A bot that watches stories on behalf of your VKontakte account

  • 0.0.2
  • unpublished
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

storybot

Бот, который смотрит истории ВКонтакте

API

Бот предоставляет JavaScript API для работы с ним. Чтобы бот приступил к работе, ему необходима установленная база данных на MongoDB

Первый шаг

const { Bot, Viewer, Collector} = require('storybot')

let BotController = new Bot({
  dbName: 'storybot'
})

let KirillViewer = new Viewer({
  account: {
    username: 'ИМЯ_ПОЛЬЗОВАТЕЛЯ_ВК',
    password: 'ПАРОЛЬ_ВК'
  }
})

let KirillCollector = new Collector({
  tokens: ['токен_пользователя_1', ...['токен_пользователя_n']]
})


BotController.addBot({
  viewers: [KirillViewer],
  collector: KirillCollector,
  groupIds: [1,2],
  name: 'Bot1'
})


BotController.startBots().then(() => {
  console.log('Все боты запущены')
})

Collector

Collector - это один или несколько аккаунтов, которые будут собирать список доступных историй у участников групп, которые указаны в настройках бота или коллектора

Изначально коллектор - это аккаунт последнего авторизованного Viewer'а Так как storybot написан с помощью EasyVK, то он работает по его правилам (сохранение сессий, загрузка по ним занова)

Поэтому без инициализированного Viewer'а не будет работать коллектор. В боте коллектор может быть только 1. Но аккаунто в нем может быть минимум 1 и максимум - количество доступных для вас разных токенов пользователей


const { Collector } = require('storybot')

let myCollector = new Collector({
  idsFiles: [__dirname + '/groups.data']
  tokens: [''] // Если токенов нет, то авторизация произойдет по Viewer'у
})

Настройки Collector'а

  • idsFiles - массив путей к файлам, в которых хранятся идентификаторы групп, где каждый идентификатор - новая строка (пример файла)
179963918
57846937
29534144
  • tokens - массив токенов, между которыми коллектор автоматически будет переключаться, чтобы быстрее искать истории и быстрее находить пользователей. Коллектор должен уложиться в лимиты, которые устанавливает ВКонтакте на количество запросов в минуту. В зависимости от количества токенов, будет использоваться тот, на котором скорее всего, сейчас нет ограничения. Если токен только один, то коллектор подстроится под лимиты и будет работать на максимально доступной скорости без ошибок
tokens: ['token1', 'token2', 'token3', ...['tokenN']]

Viewer

Viewer - это тот, кто просматривает истории. Виюверов может быть подключено сразу много, а также, их можно настроить по правилам авторизации easyvk (указать прокси, user-agent и другие параметры)

const { Viewer } = require('storybot')


let Liza = new Viewer({
  account: {
    username: 'liza-iza@gmailinbox.com',
    password: 'AzaRaLize45067!'
  },
  reauth: false,
  proxy: 'socks5://150.129.54.111:6667',
  userAgent: 'MOT-V360v/08.B7.58R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1',
  captchaKey: 'key',
  captchaSid: 34040402
})

Настройка Viwer'а

  • account - объект настройки аккаунта (username, password)
  • reauth - нужно ли сделать авторизацию с чистого листа
  • proxy - адрес прокси сервера (SOCKS, http(s))
  • userAgent - User-Agent для запросов (header)
  • captchaKey - текст с полседней полученной капчи
  • captchaSid - ID последней полученной капчи

Bot (бот)

Bot - это контроллер всего: виюверов и коллектора Его настройки тоже возможны. В нем же настраивается список идентификаторов групп. Сам объект Bot - это не бот. Это комната для ботов, в которой они работают под руководством начальника (Bot'а)

Поэтому в одном файле можно запустить сразу несколько ботов, это не проблема. У каждого бота должно быть уникальное имя, чтобы в базе данных было легко его найти и использовать снова


const { Bot } = require('storybot')

let botController = new Bot({
  command: (controller, id, command, data) => {
    console.log(controller, id, command, data)
  },
  log: (...args) => {
    console.log(...args)
  },
  dbName: 'storybot',
  dbUrl: 'mongodb://localhost:27017/'
})

// Список групп
let groups = [];

// Добавляем бота
botController.addBot({
  viewers: [...[Liza]],
  colletor: myCollector,
  groupIds: [1,2,3,4,...[groups]],
  name: 'Bot1' // Уникальное имя бота (придумайте сами)
})

// Запускаем ботов

botController.startBots().then(() => {
  console.log('All bots started!')
})

Настройка Bot'а

  • command - функция, которая будет прослушивать внутренние команды виюверов и коллектора. Может помочь при создании софта на основе данного API
command: (from, id, command, ...data) => {
  // from - название инициализатора команды (viewer,collector)
  // id - ID инициализатора (для виювера ID аккаунта, а для коллектора - 0)
  // command - текстовое обозначение команды
  // data[] - данные, которые пришли вместе с командой
}
  • log - функция, которая будет ловить все console.log() бота. Может помочь, чтобы вести логи программы отдельно
  • dbName - имя базы данных в mongodb
  • dbUrl - адрес базы данных (порт, протокол и IP)

Важности важные

Для того, чтобы бот работал, вам понадобится создать базу данных в mongodb (для этого надо установить mongodb и в нем создать новую базу)

Желаю вам успехов.

Keywords

FAQs

Package last updated on 26 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc