# README
Pacote Botkit :robot:
Nova função
- GetFile:
Com path
:Pode passar um path onde o conteúdo do arquivo vai ser salvo
switch bot.Document.FileName{
case "cirador.jpg":
bot.GetFile("./storage")
}
Sem path
:O conteúdo do arquivo vai ser salvo no mesmo local da execução
switch bot.Document.FileName{
case "cirador.jpg":
bot.GetFile("./storage")
}
:warning: Alertar não pode se usar dentro do bot.Handler()
Parametro document
- Document:
Status bool
FileName string
MimeType string
FileID string
FileUniqueID string
FileSize int
Funções atuais
- Com parseMODE:
bot.SendButton("Bem-vindo ao menu", layout,"markdown")
bot.SendMessages("```go \n fmt.Println(O nome de usúario foi,bot.Text)```","markdown")
- Sem parseMODE:
bot.SendMessages("```go \n fmt.Println(O nome de usúario foi,bot.Text)```")
bot.SendButton("Bem-vindo ao menu", layout)
- SendMessages:
go func() {
bot.Handler("callback_query",func(event string) {
fmt.Println(bot.ChatID)
fmt.Println("tipo:callback_query(", event,")")
if event == "!cadastro" {
bot.SendMessages("Nome: \nSobre nome: \n idade: \n")
}
})
}()
- **ForceReply**:
```go
bot.SendDocument("./caminho", "descrição", "tipo")
- Tipos suportados:
pdf
zip
tar.gz
sql
txt
tar
json
- **SendButton**:
```go
go func() {
bot.Handler("commands",func(event string) {
fmt.Println("tipo:commands(",event,")")
if event == "/menu" {
layout := map[string]interface{}{
"inline_keyboard": [][]map[string]interface{}{
{
{"text": "Cadastrar", "callback_data": "!cadastro"},
{"text": "Sair", "callback_data": "!sair"},
},
},
}
bot.SendButton("Bem-vindo ao menu",layout)
}
})
}()
- ReplyToMessage:
go func() {
bot.Handler("callback_query",func(event string) {
fmt.Println(bot.ChatID)
fmt.Println("tipo:callback_query(", event,")")
if event == "!cadastro" {
bot.SendMessages("Nome: \nSobre nome: \n idade: \n")
}
if event == "!sair"{
bot.ReplyToMessage(bot.QueryMessageID, "Tem certeza ?\n")
layout := map[string]interface{}{
"inline_keyboard": [][]map[string]interface{}{
{
{"text": "Cancelar", "callback_data": "!cancelar"},
{"text": "Continuar", "callback_data": "!continuar"},
},
},
}
bot.SendButton("ainda não terminou o cadastro",layout)
}
})
}()
- SendPhoto:
go func() {
bot.Handler("commands",func(event string) {
fmt.Println("tipo:commands(",event,")")
if event == "/menu" {
layout := map[string]interface{}{
"inline_keyboard": [][]map[string]interface{}{
{
{"text": "Cadastrar", "callback_data": "!cadastro"},
{"text": "Sair", "callback_data": "!sair"},
},
},
}
bot.SendButton("Bem-vindo ao menu",layout)
} else if event == "/start" {
bot.SendPhoto("./boas-vinda.jpg","Olá sejá bem-vindo")
}
})
}()
- ReplyToPhotoButton:
go func() {
bot.Handler("commands",func(event string) {
fmt.Println("tipo:commands(",event,")")
if event == "/menu" {
layout := map[string]interface{}{
"inline_keyboard": [][]map[string]interface{}{
{
{"text": "Cadastrar", "callback_data": "!cadastro"},
{"text": "Sair", "callback_data": "!sair"},
},
},
}
bot.SendButton("Bem-vindo ao menu",layout)
} else if event == "/start" {
layout := map[string]interface{}{
"inline_keyboard": [][]map[string]interface{}{
{
{"text": "Suporte", "callback_data": "!suporte"},
{"text": "Painel", "callback_data": "!painel"},
},
},
}
bot.ReplyToPhotoButton("./boas-vinda.jpg",layout)
}
})
}()
- DeleteMessage:
go func() {
bot.Handler("messages", func(event string) {
fmt.Println("tipo:messages(", event, ")")
if event == "olá" {
bot.SendMessages("Olá tudo-bem")
} else if event == "stiker" {
bot.SendSticker("CAACAgIAAxkBAAIFD2XSt7jvTz70u4qx4tMdF8GG0jFPAALOBQAClvoSBSyTK1YenM2tNAQ")
for i := 0; i < 2; i++ {
bot.DeleteMessage(bot.MessageID - i)
}
}
})
}()
- KeyboardButton:
go func() {
bot.Handler("commands", func(event string) {
fmt.Println("tipo:commands(", event, ")")
if event == "/submenu" {
layout := map[string]interface{}{
"keyboard": [][]map[string]interface{}{
{
{"text": "Suporte"},
{"text": "Painel","callback_data": "!sair"},
},
},
"resize_keyboard": true,
"one_time_keyboard": true,
}
bot.KeyboardButton("Clique no botão ao lado esquerdo do emojii ", layout)
}
})
}()
- ForceReplyToMessage:
go func() {
bot.Handler("callback_query", func(event string) {
fmt.Println(bot.ChatID)
fmt.Println("tipo:callback_query(", event, ")")
if event == "!suporte" {
bot.ForceReplyToMessage(bot.QueryMessageID ,"Nome do usúario")
}
})
}()
go func() {
bot.Handler("commands", func(event string) {
fmt.Println("tipo:commands(", event, ")")
if event == "/FORCE"{
layout := map[string]interface{}{
"inline_keyboard": [][]map[string]interface{}{
{
{"text": "Suporte", "callback_data": "!suporte"},
{"text": "Painel", "callback_data": "!painel"},
},
},
}
bot.SendButton("Menu", layout)
}
})
}()
Pacote Botkit :robot:
Este pacote oferece funções para criação e interação com bots do Telegram.
Estrutura BotInit
:gear:
Esta estrutura é usada para inicializar e interagir com um bot do Telegram.
Campos:
Token
: Token de autenticação do bot.UpdateID
: ID da última atualização recebida.MessageID
: ID da última mensagem recebida.ChatID
: ID do chat atual.CallbackID
: ID do callback atual.Username
: Nome de usuário do bot.Text
: Texto da mensagem recebida.ReplyMessageText
:Para pegar um texto após um Reply ou ForceReplayCallbackQuery
: Query do callback.QueryMessageID
: ID da mensagem associada à query.ID
: ID do usuário ou do chat.
Funções Disponíveis:
GetUpdates
: Obtém as atualizações mais recentes do bot.
Como Usar :rocket:
-
Importe o pacote no seu código Go:
import "github.com/MTplusWebSystem/GoBotKit/botkit"
-
Utilize a estrutura
BotInit
para inicializar o bot e interagir com ele.
Exemplos de Uso :bulb:
package main
import (
"fmt"
"github.com/MTplusWebSystem/GoBotKit/botkit"
)
func main() {
bot := botkit.BotInit{
Token: "seu-token-aqui",
}
for {
if bot.ReceiveData(){
go func() {
bot.Handler("callback_query",func(event string) {
fmt.Println("tipo:callback_query(", event,")")
})
}()
go func() {
bot.Handler("commands",func(event string) {
fmt.Println("tipo:commands(",event,")")
})
}()
go func() {
bot.Handler("messages", func(event string) {
fmt.Println("tipo:messages(",event,")")
if event == "olá"{
bot.SendMessages("Olá tudo-bem")
}
})
}()
}
}
}
---Para utilizar as funcionalidades do pacote, você pode implementar um loop para receber as atualizações do bot e processá-las conforme necessário. Por exemplo:
// Exemplo de loop para processar atualizações do bot
for {
updates, err := bot.GetUpdates()
if err != nil {
fmt.Println("Erro ao obter atualizações:", err)
return
}
for _, update := range updates {
// Implemente aqui a lógica para processar cada atualização
}
}
Certifique-se de revisar a documentação para garantir que as instruções de uso estejam atualizadas com a implementação mais recente do pacote.
Pacote Requests :arrow_up:
Este pacote fornece funções para realizar requisições HTTP do tipo GET.
Funções Disponíveis
GET
:rocket:
Realiza uma requisição HTTP GET para o URL fornecido.
ReadBody
:book:
Lê o corpo da resposta de uma requisição HTTP GET.
POST
:rocket:
Realiza uma requisição HTTP POST para o URL fornecido.
POSTmultipart
:rocket:
Realiza uma requisição HTTP POST multipart para o URL fornecido.
Como Usar :rocket:
- Importe o pacote no seu código Go:
import "github.com/seu-usuario/seu-repositorio/requests"
Exemplos de Uso :bulb:
// Exemplo de utilização da função GET
response, err := requests.GET("https://exemplo.com/api/dados")
if err != nil {
fmt.Println("Erro na requisição GET:", err)
return
}
// Exemplo de utilização da função ReadBody
body := requests.ReadBody(response)
fmt.Println("Corpo da resposta:", string(body))
// Exemplo de utilização da função POST
params := map[string]interface{}{"nome": "exemplo", "idade": 30}
response, err := requests.POST("https://exemplo.com/api/dados", "application/json", params)
if err != nil {
fmt.Println("Erro na requisição POST:", err)
return
}
Pacote System :v0.1
Este pacote fornece uma coleção de funções úteis para diversas operações no sistema.
Funções Disponíveis
NilError
:warning:
Função para simplificar mensagens de erros e reduzir linhas de código.
Scan
:file_folder:
Realiza a leitura simples de arquivos.
Regex
:mag_right:
Fornece uma maneira simples de aplicar regex.
WriteJSON
:page_with_curl:
Permite a escrita de arquivos JSON.
Random
:game_die:
Gera valores aleatórios de acordo com os parâmetros fornecidos.
KeyGenerator
:key:
Gera chaves aleatórias para uso em sistemas de autenticação.
Como Usar :rocket:
- Importe o pacote no seu código Go:
import "github.com/MTplusWebSystem/GoBotKit/system"
Exemplo de uso
package main
import (
"fmt"
"github.com/MTplusWebSystem/GoBotKit/system"
)
func main() {
//Scan , tenha certeza de criar o arquivo antes
data := string(system.Scan("./arquivo.txt"))
fmt.Println(data)
//Regex, a expresão regular deve ser a primeira
resultado := system.Regex("[0-9]+", "texto123")
fmt.Println(resultado)
//WriteJSON, tenha certeza da relação entre o código onde está sendo executado e onde vai salvar
dados := map[string]interface{}{"nome": "Exemplo", "idade": 30}
err := system.WriteJSON("dados.json", dados)
system.NilError("Erro ao escrever arquivo JSON:", err)
//Ramdom, custom inicialmente é para valores maior que 9 exemplo: 10-300
aleatorio := system.Random("0-9", false)
fmt.Println(aleatorio)
//KeyGererator, está configurado para gerar key em divisivos de 2 exemplo: 2,4,6,8...
chave := system.KeyGenerator(4)
fmt.Println(chave)
}