# bpl-wrapper

> wrapper não oficial da api da bluephoenix

Latest version **1.0.0** (published 2021-05-14) · ISC license · 0 weekly downloads

## Install

```sh
npm install bpl-wrapper
pnpm add bpl-wrapper
yarn add bpl-wrapper
bun add bpl-wrapper
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2021-05-14 |
| First published | 2021-05-14 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 5.8 KB |
| Known vulnerabilities | 0 (+23 in 1 direct dependencies) |
| Install scripts | no |
| Author | Victor Reis David |
| Maintainers | victor_reis_david |

## Links

- npm: https://www.npmjs.com/package/bpl-wrapper
- npm.io page: https://npm.io/package/bpl-wrapper

## Dependencies (2)

- [axios](https://npm.io/package/axios.md) ^0.21.1
- [socket.io-client](https://npm.io/package/socket.io-client.md) ^4.1.1

## Recent versions

- 1.0.0 (latest) — 2021-05-14

## README

# bpl-wrapper
Bpl wrapper é um módulo que facilita o uso da API da [blue pheonix](https://bluephoenixlist.tk/api), também com algumas funções pra você personalizar a conexão websocket!

## Como usar
Antes você tem que invocar a classe do módulo.
```javascript
const BP = require("bpl-wrapper")
const BPClient = new BP("id", options)
```
### opções
As opções são um objeto que você passa depois de id, elas controlam o comportamento ao perder a conexão ws com a api.
propriedade | sobre | tipo | padrão
----------- | ----- | ------ | ------
id | id do seu bot | `string` | `undefined`
options.reconnect | websocket deve tentar reconectar? | `boolean` | `true`
options.delay | quanto tempo deve demorar pra reconectar | `number` | `2000`
## exemplo de personalização
```javascript
const BPClient = new BP("720063826652823594", { reconnect: true, delay: 7800 }) //se perder a conexão, esperar 7,8 segundos pra tentar se reconectar.
```
Caso queira que o módulo não tente se reconectar.
```javascript
const BPClient = new BP("720063826652823594", { reconnect: false }) //não reconectar.
```
# eventos
Os eventos são a principal coisa desse módulo, com eles você consegue por exemplo, decidir oque acontece quando alguém **vota no seu bot**
nome | sobre | retorna
---- | ----- | ----------
ready | disparado quando a conexão é feita com sucesso. | objeto da conexão websocket, exemplo, o ID da conexão.
vote_create | disparado quando alguém vota no seu bot. | dados do seu bot, data de quando foi feito o voto (em milissegundos) e dados da pessoa que votou nele.
loss_connection | disparado quando a conexão websocket é perdida. | nada.
### como ouvir os eventos
seguindo o código acima, veja esse exemplo:
```javascript
const BP = require("bpl-wrapper")
const BPClient = new BP("720063826652823594", { reconnect: true, delay: 7800 })
BPClient.on("ready" /* assistindo o evento "ready" */, (socket) => {
    console.log("conectado com sucesso na API, id do websocket:", socket.id)
    //se você for curioso, dê um console.log(socket)
})
BPClient.on("vote_create" /* evento disparado quando votam no seu bot */, (user) => {
    console.log("novo voto!", user)
})
BPClient.on("loss_connection", () => {
    console.log("conexão perdida!")
})
```
## funções
esse módulo também possuí funções para pegar algumas informações da API!
função | sobre | parâmetros | tipo | obrigatório
------ | ----- | ---------- | ---- | -----------
fetchUser | Procura um usuário na bluepheonix e retorna informações dele | `userID` - id do usuário | `string` | `sim`
fetchBot | Procura um bot na bluephoenix e retorna informações dele | `botID` - id do bot | `string` | `sim`
### exemplos
Por padrão as funções retornam uma **promise**, então você deve usar `then()` ou `await`.
```javascript
const BP = require("bpl-wrapper")
const BPClient = new BP("720063826652823594", { reconnect: true, delay: 7800 })
BPClient.fetchUser("470976775145390082").then(user => {
    console.log(user)
}).catch((e) => {
    console.log("aconteceu um erro!", e)
})
//com async/await
(async () => {
   const user = await BPClient.fetchUser("470976775145390082")
   console.log(user)
})()
//pegar algum bot na bluephoenix
BPClient.fetchBot("733504773021499423").then(bot => {
    console.log(bot)
}).catch((e) => {
    console.log("aconteceu um erro!", e)
})
//com async/await
(async () => {
    const bot = await BPClient.fetchBot("733504773021499423")
    console.log(bot)
})
```
Espero que esse módulo te ajude!

---
_Source: https://npm.io/package/bpl-wrapper · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
