Release test versions of telegram bot and AutomatizationCore

This commit is contained in:
2021-02-04 00:40:23 +03:00
commit 62c9e6165e
19 changed files with 1187 additions and 0 deletions

View 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)
}
}
}