package moon import ( "github.com/NicoNex/echotron/v3" "github.com/davecgh/go-spew/spew" ) // Telegram основная горутинка, реализующая бота. func Telegram(cfg MyConfig) { Tg = echotron.NewAPI(cfg.Token) for u := range echotron.PollingUpdatesOptions(cfg.Token, true, echotron.UpdateOptions{ AllowedUpdates: []echotron.UpdateType{ "message", "edited_message", "channel_post", "edited_channel_post", "message_reaction", "message_reaction_count", "inline_query", "chosen_inline_result", "callback_query", "poll", "poll_answer", "my_chat_member", "chat_member", "chat_join_request", "chat_boost", "removed_chat_boost", }, }) { telegramMsgParser(u) } } // telegramMsgParser parses events generated by echotron. func telegramMsgParser(msg *echotron.Update) { if msg.Message != nil && msg.Message.Text != "" { textMessage(msg) return } // ChatMember updated event. It goes to chatMemberUpdated.go. if msg.ChatMember != nil { if msg.ChatMember.NewChatMember.User != nil { newChatMember(msg) } return } // New members entered to chat. if msg.Message != nil && msg.Message.NewChatMembers != nil { newChatMembers(msg) return } // Chat member leaves chat. if msg.Message != nil && msg.Message.LeftChatMember != nil { leftChatMember(msg) return } if msg.Message != nil && msg.Message.Animation != nil { animation(msg) return } Log.Debug(spew.Sdump(msg)) } /* vim: set ft=go noet ai ts=4 sw=4 sts=4: */