npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bot-blaze-telegram

v1.0.3

Published

esse bot envia sinais, do gamer double blaze, direto para chats do telegram.

Downloads

12

Readme

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 🔴, preto ⚫️ e branco ⚪️) e o valor apostado pode multiplicar até 14x.

O objetivo deste bot é enviar, após uma analise, sinais do resultado da proxima rodada para grupos/canais/chat do telegram.

❤️ Donation ❤️: ce71c8ba-4c42-4a72-85b4-64fbe3ace08e chave aleatoria NuBank 💜

Analise

  • essa anialise não é 100% eficaz, personalize sua própria análise caso queira melhores resultados;
  • arquivo de analise analise.mjs.

Novidades (v1.0.0)

  • Adicionado opção de analise personalizada

Visualizar

Requisitos

Instalação e configurações

Clone o repositório

git clone https://github.com/elizandrodantas/bot-blaze-telegram

ou

Instalar as dependencias

  • npm
npm install bot-blaze-telegram
  • yarn
yarn add bot-blaze-telegram

Uso

import { BotBlazeWithTelegram } from 'bot-blaze-telegram';

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;
    analysis?: IAnalysisKitten | IAnalysisKitten[];
}

interface IColorRoll {
    color: string | number;
    roll: number;
}

interface IAnalysisKitten {
    search: IColorRoll[];
    startSearchOf?: number;
    entryColor?: number | string;
    entryRoll?: number;
}

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 GALE
    • IConstructorClassDad.sticker.winGale - nome da figura quando resultado: WIN no GALE
    • IConstructorClassDad.sticker.loss - nome da figura quando resultado: LOSS
    • IConstructorClassDad.sticker.winWhite - nome da figura quando resultado: WHITE
  • IConstructorClassDad.summaryOfResult opções de resumo
    • IConstructorClassDad.summaryOfResult.interval - intervalo para envio de mensagem. obs.: caso valor 1, a cada 1 jogada ele enviara o resumo
    • IConstructorClassDad.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
  • *IConstructorClassDad.analysis opções de analise personalizada

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 })}`;
    },

    // Analise personalizada (unitaria)
    analysis: {
        search: [
            { color: "red" },
            { color: "black" }
        ],
        entryColor: "red"
    }

    // Analise personalizada (multiplas)
    // * primeira analise que encontrar, ele ira entrar
    analysis: [
        {
            search: [
                { color: "red" },
                { color: "black" }
            ],
            entryColor: "red"
        },
        {
            search: [
                { color: "black" },
                { color: "red" },
                { color: "black" },
                { color: "red" }
            ],
            entryColor: "black"
        },
        {
            search: [
                { color: "black" },
                { color: "red" },
                { color: "red" },
                { color: "black" }
            ],
            entryColor: "red"
        }
    ]
}

Exemplos

  1. No exemplo1 [example/example-with-dotenv.mjs] usando a ferramenta Dotenv
  2. 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