Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
A bot that watches users stories on behalf of your VKontakte account (sqlite mode)
Бот, который смотрит истории ВКонтакте
Бот предоставляет 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 - это один или несколько аккаунтов, которые будут собирать список доступных историй у участников групп, которые указаны в настройках бота или коллектора
Так как 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'а
179963918
57846937
29534144
tokens: ['token1', 'token2', 'token3', ...['tokenN']]
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'а
limitStoriesForUser
историй)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: (from, id, command, ...data) => {
// from - название инициализатора команды (viewer,collector)
// id - ID инициализатора (для виювера ID аккаунта, а для коллектора - 0)
// command - текстовое обозначение команды
// data[] - данные, которые пришли вместе с командой
}
console.log()
бота. Может помочь, чтобы вести логи программы отдельноsqlite
, вы можете использовать настройки из модуля sqlite3, опираясь на рекомендации модуля knexnew Bot({
database: {
filename: __dirname + '/storybot.sqlite'
}
})
Для того, чтобы бот работал, вам больше не нужно скачивать Mongo DB :) ! По всем вопросам работы софта, обащайтесь в личку https://vk.com/kinock. Постараюсь помочь в настройке
Желаю вам успехов.
FAQs
A bot that watches users stories on behalf of your VKontakte account (sqlite mode)
The npm package storybot receives a total of 0 weekly downloads. As such, storybot popularity was classified as not popular.
We found that storybot demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.