Release test versions of telegram bot and AutomatizationCore
This commit is contained in:
126
telegram-bot/telegram-bot.go
Normal file
126
telegram-bot/telegram-bot.go
Normal file
@@ -0,0 +1,126 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
plex "nikozavr.ru/plexautomatization/grpc"
|
||||
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
grpc "google.golang.org/grpc"
|
||||
)
|
||||
|
||||
const (
|
||||
address = "localhost:5000"
|
||||
defaultName = "world"
|
||||
)
|
||||
|
||||
func main() {
|
||||
conn, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock())
|
||||
if err != nil {
|
||||
log.Fatalf("did not connect: %v", err)
|
||||
}
|
||||
defer conn.Close()
|
||||
c := plex.NewAutomatizatorClient(conn)
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||
|
||||
defer cancel()
|
||||
|
||||
r, err := c.AddRequest(ctx, &plex.RequestInfo{UserId: 213})
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("could not exec: %v", err)
|
||||
}
|
||||
|
||||
log.Printf("Result: %v", r.Message)
|
||||
|
||||
bot, err := tgbotapi.NewBotAPI("1518526346:AAEA5BpB3iZRsiBSYJZBnWBiOqeWrFT59rg")
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
bot.Debug = true
|
||||
|
||||
log.Printf("Authorized on account %s", bot.Self.UserName)
|
||||
|
||||
u := tgbotapi.NewUpdate(0)
|
||||
u.Timeout = 60
|
||||
|
||||
userLists := make(map[int][]string)
|
||||
processingList := make(map[int]bool)
|
||||
|
||||
updates, err := bot.GetUpdatesChan(u)
|
||||
|
||||
for update := range updates {
|
||||
if update.Message == nil { // ignore any non-Message Updates
|
||||
continue
|
||||
}
|
||||
|
||||
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
|
||||
log.Println(userLists)
|
||||
|
||||
processing, ok := processingList[update.Message.From.ID]
|
||||
|
||||
if !ok {
|
||||
processingList[update.Message.From.ID] = false
|
||||
processing = false
|
||||
}
|
||||
|
||||
if processing {
|
||||
list, ok := userLists[update.Message.From.ID]
|
||||
if !ok {
|
||||
userLists[update.Message.From.ID] = []string{update.Message.Text}
|
||||
} else {
|
||||
userLists[update.Message.From.ID] = append(list, update.Message.Text)
|
||||
}
|
||||
|
||||
processingList[update.Message.From.ID] = false
|
||||
msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Запрос добавлен")
|
||||
bot.Send(msg)
|
||||
continue
|
||||
}
|
||||
|
||||
if !update.Message.IsCommand() {
|
||||
sticker := tgbotapi.NewStickerShare(update.Message.Chat.ID, "CAACAgIAAxkBAAEBzqVgDFwGwth9LYIyjZKcbPyYjec95gACAgEAAladvQpO4myBy0Dk_x4E")
|
||||
bot.Send(sticker)
|
||||
|
||||
msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Не понимаю Вас( Попробуйте использовать команды.")
|
||||
bot.Send(msg)
|
||||
continue
|
||||
}
|
||||
|
||||
answer := tgbotapi.NewMessage(update.Message.Chat.ID, "")
|
||||
switch update.Message.Command() {
|
||||
case "add":
|
||||
trimmedCommandArguments := strings.TrimSpace(update.Message.CommandArguments())
|
||||
if trimmedCommandArguments == "" {
|
||||
processingList[update.Message.From.ID] = true
|
||||
answer.Text = "Введите название фильма или сериала, который вы хотели бы добавить в библиотеку Plex."
|
||||
} else {
|
||||
list, ok := userLists[update.Message.From.ID]
|
||||
if !ok {
|
||||
userLists[update.Message.From.ID] = []string{trimmedCommandArguments}
|
||||
} else {
|
||||
userLists[update.Message.From.ID] = append(list, trimmedCommandArguments)
|
||||
}
|
||||
answer.Text = "Запрос добавлен"
|
||||
}
|
||||
case "list":
|
||||
list, ok := userLists[update.Message.From.ID]
|
||||
if !ok || len(list) == 0 {
|
||||
answer.Text = "Список пуст"
|
||||
} else {
|
||||
answer.Text = "Список запросов:\n" + strings.Join(list, "\n")
|
||||
}
|
||||
default:
|
||||
answer.Text = "Команда не распознана. Попробуйте ещё раз."
|
||||
}
|
||||
|
||||
if _, err := bot.Send(answer); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user