Este repositório é o bot. O site fica em globaloficial/global_site.
O Global junta comunidades do Fluxer e do Discord num mesmo chat.
Cada servidor escolhe um canal, e o que é escrito ali aparece nos canais dos outros.
Editar, apagar e responder também funciona entre os servidores.
| Etapa | O que acontece |
|---|---|
| 1 | Alguém escreve no canal global do servidor |
| 2 | A mensagem passa pelos filtros: links, convites, spam, palavras e NSFW |
| 3 | O vínculo é guardado no MongoDB, para sincronizar edições e exclusões |
| 4 | Emojis e menções são convertidos para a plataforma de destino |
| 5 | Cada plataforma tem a sua fila, com limite de requisições |
| 6 | O bot envia por webhook, com o nome e o avatar de quem escreveu |
O Global precisa da permissão Gerenciar Webhooks no canal conectado. Sem ela, a mensagem não chega e o bot avisa no canal.
Os dois bots rodam no mesmo processo.
Cada plataforma tem a sua fila de envio, então o limite de uma não segura a outra.
Quem não quer usar o chat global pode ligar canais de servidores amigos, entre Fluxer e Discord.
As mensagens ficam só dentro da ponte.
| Comando | O que faz |
|---|---|
g.ponte criar [nome] |
Cria a ponte com o canal atual e gera um código |
g.ponte entrar <código> |
Liga o canal atual a uma ponte |
g.ponte listar |
Mostra as pontes do servidor |
g.ponte sair |
Tira o canal atual da ponte |
g.ponte remover <código> <id> |
O dono tira outro servidor da ponte |
g.ponte encerrar <código> |
O dono apaga a ponte |
Até 10 servidores por ponte. Um canal não pode estar no chat global e em uma ponte ao mesmo tempo.
No Discord os comandos também existem como slash. É preciso ter a permissão Gerenciar Canais.
| Comando | O que faz |
|---|---|
g.conectar · g.desconectar |
Define ou remove o canal do chat global |
g.pausar · g.retomar |
Pausa e retoma a conexão |
g.config |
Mostra o estado da conexão, do webhook e dos filtros |
g.automod |
Ajusta os filtros automáticos |
g.ponte |
Cria e gerencia pontes privadas |
g.perfil · g.destacar |
Perfil do usuário e destaque de mensagens |
g.report |
Envia uma mensagem para a moderação |
g.botinfo · g.ping · g.ajuda |
Informações, latência e lista de comandos |
Requer Node.js 20+ ou Bun, um MongoDB em execução e o token de um bot do Fluxer.
git clone https://github.com/globaloficial/global
cd global
bun install
cp .env.example .env| Variável | Obrigatória | Padrão |
|---|---|---|
TOKEN |
Sim | nenhum |
MONGODB_URI |
Não | mongodb://127.0.0.1:27017/global |
DISCORD_TOKEN |
Não | vazio, e a ponte com o Discord fica desligada |
NSFW_URL |
Não | http://localhost:3000 |
NSFW_API_KEY |
Não | vazio |
ENTREGA_CONCORRENCIA |
Não | 10 |
ENTREGA_REQS_POR_SEGUNDO |
Não | 35 |
DISCORD_CONCORRENCIA |
Não | 10 |
DISCORD_REQS_POR_SEGUNDO |
Não | 30 |
Se o serviço NSFW estiver fora do ar, as mídias são bloqueadas. Ajuste o
NSFW_URLou deixe o serviço rodando.
Para o Discord, ative a Message Content Intent no Developer Portal. O bot também precisa de Gerenciar Webhooks e Gerenciar Mensagens nos canais conectados.
bun index.jsCom Node.js, passe o arquivo de ambiente explicitamente:
node --env-file=.env index.jsbun run lint
bun run typecheck
bun run testglobal/
├── index.js
├── migrations/
├── listas/
├── src/
│ ├── commands/ conexao, geral, staff e dono
│ ├── events/ eventos do Fluxer
│ ├── plataformas/ adaptadores do Fluxer e do Discord
│ ├── services/ filtros, retransmissão, sincronização, pontes e entrega
│ ├── models/ Guild, MensagemGlobal, Ponte e outros
│ ├── handlers/ carregamento e execução de comandos
│ └── util/
└── test/
A política de privacidade está em PRIVACIDADE.md.
Distribuído sob a PolyForm Noncommercial 1.0.0.
Criado por xMqR · Apoiado financeiramente por Joao.

