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 users stories on behalf of your VKontakte account (sqlite mode)

  • 0.0.3
  • unpublished
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

storybot

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

API

Бот предоставляет JavaScript API для работы с ним

О чем речь

Если вы не в теме, то поясню, зачем все это нужно.

Когда-то давно, в 2018 году буквально через 3 дня после моего др, я написал статью на Пикабу о том, как воспользовался идеей маркетологов для наращивания статистики посещения страницы ВКонтакте. Метод заключаетя в том, что вы создаете бота, который будет самостоятельно просматривать истории пользователей ВКонтакте, а они в свою очередь будут от интереса "who are you, man?" посещать вашу страницу.

Тогда у меня получились неплохие цифры по посещаемости, охват вырос с 50 посещений до 28 тысяч. Вы можете почитать как это было в этой статье (https://pikabu.ru/story/o_tom_kak_ya_ispolzoval_prosmotryi_storis_dlya_piara_v_vk_6123084)

Бот из статьи уже давно не работает и его поддержка не осуществляется, но тем не менее, сейчас вы находитесь на странице практически того же самого бота, но во много раз улучшенного и продуманного. Это API - это версия для разработчиков, которым хочется поэкспериментировать с данным функционалом. Он более стабильный, постоянно поддерживается и обновляется. Работает на sqlite3, в отличие от прошлой версии (MySQL, Mongo DB), а также оптимизирован под лимиты ВКонтакте так, чтобы не возникало неожиданных сбоев и проблем.

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

Первый шаг

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

let BotController = new Bot({
  database: {
    filename: __dirname + '/storybot.sqlite'
  }
})

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 - это один или несколько аккаунтов, которые будут собирать список доступных историй у участников групп, которые указаны в настройках бота или коллектора

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

В боте коллектор может быть только 1. Но аккаунто в нем может быть минимум 1 и максимум - количество доступных для вас разных токенов пользователей. Для того, чтобы коллектор запустился и работал, ему необходимо дать второй дополнительный токен со второго аккаунта! Это важно, потому что иначе вы будете упираться в лимиты и скорость коллектора будет значительно ниже, чем могла бы быть.

Токены коллектора используются в максимальном режиме. Это значит, что чем больше токенов - тем быстрее коллектор собирает истории пользователей.

Токены коллектора могут быть только токены, которые имеют доступ к следующим методам API ВКонтакте: stories.get, groups.getMembers, execute. Рекомендуется использовать только токены пользователя с максимальными правами доступа. На токенах групп бот не тестировался. Но по докам ВК, группы могут иметь доступ к методу stories.get


const { Collector } = require('storybot')

let myCollector = new Collector({
  fileIds: [__dirname + '/groups.data'],
  tokens: ['USER_TOKEN'], // НЕ МОЖЕТ БЫТЬ ПУСТЫМ
  target: {
    sex: 1,
    users: [1,2,3,4],
    files: [__dirname + '/users.ids']
  }
})

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

  • fileIds - массив путей к файлам, в которых хранятся идентификаторы групп, где каждый идентификатор - новая строка (пример файла)
179963918
57846937
29534144
  • tokens - массив токенов, между которыми коллектор автоматически будет переключаться, чтобы быстрее искать истории и быстрее находить пользователей. Коллектор должен уложиться в лимиты, которые устанавливает ВКонтакте на количество запросов в минуту. В зависимости от количества токенов, будет использоваться тот, на котором скорее всего, сейчас нет ограничения. Если токен только один, то коллектор подстроится под лимиты и будет работать на максимально доступной скорости без ошибок
tokens: ['token1', 'token2', 'token3', ...['tokenN']]
  • easyvkDebug - параметр для продвинутых пользователей API - объект Debugger Easy VK для работы с дебагом запросов
  • target - настройки таргета для более точного поиска аудитории
  • target.sex - пол аудитории, в которой нужно искать истории 1 - женский пол, 2 - мужской пол
  • target.users[] - массив идентифекаторов пользователей, у которых нужно искать истории
  • target.files[] - массив путей к файлам, где хранятся идентифекатора пользователей, у которых нужно искать истории (соединяются вместе с target.users[])
  • collectFromGroups - нужно ли в данный момент искать участников в группах

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,
  limitStoriesForUser: 1,
  startFromEnd: false
});

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

  • account - объект настройки аккаунта (username, password)
  • reauth - нужно ли сделать авторизацию с чистого листа
  • proxy - адрес прокси сервера (SOCKS, http(s))
  • userAgent - User-Agent для запросов (header)
  • captchaKey - текст с полседней полученной капчи
  • captchaSid - ID последней полученной капчи
  • code - Код для двухфакторной аутентификации
  • access_token - забудьте об авторизации через HTTP клиент. С новым способом можно просто вставить access_token с максимальными правами, полученным на стороне клиента приложения ВКонтакте
  • easyvkDebug - параметр для продвинутых пользователей API - объект Debugger Easy VK для работы с дебагом запросов
  • limitStoriesForUser - максимальное кол-во историй, которое будет просматриваться у одного пользователя (их может быть и 50 сразу, но просМотрит он только limitStoriesForUser историй)
  • startFromEnd - нужно ли смотреть истории с конца. Конец - это самая последняя выложенная история пользователем

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)
  },
  database: {
    filename: __dirname + '/storybot.sqlite'
  }
})

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

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

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

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

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

  • command - функция, которая будет прослушивать внутренние команды виюверов и коллектора. Может помочь при создании софта на основе данного API
command: (from, id, command, ...data) => {
  // from - название инициализатора команды (viewer,collector)
  // id - ID инициализатора (для виювера ID аккаунта, а для коллектора - 0)
  // command - текстовое обозначение команды
  // data[] - данные, которые пришли вместе с командой
}
  • log - функция, которая будет ловить все console.log() бота. Может помочь, чтобы вести логи программы отдельно
  • database - объект настроек для файла базы данных sqlite, вы можете использовать настройки из модуля sqlite3, опираясь на рекомендации модуля knex
new Bot({
  database: {
    filename: __dirname + '/storybot.sqlite'
  }
})

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

Для того, чтобы бот работал, вам больше не нужно скачивать Mongo DB :) ! По всем вопросам работы софта, обащайтесь в личку https://vk.com/kinock. Постараюсь помочь в настройке

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

Keywords

FAQs

Package last updated on 19 Jul 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