Advertisement
WheatleyHDD

Untitled

Dec 21st, 2020
1,398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.61 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "log"
  5.     //"strconv"
  6.     s "strings"
  7.    
  8.     "github.com/SevereCloud/vksdk/api"
  9.     longpoll "github.com/SevereCloud/vksdk/longpoll-user"
  10.     wrapper "github.com/SevereCloud/vksdk/longpoll-user/v3"
  11. )
  12.  
  13. var (
  14.     appeal string = "?"
  15.    
  16.     BotID int
  17. )
  18.  
  19. func main() {
  20.     vk := api.NewVK("")
  21.    
  22.     users, err := vk.UsersGet(api.Params{})
  23.     if err != nil {
  24.         log.Fatal(err)
  25.     }
  26.     BotID = users[0].ID
  27.  
  28.     log.Printf("Инициализация бота с ID %v\n", BotID)
  29.    
  30.     lp, err := longpoll.NewLongpoll(vk, 3)
  31.     if err != nil {
  32.         log.Fatal(err)
  33.     }
  34.    
  35.     w := wrapper.NewWrapper(lp)
  36.  
  37.     w.OnNewMessage(func(m wrapper.NewMessage) {
  38.         mess, err := vk.MessagesGetByIDExtended(api.Params{
  39.             "message_ids": m.MessageID,
  40.         })
  41.         if err != nil {
  42.             log.Fatal(err)
  43.         }
  44.        
  45.         if BotID == mess.Items[0].FromID {
  46.             if s.HasPrefix(s.ToLower(m.Text), s.ToLower(appeal)) {
  47.                 command := s.Replace(m.Text, "?", "", 1)
  48.                 log.Printf(command)
  49.                 if command == "пинг" {
  50.                     vk.MessagesEdit(api.Params{
  51.                         "message_id": m.MessageID,
  52.                         "peer_id": m.PeerID,
  53.                         "message": "ПОНГ!",
  54.                     })
  55.                 }
  56.             }
  57.         }
  58.     })
  59.  
  60.     if err := lp.Run(); err != nil {
  61.         log.Fatal(err)
  62.     }
  63.    
  64.     // Безопасное завершение
  65.     // Ждет пока соединение закроется и события обработаются
  66.     lp.Shutdown()
  67.    
  68.     // Закрыть соединение
  69.     // Требует lp.Client.Transport = &http.Transport{DisableKeepAlives: true}
  70.     lp.Client.CloseIdleConnections()
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement