A golang sdk for guild bot

botgo

a golang sdk for guild bot

设计模式

分为三个主要模块

  • openapi 用于请求 http 的 openapi
  • websocket 用于监听事件网关,接收事件消息
  • oauth 用于处理 oauth 的 token 获取

openapi 接口定义:openapi/iface.go,同时 sdk 中提供了 v1 的实现,后续 openapi 有新版本的时候,可以增加对应新版本的实现。 websocket 接口定义:websocket/iface.go,sdk 实现了默认版本的 client,如果开发者有更好的实现,也可以进行替换

使用

1.请求 openapi

func main() {
	token := token.BotToken(conf.AppID, conf.Token)
	api := botgo.NewOpenAPI(token).WithTimeout(3 * time.Second)
	ctx := context.Background()
	
	ws, err := api.WS(ctx, nil, "")
	log.Printf("%+v, err:%v", ws, err)
    
	me, err := api.Me(ctx, nil, "")
    log.Printf("%+v, err:%v", me, err)
}

2.请求 websocket

func main() {
    token := token.BotToken(conf.AppID, conf.Token)
    api := botgo.NewOpenAPI(token).WithTimeout(3 * time.Second)
    ctx := context.Background()
    ws, err := api.WS(ctx, nil, "")
    if err != nil {
        log.Printf("%+v, err:%v", ws, err)
    }

    // 监听哪类事件就需要实现哪类的 handler,定义:websocket/event_handler.go
    var atMessage websocket.ATMessageEventHandler = func(event *dto.WSMsg, data *dto.WSATMessageData) error {
        fmt.Println(event, data)
        return nil
    }
    intent := websocket.RegisterHandlers(atMessage)
    // 启动 session manager 进行 ws 连接的管理,如果接口返回需要启动多个 shard 的连接,这里也会自动启动多个
    botgo.Session.Start(ws, token, &intent)
}

3.请求 oauth

待补充

4. session manager

接口定义:session_manager.go

sdk 实现了 localSession 主要是在单机上启动多个 shard 的连接,在实际生产中,如果需要启动多个 shard,那么有可能会采用分布式的管理方法,那么 就需要开发者自己实现一个分布式的 session manager 来进行连接管理。

SDK 增加新接口or新事件开发说明

1. 如何增加新的 openapi 接口调用方法(预计耗时3min)

  • Step1: dto 中增加对应的对象
  • Step2: openapi 的接口定义中,增加新方法的定义
  • Step3:在 openapi 的实现中,实现这个新的方法

2. 如何增加新的 websocket 事件(预计耗时10min)

  • Step1: dto 中增加对应的对象 dto/websocket_payload.go
  • Step2: 新增 intent,以及事件对应的 intent(如果有)dto/intents.go
  • Step3: 新增事件类型与 intent 的关系 dto/websocket_event.go
  • Step4: 新增 event handler 类型,并在注册方法中补充断言,websocket/event_handler.go
  • Step5:websocket 的具体实现中,针对收到的 message 进行解析,判断 type 是否符合新添加的时间类型,解析为 dto 之后,调用对应的 handler websocket/client/event.go
Comments
  • QQ开发平台的问题,注册期间中途退出导致邮箱无法再次注册

    QQ开发平台的问题,注册期间中途退出导致邮箱无法再次注册

    虽然说这个不是QQ开发平台的repo,但是这是能找到最近的地方了。腾讯客服一直都是Bot,没卵用,也没有对应开发平台的选项。如果知道有什么地方可以反馈,欢迎告诉我。

    复现流程:

    1. 前往 https://bot.q.qq.com/open/#/bot/register?type=1 注册个人账户
    2. 到 绑定管理员 步骤退出
    3. 再次使用相同邮箱注册
    4. 将显示该邮箱已被占用,请更换邮箱
    5. 这时候前往使用该邮箱登陆,会出现读数据库失败的错误

    可能原因:

    写这个网页的人大概是注册到一半就写入数据库了,登陆也没有错误处理,导致如果后面步骤没做完就会有数据库错误

  • [BUG] 获取频道成员列表API功能异常

    [BUG] 获取频道成员列表API功能异常

    /guilds/{guild_id}/members?limit={limit}&after={after} 接口文档写的是可以分片1-1000,实际测试的时候发现: 一、当limit超过500就会随机出现“101”或者"11300"错误反馈。 二、如果分片数刚好与频道成员数相等,请求下一页的时候接口会反馈服务器超出负载的错误。 三、当分片数低于500,第一页能获取分片数量的成员数据,第二页就只能获得18个数据,然后就没有更多的数据可以拉取了。

    前面三张图显示分片数500-1000,接口会返回错误: image image image 下面一张图显示分片数与频道成员数刚好相同时,请求下一页就会出错: (毕竟没法判断是否还有下一页,这种情况期望返回空数组,也就是0成员) image 下面四张张图显示分片数500-100,接口会填充满第一页数据,第二页仅填充18条: image image image image

  • parseAndHandle failed, The operation completed successfully.

    parseAndHandle failed, The operation completed successfully.

    16:12:55 [Error]:[ws][ID:a2ef19e8-535d-4a99-aae6-1a1f5776b4f0][Shard:(0/1)][Intent:1073741824] parseAndHandle failed, The operation completed successfully.文件:client.go,行:132
    

    image image image

    因为什么?

  • 样例中websocket的疑问

    样例中websocket的疑问

    问题

    我在实现第二个样例时

    func main() {
        token := token.BotToken(conf.AppID, conf.Token)
        api := botgo.NewOpenAPI(token).WithTimeout(3 * time.Second)
        ctx := context.Background()
        ws, err := api.WS(ctx, nil, "")
        if err != nil {
            log.Printf("%+v, err:%v", ws, err)
        }
    
        // 监听哪类事件就需要实现哪类的 handler,定义:websocket/event_handler.go
        var atMessage websocket.ATMessageEventHandler = func(event *dto.WSPayload, data *dto.WSATMessageData) error {
            fmt.Println(event, data)
            return nil
        }
        intent := websocket.RegisterHandlers(atMessage)
        // 启动 session manager 进行 ws 连接的管理,如果接口返回需要启动多个 shard 的连接,这里也会自动启动多个
        botgo.NewSessionManager().Start(ws, token, &intent)
    }
    

    其中的

    // 监听哪类事件就需要实现哪类的 handler,定义:websocket/event_handler.go
        var atMessage websocket.ATMessageEventHandler = func(event *dto.WSPayload, data *dto.WSATMessageData) error {
            fmt.Println(event, data)
            return nil
        }
    

    这个websocket下面未定义ATMessageEventHandler, 或者说websocket/event_handler.go是否需要自己在创建。

    我的解决方法

    // 监听哪类事件就需要实现哪类的 handler,定义:websocket/event_handler.go
    	var atMessage event.ATMessageEventHandler = func(event *dto.WSPayload, data *dto.WSATMessageData) error {
    		fmt.Println(event, data)
    		return nil
    	}
    

    我将其中的websocket改成了event,不知道是否是正确的。

  • [BUG]获取指定消息接口错误

    [BUG]获取指定消息接口错误

    GET /channels/{channel_id}/messages/{message_id} 经调试,接口实际上返回的数据是以下结构体序列化后的数据

    type Message struct {
    	Message dto.Message `json:"message"`
    }
    

    因此以下接口实现函数返回的指针*dto.Message所指向的结构体不携带任何数据

    // github.com/tencent-connect/botgo/openapi/v1/message.go
    func (o *openAPI) Message(ctx context.Context, channelID string, messageID string) (*dto.Message, error) {
    	resp, err := o.request(ctx).
    		SetResult(dto.Message{}).
    		SetPathParam("channel_id", channelID).
    		SetPathParam("message_id", messageID).
    		Get(o.getURL(messageURI))
    	if err != nil {
    		return nil, err
    	}
    
    	return resp.Result().(*dto.Message), nil
    }
    
  • Graceful Shutdown

    Graceful Shutdown

    Please consider support graceful shutdown of the remote SessionManager meaning: provide a function to Shutdown the connections And clear the distributed locks held by the current instance. So the services can be restarted immediately by other server instances, and no need to wait for the locks to expire.

  • Race condition

    Race condition

    func InitQQBot() (err error) {
    
    	botgo.SetSessionManager(
    		remote.New(
    			GetRedisConn(),
    			remote.WithClusterKey(Settings.QQBotManagerKey),
    		),
    	)
    	
    	botgo.SetLogger(Logger)
    
    	token := botoken.BotToken(uint64(Settings.QQBotAppId), Settings.QQBotAppToken)
    	api := botgo.NewOpenAPI(token).WithTimeout(3 * time.Second)
    	ctx := context.Background()
    	ws, err := api.WS(ctx, nil, "")
    	if err != nil {
    		return err
    	}
    
    	intent := botws.RegisterHandlers(HandleAtMessage)
    
    	ws.Shards = 10
    	manager := botgo.NewSessionManager()
    	err = manager.Start(ws, token, &intent)
    	if err != nil {
    		return err
    	}
    
    	return err
    }
    
    
    ==================
    WARNING: DATA RACE
    Read at 0x00c00095c5a0 by goroutine 88:
      github.com/tencent-connect/botgo/dto.(*Session).String()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/dto/websocket.go:43 +0x64
      fmt.(*pp).handleMethods()
          /usr/local/go/src/fmt/print.go:626 +0x6cf
      fmt.(*pp).printArg()
          /usr/local/go/src/fmt/print.go:709 +0xca9
      fmt.(*pp).doPrintf()
          /usr/local/go/src/fmt/print.go:1026 +0x46f
      fmt.Sprintf()
          /usr/local/go/src/fmt/print.go:219 +0x67
      src.ProjectOne.com/ProjectServer/record.DEBUGF()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/record/record.go:96 +0x54
      src.ProjectOne.com/ProjectServer/qqbot.BotLogger.Debugf()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/logger.go:25 +0x76
      src.ProjectOne.com/ProjectServer/qqbot.(*BotLogger).Debugf()
          <autogenerated>:1 +0x42
      github.com/tencent-connect/botgo/log.Debugf()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/log/log.go:29 +0x451
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:108 +0x392
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).newConnect()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:160 +0x6c1
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x9c
    
    Previous write at 0x00c00095c5a0 by goroutine 95:
      github.com/tencent-connect/botgo/websocket/client.(*Client).readyHandler()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:269 +0x332
      github.com/tencent-connect/botgo/websocket/client.(*Client).listenMessageAndHandle()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:217 +0x41d
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:76 +0x39
    
    Goroutine 88 (running) created at:
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x94c
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).Start()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:89 +0xa66
      src.ProjectOne.com/ProjectServer/qqbot.InitQQBot()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/basic.go:49 +0x4a6
      src.ProjectOne.com/ProjectServer/qqbot.Init.func1()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/qqbot.go:16 +0x5d
    
    Goroutine 95 (running) created at:
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:76 +0x19c
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).newConnect()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:160 +0x6c1
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x9c
    ==================
    ==================
    WARNING: DATA RACE
    Read at 0x00c00095c5f4 by goroutine 88:
      github.com/tencent-connect/botgo/dto.(*Session).String()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/dto/websocket.go:43 +0x9a
      fmt.(*pp).handleMethods()
          /usr/local/go/src/fmt/print.go:626 +0x6cf
      fmt.(*pp).printArg()
          /usr/local/go/src/fmt/print.go:709 +0xca9
      fmt.(*pp).doPrintf()
          /usr/local/go/src/fmt/print.go:1026 +0x46f
      fmt.Sprintf()
          /usr/local/go/src/fmt/print.go:219 +0x67
      src.ProjectOne.com/ProjectServer/record.DEBUGF()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/record/record.go:96 +0x54
      src.ProjectOne.com/ProjectServer/qqbot.BotLogger.Debugf()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/logger.go:25 +0x76
      src.ProjectOne.com/ProjectServer/qqbot.(*BotLogger).Debugf()
          <autogenerated>:1 +0x42
      github.com/tencent-connect/botgo/log.Debugf()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/log/log.go:29 +0x451
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:108 +0x392
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).newConnect()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:160 +0x6c1
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x9c
    
    Previous write at 0x00c00095c5f4 by goroutine 95:
      github.com/tencent-connect/botgo/websocket/client.(*Client).readyHandler()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:270 +0x3d0
      github.com/tencent-connect/botgo/websocket/client.(*Client).listenMessageAndHandle()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:217 +0x41d
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:76 +0x39
    
    Goroutine 88 (running) created at:
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x94c
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).Start()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:89 +0xa66
      src.ProjectOne.com/ProjectServer/qqbot.InitQQBot()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/basic.go:49 +0x4a6
      src.ProjectOne.com/ProjectServer/qqbot.Init.func1()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/qqbot.go:16 +0x5d
    
    Goroutine 95 (running) created at:
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:76 +0x19c
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).newConnect()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:160 +0x6c1
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x9c
    ==================
    ==================
    WARNING: DATA RACE
    Read at 0x00c00095c5f8 by goroutine 88:
      github.com/tencent-connect/botgo/dto.(*Session).String()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/dto/websocket.go:43 +0xcc
      fmt.(*pp).handleMethods()
          /usr/local/go/src/fmt/print.go:626 +0x6cf
      fmt.(*pp).printArg()
          /usr/local/go/src/fmt/print.go:709 +0xca9
      fmt.(*pp).doPrintf()
          /usr/local/go/src/fmt/print.go:1026 +0x46f
      fmt.Sprintf()
          /usr/local/go/src/fmt/print.go:219 +0x67
      src.ProjectOne.com/ProjectServer/record.DEBUGF()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/record/record.go:96 +0x54
      src.ProjectOne.com/ProjectServer/qqbot.BotLogger.Debugf()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/logger.go:25 +0x76
      src.ProjectOne.com/ProjectServer/qqbot.(*BotLogger).Debugf()
          <autogenerated>:1 +0x42
      github.com/tencent-connect/botgo/log.Debugf()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/log/log.go:29 +0x451
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:108 +0x392
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).newConnect()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:160 +0x6c1
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x9c
    
    Previous write at 0x00c00095c5f8 by goroutine 95:
      github.com/tencent-connect/botgo/websocket/client.(*Client).readyHandler()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:271 +0x44f
      github.com/tencent-connect/botgo/websocket/client.(*Client).listenMessageAndHandle()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:217 +0x41d
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:76 +0x39
    
    Goroutine 88 (running) created at:
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x94c
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).Start()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:89 +0xa66
      src.ProjectOne.com/ProjectServer/qqbot.InitQQBot()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/basic.go:49 +0x4a6
      src.ProjectOne.com/ProjectServer/qqbot.Init.func1()
          /mnt/d/Projects/ProjectOne/src/ProjectServer/qqbot/qqbot.go:16 +0x5d
    
    Goroutine 95 (running) created at:
      github.com/tencent-connect/botgo/websocket/client.(*Client).Listening()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/websocket/client/client.go:76 +0x19c
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).newConnect()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:160 +0x6c1
      github.com/tencent-connect/botgo/sessions/remote.(*RedisManager).consume·dwrap·3()
          /home/LeaderOne/go/pkg/mod/github.com/tencent-connect/[email protected]/sessions/remote/remote.go:116 +0x9c
    ==================
    
  • [事件] AT_MESSAGE_CREATE 和 MESSAGE_CREATE 信息准确性需求

    [事件] AT_MESSAGE_CREATE 和 MESSAGE_CREATE 信息准确性需求

    想要的能力是

    AT_MESSAGE_CREATEMESSAGE_CREATE 事件, 推送的 Message 对象能传递完整的Member信息和User信息

    基于想要的能力,能够实现的是

    通过Menber.NickUser.UserName给与用户更好的交互体验, 现在的情况是,返回的Member对象没有填充Nick字段,而是用Nick填充了User.UserName字段,导致UserName字段的意义不明确.

    如果未提供该能力,造成的影响是

    再次调用/guilds/{guild_id}/members/{user_id}接口获取完整的Member信息, 导致API的重复调用,增加服务端压力,拖慢机器人对用户的交互响应.

Related tags
Bot-template - A simple bot template for creating a bot which includes a config, postgresql database

bot-template This is a simple bot template for creating a bot which includes a c

Sep 9, 2022
A bot based on Telegram Bot API written in Golang allows users to download public Instagram photos, videos, and albums without receiving the user's credentials.

InstagramRobot InstagramRobot is a bot based on Telegram Bot API written in Golang that allows users to download public Instagram photos, videos, and

Dec 16, 2021
Discord-bot - A Discord bot with golang

JS discord bots Install Clone repo git clone https://github.com/fu-js/discord-bo

Aug 2, 2022
Feline-bot - Feline Bot for Discord using Golang

Feline Bot for Discord Development This bot is implemented using Golang. Feature

Feb 10, 2022
Official Go Keybase chat bot SDK

go-keybase-chat-bot Write rich bots for Keybase chat in Go. Installation Make sure to install Keybase. go get -u github.com/keybase/go-keybase-chat-bo

Nov 13, 2022
Dlercloud-telegram-bot - A Telegram bot for managing your Dler Cloud account

Dler Cloud Telegram Bot A Telegram bot for managing your Dler Cloud account. Usa

Dec 30, 2021
Quote-bot - Un bot utilisant l'API Twitter pour tweeter une citation par jour sur la programmation et les mathématiques.

Description Ceci est un simple bot programmé en Golang qui tweet une citation sur la programmation tout les jours. Ce bot est host sur le compte Twitt

Jan 1, 2022
Bot - Telegram Music Bot in Go

Telegram Music Bot in Go An example bot using gotgcalls. Setup Install the serve

Jun 28, 2022
Pro-bot - A telegram bot to play around with the community telegram channels

pro-bot ?? Pro Bot A Telegram Bot to Play Around With The Community Telegram Cha

Jan 24, 2022
Slack-emoji-bot - This Slack bot will post the newly created custom Slack emojis to the channel of your choice

Slack Emoji Bot This Slack bot will post the newly created custom Slack emojis t

Oct 21, 2022
Sex-bot - The sex bot and its uncreative responses
Sex-bot - The sex bot and its uncreative responses

Sex Bot The sex bot, made with golang! The sex bot can't hear the word "sexo" he

Nov 11, 2022
Golang telegram bot API wrapper, session-based router and middleware

go-tgbot Pure Golang telegram bot API wrapper generated from swagger definition, session-based routing and middlewares. Usage benefits No need to lear

Nov 16, 2022
A golang implementation of a console-based trading bot for cryptocurrency exchanges
A golang implementation of a console-based trading bot for cryptocurrency exchanges

Golang Crypto Trading Bot A golang implementation of a console-based trading bot for cryptocurrency exchanges. Usage Download a release or directly bu

Dec 30, 2022
Golang bindings for the Telegram Bot API

Golang bindings for the Telegram Bot API All methods are fairly self explanatory, and reading the godoc page should explain everything. If something i

Jan 6, 2023
Golang Based Account Generator Telegram Bot

Account Generator Bot Account Generator Bot, written in GoLang via gotgbot library. Variables Env Vars - BOT_TOKEN - Get it from @BotFather CHANNEL_ID

Nov 21, 2022
its the same idea as bruh-bot, but with golang, and add more bots
its the same idea as bruh-bot, but with golang, and add more bots

bruh-bot but more powerful! requirements python go you can used on mac and linux the idea its really simple, can make a lot of bots with the same task

Jul 7, 2021
Library for working with golang telegram client + bot based on tdlib. This library was taken from the user Arman92 and changed for the current version of tdlib.

go-tdlib Golang Telegram TdLib JSON bindings Install To install, you need to run inside a docker container (it is given below) go get -u github.com/ka

Dec 2, 2022
Bot para o discord escrito em Golang durante o workshop ministrado na Codecon 2021

Codecon Bot Bot para o discord escrito em Golang durante o workshop ministrado na Codecon 2021 Primeiramente no arquivo main.go coloque o TOKEN do bot

Oct 4, 2021
Golang bot that connects to slack using Socketclient to read and write messages.
Golang bot that connects to slack using Socketclient to read and write messages.

?? (not)simple go project ?? Golang bot that connects to slack using Socketclient to read and write messages. ?? Use ?? @SquidBot : Mentions your name

Aug 23, 2022