Загрузил архивные файлы
This commit is contained in:
parent
96a222a277
commit
62cf453052
304
bot.js
Normal file
304
bot.js
Normal file
@ -0,0 +1,304 @@
|
||||
const DEF_DELAY = 1200;
|
||||
function sleep(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms || DEF_DELAY));
|
||||
}
|
||||
|
||||
const got = require('got');
|
||||
const { whitelist, user_agent, origin } = require('./config');
|
||||
|
||||
module.exports = function (users) {
|
||||
for (const user of users){
|
||||
var a = new SlaveMaster(user);
|
||||
a.start()
|
||||
}
|
||||
};
|
||||
|
||||
class SlaveMaster{
|
||||
|
||||
my_id = -1;
|
||||
balance = 0;
|
||||
|
||||
friends = [];
|
||||
slaves_already = [];
|
||||
|
||||
constructor(user) {
|
||||
this.name = user.name;
|
||||
this.token = user.token;
|
||||
this.job = user.job;
|
||||
this.buy_slaves = user.buy_slaves;
|
||||
this.buy_fetters = user.buy_fetters;
|
||||
this.upgrade_slaves = user.upgrade_slaves;
|
||||
this.min_fetter_profit = user.min_fetter_profit;
|
||||
this.min_balance = user.min_balance;
|
||||
this.min_price = user.min_price;
|
||||
this.max_price = user.max_price;
|
||||
this.min_upgrade_price = user.min_upgrade_price;
|
||||
this.getFriendsIds = user.getFriendsIds;
|
||||
}
|
||||
|
||||
async start(){
|
||||
try {
|
||||
await this.init();
|
||||
console.log(this.name,' ||| ','Авторизация прошла успешно');
|
||||
var response = await this.getMyInfo();
|
||||
this.my_id = response.me.id;
|
||||
this.balance = response.me.balance;
|
||||
console.log(this.name,' ||| ','Мой владелец ',response.me.master_id);
|
||||
console.log(this.name,' ||| ','Бот был запущен');
|
||||
await sleep();
|
||||
this.checkFetter();
|
||||
this.getFriends();
|
||||
this.buySlaves();
|
||||
} catch(err) {
|
||||
console.error(err);
|
||||
console.error(err.response.body);
|
||||
}
|
||||
}
|
||||
|
||||
async init(){
|
||||
try {
|
||||
var bearer_response = await got.get(`https://api.vk.com/method/apps.get?app_id=7794757&platform=ios&access_token=${this.token}&v=5.23`, {
|
||||
headers: {
|
||||
'user-agent': user_agent
|
||||
},
|
||||
throwhttperrors: true,
|
||||
responseType: 'json',
|
||||
resolveBodyOnly: true
|
||||
}).json();
|
||||
var url = bearer_response.response.mobile_iframe_url;
|
||||
var bearer = 'Bearer ' + url.substring(url.indexOf('index.html?')).substring(11);
|
||||
this.authorization = bearer;
|
||||
} catch(error) {
|
||||
console.error(error);
|
||||
console.error(this.name,' --- ','Ошибка Авторизации: ',error.response.body);
|
||||
}
|
||||
setTimeout(() => {this.init()},600000);
|
||||
}
|
||||
|
||||
async getFriends(){
|
||||
try {
|
||||
var friends_response = await got.get(`https://vk-api-proxy.xtrafrancyz.net/method/friends.get?user_id=${this.my_id}&count=10000&access_token=${this.token}&v=5.150`).json();
|
||||
this.friends = friends_response.response.items;
|
||||
|
||||
await sleep();
|
||||
//users.getFollowers
|
||||
|
||||
for await (const id of this.getFriendsIds){
|
||||
var friends_response1 = await got.get(`https://vk-api-proxy.xtrafrancyz.net/method/friends.get?user_id=${id}&count=20000&access_token=${this.token}&v=5.150`).json();
|
||||
var friends_array1 = friends_response1.response.items;
|
||||
|
||||
for await (const friend of friends_array1){
|
||||
await this.friends.push(friend);
|
||||
}
|
||||
|
||||
var friends_response2 = await got.get(`https://vk-api-proxy.xtrafrancyz.net/method/users.getFollowers?user_id=${id}&count=1000&access_token=${this.token}&v=5.150`).json();
|
||||
var friends_array2 = friends_response2.response.items;
|
||||
|
||||
for await (const friend of friends_array2){
|
||||
await this.friends.push(friend);
|
||||
}
|
||||
|
||||
await sleep();
|
||||
}
|
||||
console.log(this.name,' --- ','Друзей: ',this.friends.length);
|
||||
|
||||
} catch(error) {
|
||||
console.error(this.name,' --- ','Ошибка получения списка друзей: ',error);
|
||||
}
|
||||
|
||||
await sleep(300000);
|
||||
this.getFriends();
|
||||
}
|
||||
|
||||
async getMyInfo(){
|
||||
var response = await got.get(`https://pixel.w84.vkforms.ru/HappySanta/slaves/1.0.0/start`, {
|
||||
headers: {
|
||||
'user-agent': user_agent,
|
||||
'authorization' : this.authorization,
|
||||
'Origin': origin
|
||||
}
|
||||
}).json();
|
||||
await sleep(100);
|
||||
return response;
|
||||
}
|
||||
|
||||
async getInfo(id){
|
||||
var response = await got.get(`https://pixel.w84.vkforms.ru/HappySanta/slaves/1.0.0/user?id=${id}`, {
|
||||
headers: {
|
||||
'user-agent': user_agent,
|
||||
'authorization' : this.authorization,
|
||||
'Origin': origin
|
||||
}
|
||||
}).json();
|
||||
await sleep(100);
|
||||
return response;
|
||||
}
|
||||
|
||||
async buySlave(slave){
|
||||
await got.post(`https://pixel.w84.vkforms.ru/HappySanta/slaves/1.0.0/buySlave`, {
|
||||
headers: {
|
||||
'user-agent': user_agent,
|
||||
'authorization' : this.authorization,
|
||||
'Origin': origin
|
||||
},
|
||||
throwhttperrors: true,
|
||||
responseType: 'json',
|
||||
resolveBodyOnly: true,
|
||||
json: {
|
||||
slave_id: slave.id
|
||||
}
|
||||
}).then((response)=>{
|
||||
this.balance = response.balance;
|
||||
this.slaves_already.push(slave.id);
|
||||
console.log(this.name,' ||| ','Новый раб \tid:',slave.id,' \tЦена:',slave.price);
|
||||
}).catch(async (error) => {
|
||||
await sleep();
|
||||
console.error(this.name,' --- ','Ошибка покупки раба: ',error.response.body/*.replace(/(\<.*?\>)/g, '')*/);
|
||||
});
|
||||
await sleep();
|
||||
}
|
||||
|
||||
async sellSlave(slave){
|
||||
await got.post(`https://pixel.w84.vkforms.ru/HappySanta/slaves/1.0.0/saleSlave`, {
|
||||
headers: {
|
||||
'user-agent': user_agent,
|
||||
'authorization' : this.authorization,
|
||||
'Origin': origin
|
||||
},
|
||||
throwhttperrors: true,
|
||||
responseType: 'json',
|
||||
resolveBodyOnly: true,
|
||||
json: {
|
||||
slave_id: slave.id
|
||||
}
|
||||
}).then((response)=>{
|
||||
this.balance = response.balance;
|
||||
this.slaves_already.push(slave.id);
|
||||
console.log(this.name,' ||| ','Продан раб \tid:',slave.id);
|
||||
}).catch(async (error) => {
|
||||
console.error(this.name,' --- ','Ошибка продажи раба: ',error.response.body/*.replace(/(\<.*?\>)/g, '')*/);
|
||||
});
|
||||
await sleep();
|
||||
}
|
||||
|
||||
async jobSlave(slave){
|
||||
await got.post(`https://pixel.w84.vkforms.ru/HappySanta/slaves/1.0.0/jobSlave`, {
|
||||
headers: {
|
||||
'user-agent': user_agent,
|
||||
'authorization' : this.authorization,
|
||||
'Origin': origin
|
||||
},
|
||||
throwhttperrors: true,
|
||||
responseType: 'json',
|
||||
resolveBodyOnly: true,
|
||||
json: {
|
||||
slave_id: slave.id,
|
||||
name: this.job
|
||||
}
|
||||
}).then((response)=>{
|
||||
console.log(this.name,' ||| ','Новая работа \tid:',slave.id,' \tПрибыль в минуту:',response.slave.profit_per_min);
|
||||
}).catch(async (error) => {
|
||||
await sleep();
|
||||
console.error(this.name,' --- ','Ошибка при устройстве на работу: ',error.response.body/*.replace(/(\<.*?\>)/g, '')*/);
|
||||
});
|
||||
await sleep();
|
||||
}
|
||||
|
||||
async buyFetter(slave,nums){
|
||||
await got.post(`https://pixel.w84.vkforms.ru/HappySanta/slaves/1.0.0/buyFetter`, {
|
||||
headers: {
|
||||
'user-agent': user_agent,
|
||||
'authorization' : this.authorization,
|
||||
'Origin': origin
|
||||
},
|
||||
throwhttperrors: true,
|
||||
responseType: 'json',
|
||||
resolveBodyOnly: true,
|
||||
json: {
|
||||
slave_id: slave.id
|
||||
}
|
||||
}).then((response)=>{
|
||||
// balance = response.balance;
|
||||
this.balance -= slave.fetter_price;
|
||||
console.log(this.name,' ||| ','Купил цепь \tid:',slave.id,'\tЦена:',slave.fetter_price,'\tПрибыль принесет:',(slave.profit_per_min*60*2-slave.fetter_price));
|
||||
}).catch(async (error) => {
|
||||
await sleep();
|
||||
var err=""+error.response.body;
|
||||
console.error(this.name,' --- ','Ошибка покупки кандалов: ',error.response.body/*.replace(/(\<.*?\>)/g, '')*/);
|
||||
});
|
||||
await sleep();
|
||||
}
|
||||
|
||||
async checkFetter(){
|
||||
try {
|
||||
var response = await this.getMyInfo();
|
||||
// console.log(response.me);
|
||||
this.balance = response.me.balance;
|
||||
console.log(this.name,' =|= ',"Текущий баланс: ",response.me.balance,' \tРабов: ',response.me.slaves_count,'\tДоход в минуту: ',response.me.slaves_profit_per_min,' \tМесто в рейтинге: ',response.me.rating_position);
|
||||
|
||||
var slaves_array = [];
|
||||
var slaves = response.slaves;
|
||||
|
||||
for await (const slave of slaves){
|
||||
if(((slave.profit_per_min>this.min_fetter_profit&&slave.fetter_price<=120000)||whitelist.includes(slave.id))&&slave.fetter_to==0&&slave.fetter_price<=this.balance&&this.buy_fetters){
|
||||
await this.buyFetter(slave);
|
||||
}
|
||||
}
|
||||
|
||||
for await (const slave of slaves){
|
||||
slaves_array.push(slave.id);
|
||||
if(((slave.profit_per_min>1&&slave.fetter_price<=120000)||whitelist.includes(slave.id))&&slave.fetter_to==0&&slave.fetter_price<=this.balance&&this.buy_fetters){
|
||||
await this.buyFetter(slave);
|
||||
}
|
||||
if(slave.profit_per_min==0){
|
||||
await this.jobSlave(slave);
|
||||
}
|
||||
}
|
||||
this.slaves_already = slaves_array;
|
||||
} catch(error) {
|
||||
console.error(this.name,' --- ','Ошибка проверки кандалов: ',error);
|
||||
}
|
||||
await sleep(5000);
|
||||
this.checkFetter();
|
||||
}
|
||||
|
||||
async buySlaves(){
|
||||
if(this.buy_slaves) try {
|
||||
|
||||
var friends_ids = this.friends.filter( ( friend ) => !this.slaves_already.includes( friend ) );
|
||||
|
||||
for await (const friend of friends_ids){
|
||||
var slave = await this.getInfo(friend);
|
||||
if(slave.master_id!=this.my_id&&this.balance>=this.min_balance&&this.balance>=slave.price&&slave.price<=this.max_price&&slave.price>=this.min_price&&slave.fetter_to==0){
|
||||
await this.buySlave(slave);
|
||||
}
|
||||
}
|
||||
|
||||
await this.upgradeSlaves();
|
||||
|
||||
await sleep(5000);
|
||||
this.buySlaves();
|
||||
} catch(error) {
|
||||
console.error(this.name,' --- ','Ошибка покупки рабов: ',error);
|
||||
await sleep(5000);
|
||||
this.buySlaves();
|
||||
}
|
||||
}
|
||||
|
||||
async upgradeSlaves(){
|
||||
if(this.upgrade_slaves) try {
|
||||
var response = await this.getMyInfo();
|
||||
for await (const slave of response.slaves){
|
||||
if(this.balance>=1000000&&slave.price<=27000&&slave.price>=this.min_upgrade_price){
|
||||
await this.sellSlave(slave);
|
||||
await sleep(100);
|
||||
await this.buySlave(slave);
|
||||
await sleep(100);
|
||||
}
|
||||
}
|
||||
return;
|
||||
} catch(error) {
|
||||
console.error(this.name,' --- ','Ошибка улучшения рабов: ',error);
|
||||
}
|
||||
}
|
||||
}
|
23
config-example.js
Normal file
23
config-example.js
Normal file
@ -0,0 +1,23 @@
|
||||
var config = {}
|
||||
|
||||
config.whitelist = [];
|
||||
config.user_agent = "Mozilla/5.0 (Linux; Android 10; Redmi Note 8 Build/QQ3A.200705.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36";
|
||||
config.origin = "https://prod-app7794757-c1ffb3285f12.pages-ac.vk-apps.com";
|
||||
config.users = [
|
||||
{
|
||||
'name' : 'Я',
|
||||
'job' : 'Рядовой раб',
|
||||
'token' : '',
|
||||
'getFriendsIds' : [],
|
||||
"buy_slaves": 1,
|
||||
"buy_fetters": 1,
|
||||
"min_fetter_profit": 70,
|
||||
"upgrade_slaves": 0,
|
||||
"min_balance" : 50000000,
|
||||
"min_price": 0,
|
||||
"max_price": 2000000,
|
||||
"min_upgrade_price":1000
|
||||
}
|
||||
]
|
||||
|
||||
module.exports = config;
|
23
package.json
Normal file
23
package.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "SlavesBot",
|
||||
"version": "0.0.25032021",
|
||||
"description": "A slaves bot",
|
||||
"engines": {
|
||||
"node": "12.x"
|
||||
},
|
||||
"main": "starter.js",
|
||||
"scripts": {
|
||||
"start": "node starter.js",
|
||||
"test": "node test.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"got": "^11.8.1",
|
||||
"https": "^1.0.0",
|
||||
"request": "^2.88.2",
|
||||
"superagent": "^6.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tape": "^4.7.0"
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
2
starter.js
Normal file
2
starter.js
Normal file
@ -0,0 +1,2 @@
|
||||
const { users } = require('./config');
|
||||
require('./bot')(users)
|
Reference in New Issue
Block a user