Bot Blaze Double
A blaze.com, site de aposta online, operada pela empresa Prolific Trade N.V. e bastante popular nas mídias sociais. Em um de seus jogos, o jogador aposta entre 3 cores (vermelho
O objetivo deste bot é enviar, após uma analise, sinais do resultado da proxima rodada para grupos/canais/chat do telegram.
ce71c8ba-4c42-4a72-85b4-64fbe3ace08e
chave aleatoria NuBank
Analise
- as entradas são feitas por condições definidas na analise;
- essa analise não é 100% eficaz, desenvolva sua própria análise caso queira melhores resultados;
- alterações de analise podem ser feitas no arquivo
analise.mjs
.
Novidades (v0.1.37)
- Correção de bugs:
- Travamento da blaze;
- Tempo no loss;
- Mensagem estática de gale.
Visualizar
Requisitos
Instalação
- Clone o repositório
git clone https://github.com/elizandrodantas/bot-blaze-telegram
- Instalar as dependencias
- npm
npm install
- yarn
yarn
- Variáveis de ambiente
(.env)
dentro do repositorio existe um arquivo de exemplo(.env.example)
URL_BLAZE="" // url WS da blaze
BASE_URL="" // base url do site da blaze
BOT_TOKEN="" // token do bot telegram
ID_GROUP_MESSAGE="" // id do grupo/canal/chat do telegram que ira receber os sinais (string)
caso as variaveis não forem encontradas dentro do processo, serão setados em forma de input no console (>= v0.1.1*)
Uso
import { BotBlazeWithTelegram } from './src/index.mjs';
new BotBlazeWithTelegram(options).run();
as opções estão detalhadas em opções
Opções
Interface
interface IConstructorClassDad {
timeAfterWin?: boolean | IOptionsTimePaused;
timeAfterLoss?: boolean | IOptionsTimePaused;
refBlaze?: string;
sticker: ISticker;
summaryOfResult?: boolean | IOptionsSummaryOfResult;
gale?: boolean | number;
messageEnterBet: ICBCurrentAndRecents;
messageWin: ICBCurrentAndPlayed;
messageLoss: ICBCurrentAndPlayed;
messageOfGale: ICBCurrentAndPlayedAndGale
}
interface IOptionsTimePaused {
time: number;
message: string;
}
interface ISticker {
win: string;
winGale: string;
loss: string;
winWhite: string;
}
interface IOptionsSummaryOfResult {
interval: number;
message: (number: INumberSummary, info: IInfoSummary, cb?: (message: string) => void);
}
interface INumberSummary {
win: number;
loss: number;
gale: number;
gale1: number;
gale2: number;
white: number;
consecutive: number;
total: number;
}
interface IInfoSummary {
date: string;
lastUpdate: number;
day: number;
}
interface IDataBlazeResponse {
id: string;
color: number;
roll: number;
created_at: string;
server_seed: string;
}
interface IGale {
sequence: number;
phase: string;
}
type ICB = (message: string) => void;
type ICBCurrentAndRecents = (currentPlay: IDataBlazeResponse, recents: IDataBlazeResponse[], cb: ICB) => string;
type ICBCurrentAndPlayed = (currentPlay: IDataBlazeResponse, betplayed: IDataBlazeResponse, cb: ICB) => string;
type ICBCurrentAndPlayedAndGale = (currentPlay: IDataBlazeResponse, betplayed: IDataBlazeResponse, gale: IGale, cb: ICB) => string;
Detalhes
- IConstructorClassDad.timeAfterWin pausa as entradas do bot apos um WIN
IConstructorClassDad.timeAfterWin.message
- mensagem apresentada quando pausa ativa (padrão: sem mensagem)IConstructorClassDad.timeAfterWin.time
- tempo que ficara em pausa em minutos (padrão: 3)
- IConstructorClassDad.timeAfterLoss pausa as entradas do bot apos um LOSS
IConstructorClassDad.timeAfterLoss.message
- mensagem apresentada quando pausa ativa (padrão: sem mensagem)IConstructorClassDad.timeAfterLoss.time
- tempo que ficara em pausa em minutos (padrão: 3)
- IConstructorClassDad.refBlaze codigo de referencia blaze
- IConstructorClassDad.sticker os arquivos devem ficar na pasta sticker na raiz
IConstructorClassDad.sticker.win
- nome da figura quando resultado: WIN sem GALEIConstructorClassDad.sticker.winGale
- nome da figura quando resultado: WIN no GALEIConstructorClassDad.sticker.loss
- nome da figura quando resultado: LOSSIConstructorClassDad.sticker.winWhite
- nome da figura quando resultado: WHITE
- IConstructorClassDad.summaryOfResult opções de resumo
IConstructorClassDad.summaryOfResult.interval
- intervalo para envio de mensagem. obs.: caso valor1
, a cada 1 jogada ele enviara o resumoIConstructorClassDad.summaryOfResult.message
- mensagem personalizada
- IConstructorClassDad.gale caso verdadeiro, não fara entrada nas jogadas gale
- IConstructorClassDad.messageEnterBet mensagem personalizada de entrada
- IConstructorClassDad.messageWin mensagem personalizada quando resultado: WIN
- IConstructorClassDad.messageLoss mensagem personalizada quando resultado: LOSS
- IConstructorClassDad.messageOfGale mensagem personalizada quando entrar em uma GALE
Todas opões com forma de uso:
{
//tempo após win
timeAfterWin: true,
// or
timeAfterWin: {
message: "mensagem",
time: 1
},
// tempo após loss
timeAfterLoss: true,
// or
timeAfterLoss: {
message: "mensagem",
time: 1
},
// sticker/figura
// nessa opção podem ser usado imagens que estão dentro da pasta STICKER
sticker: {
win: "win.jpg",
winGale: "win-in-gale.jpg",
winWhite: "win-white.jpg",
loss: "loss.jpg",
},
//envio de mensagens com resumo do dia
summaryOfResult: {
interval: 2 // a cada 2 jogadas, ele enviara mensagem personalizada abaixo
message: function(number, info, cb){
// number - numeros do resumo (todos possiveis estão em interface "INumberSummary")
// info - informações do resumo (todos possiveis estão em interface "IInfoSummary")
// cb - esse callback é uma ou mais mensagens que podem ser enviados alem do retorno desta, o valor request apenas uma string ( ex: cb('mensagem sobressalente') )
// opção de outras mensagens (não obrigatorio)
cb("mensagem sobressalente");
return "Total de jogadas: ${number.total}" +
"\nWins seguidos: ${number.consecutive} ✅" +
"\nTotal de win: ${number.win} ✅" +
"\nTotal de loss: ${number.loss} ❌" +
"\nTaxa de acertividade: ${(number.win / number.total * 100).toFixed(1)}%";
}
},
// Opção de entrada nas jogadas gale
gale: false, // não entra
gale: 2, // vai ate a gale 2
// Mensagem personalizada de entrada
messageEnterBet: (current, recents, cb) => {
// current - ultima jogada
// recents - ultimas 20 jogadas
// cb - envio de mensagens sobressalentes .:. ex: cb('test callback');
return "🔎 <b>SINAL ENCONTRADO:</b>\n" +
`\nENTRE NO ${_getColorNameOrEmoticon(current.color, { emoticon: true })} ${_getColorNameOrEmoticon(current.color, { pt: true, upper: true })}` +
`\nPROTEJA NO ${_getColorNameOrEmoticon(0, { emoticon: true })} ${_getColorNameOrEmoticon(0, { pt: true, upper: true })}` +
`\n\n<pre>https://blaze.com/${process.env.REF ? "r/" + process.env.REF : ""}</pre>`;
},
// Mensagem personalizada de Win
messageWin: (current, betplayed, cb) => {
// current - ultima jogada
// betplayed - dados da entrada
// cb - envio de mensagens sobressalentes .:. ex: cb('test callback');
return `🔸 ENTRAMOS NO ${_getColorNameOrEmoticon(betplayed.color, { emoticon: true })}` +
`\n🔹 RESULTADO FOI ${_getColorNameOrEmoticon(current.color, { emoticon: true })}`;
},
// Mensagem personalizada de Gale
messageOfGale: (current, betplayed, gale, cb) => {
// current - ultima jogada
// betplayed - dados da entrada
// gale - informações do gale
// cb - envio de mensagens sobressalentes .:. ex: cb('test callback');
return `⚠️ <b>ENTROU PRA GALE ${gale.sequence + 1}:</b>\n` +
`\nENTRE NO ${_getColorNameOrEmoticon(betplayed.color, { emoticon: true })} ${_getColorNameOrEmoticon(betplayed.color, { pt: true, upper: true })}` +
`\nPROTEJA NO ${_getColorNameOrEmoticon(0, { emoticon: true })} ${_getColorNameOrEmoticon(0, { pt: true, upper: true })}`;
},
// Mensagem personalizada de Loss
messageLoss: (current, betplayed, cb) => {
// current - ultima jogada
// betplayed - dados da entrada
// cb - envio de mensagens sobressalentes .:. ex: cb('test callback');
return `🔸 ENTRAMOS NO ${_getColorNameOrEmoticon(betplayed.color, { emoticon: true })}` +
`\n🔹 RESULTADO FOI ${_getColorNameOrEmoticon(current.color, { emoticon: true })}`;
}
}
Exemplos
- No exemplo1 [
example/example-with-dotenv.mjs
] usando a ferramenta Dotenv - No exemplo2 [
example/example-without-dotenv.mjs
] as variáveis ambiente deveram ser setadas direto no sistema ou preenchendo o formulário que será exibido no console
Contato
Instagram: Elizandro Dantas