This commit is contained in:
”minicx” 2022-12-07 20:47:49 +03:00
parent 59036799cf
commit 95dd9f5696
1 changed files with 41 additions and 39 deletions

View File

@ -1,5 +1,5 @@
import fs = require('fs');
import { database, database as db, settings } from './database'
import { database as db, settings } from './database'
import prompt from 'prompts';
import logger from "./logger"
import * as telegram from 'telegram';
@ -8,7 +8,7 @@ import { AccountInterface } from './interfaces/databaseInterface';
import { sleep } from 'telegram/Helpers';
import findFreePorts from 'find-free-ports';
import { waitNewMessages, startNewTorDocker, getIP, getMessagesByEntity, isBannedByClient } from './utils';
import { connect, disconnect, tor } from "node-tor-control";
import { connect, tor } from "node-tor-control";
import Miner from '@ulixee/miner';
import Hero from '@ulixee/hero';
import { portsInterface, usedIPInterface } from "./interfaces/otherInterfaces"
@ -17,9 +17,7 @@ import ExecuteJsPlugin from '@ulixee/execute-js-plugin';
import _ from 'lodash';
import Docker from 'dockerode';
import cliProgress from "cli-progress"
import { isAxiosError } from 'axios';
import BigInteger from "big-integer";
import { EntityLike } from 'telegram/define';
const addAccounts: () => Promise<void> = async () => {
let apiId: number = 0
@ -222,7 +220,7 @@ const farm: () => Promise<void> = async () => {
await client.connect();
if ((await client.checkAuthorization()) == false) {
logger.error(`Account ${worker.phoneNumber} is not authorizated`);
continue
continue workersLoop
} else {
logger.debug(`Successfully connected to account ${worker.phoneNumber}`);
// https://gram.js.org/beta/modules/Api.channels.html
@ -244,7 +242,7 @@ const farm: () => Promise<void> = async () => {
usedIPs.filter((value) => { return _.isEqual(worker, value.worker) })[0].current = ''
usedIPs.filter((value) => { return _.isEqual(worker, value.worker) })[0].usedIps.pop()
await hero.close()
continue
continue workersLoop
}
// leaving old groups
@ -365,14 +363,14 @@ const farm: () => Promise<void> = async () => {
} catch (err){
logger.error(`Some error due doing tasks\n${err}\n${err.stack}`)
}
database.updateUser(worker);
// db.updateUser(worker);
await hero.close();
}
}
return workers
}
@ -399,7 +397,7 @@ const farm: () => Promise<void> = async () => {
if (workersGroups.length != Math.ceil(workers.length / settings.pararels)) {
logger.warn(`There is strange thing with workersGroups\n${workersGroups.length} ${Math.ceil(workers.length / settings.pararels)}`);
}
let pararels: Promise<void>[] = [];
let pararels: Promise<AccountInterface[]>[] = [];
let _ports = await findFreePorts(workers.length * 3 + 1);
const miner = new Miner();
await miner.listen({ port: _ports[_ports.length - 1] });
@ -444,6 +442,10 @@ const farm: () => Promise<void> = async () => {
for (const result of results) {
if (result.status == 'rejected') {
logger.warn(`Promise is caanceled due ${result.reason}`);
} else{
for (const worker of result.value){
await db.updateUser(worker)
}
}
}
logger.debug('Closing opened docker containers ')
@ -461,39 +463,39 @@ const farm: () => Promise<void> = async () => {
(async () => {
while (true) {
const answer = await prompt({
type: 'select',
name: 'menu',
message: 'Choose action',
choices: [
((await db.getUsers()).length > 0) ? { title: 'Start', description: 'Starting farm', value: 'start' } : { title: 'Start', description: 'Add accounts first...', value: 'start', disabled: true },
{ title: 'Add accounts', description: 'Add accounts to database', value: 'addAccounts' },
{ title: 'Check balances', value: 'checkBalances', disabled: true },
{ title: 'Withdraw', value: 'withdraw', disabled: true },
{ title: 'Exit', description: 'You realy dont know what it mean?' }
]
})
switch (answer.menu) {
case 'addAccounts':
await addAccounts();
break;
case 'start':
while (true) {
try {
await farm();
} catch (err) {
logger.error(`Unknown error\n${err.stack}\n${typeof err}`);
break;
const answer = await prompt({
type: 'select',
name: 'menu',
message: 'Choose action',
choices: [
((await db.getUsers()).length > 0) ? { title: 'Start', description: 'Starting farm', value: 'start' } : { title: 'Start', description: 'Add accounts first...', value: 'start', disabled: true },
{ title: 'Add accounts', description: 'Add accounts to database', value: 'addAccounts' },
{ title: 'Check balances', value: 'checkBalances', disabled: true },
{ title: 'Withdraw', value: 'withdraw', disabled: true },
{ title: 'Exit', description: 'You realy dont know what it mean?' }
]
})
switch (answer.menu) {
case 'addAccounts':
await addAccounts();
break;
case 'start':
while (true) {
try {
await farm();
} catch (err) {
logger.error(`Unknown error\n${err.stack}\n${typeof err}`);
break;
}
}
}
break;
break;
default:
logger.info('Bye bye');
process.exit();
default:
logger.info('Bye bye');
process.exit();
}
}
}
})();