Archived
1
0

Загрузил архивные файлы

This commit is contained in:
Kiow Just Me 2022-11-26 04:14:24 +03:00
parent 96a222a277
commit 62cf453052
5 changed files with 354 additions and 0 deletions

2
Procfile Normal file
View File

@ -0,0 +1,2 @@
worker: node starter.js

304
bot.js Normal file
View 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
View 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
View 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
View File

@ -0,0 +1,2 @@
const { users } = require('./config');
require('./bot')(users)