From: Eduardo Date: Thu, 28 Mar 2024 02:36:16 +0000 (+0100) Subject: get request messages and format them to our likeing, wip, some TODOS left X-Git-Url: http://git.edufdez.es/?a=commitdiff_plain;h=467b1fe8fc4aae4261606a03c6a1bd1cd2571c92;p=sylphiette-bot.git get request messages and format them to our likeing, wip, some TODOS left --- diff --git a/bot.go b/bot.go index d4b4292..88e50c3 100644 --- a/bot.go +++ b/bot.go @@ -29,8 +29,10 @@ var ( telegram *tgbotapi.BotAPI - // bot msg + // bot msg, the one it edits botMsg *tgbotapi.Message + // last message received + lastMsg *tgbotapi.Message // bot text message botText string = InitBotText @@ -129,9 +131,15 @@ func handleUpdate(update tgbotapi.Update) { } func handleMessage(message *tgbotapi.Message) { + lastMsg = message + user := message.From text := message.Text + if text == "" { + text = message.Caption + } + if user == nil { return } @@ -173,11 +181,20 @@ func handleConversation(chatId int64, text string) error { var err error text = strings.ToLower(text) - switch text { - case "hola", - "hola sylph": + var regexIssue = regexp.MustCompile(`(?i)\bIssue\b`) + var regexRequest = regexp.MustCompile(`(?i)\bRequest\b`) + + switch { + case text == "hola", + text == "hola sylph": err = sendTelegramMessage(chatId, "Hola!") + case regexIssue.MatchString(text): + err = manageIssueMessage(chatId, text) + + case regexRequest.MatchString(text): + err = manageSerieRequest(chatId, text) + default: err = sendTelegramMessage(chatId, "Jej. No entiendi. 🤣") } @@ -185,6 +202,50 @@ func handleConversation(chatId int64, text string) error { return err } +func manageIssueMessage(chatId int64, text string) error { + var err error + + // issue can be: comment, resolved, reported + // issues can be type: video, audio, subtitle + + //TODO: manage issues + + return err +} + +func manageSerieRequest(chatId int64, text string) error { + var err error + var response string = "" + + // request can be: new, available + // request can be type: series, movie + var regexNew = regexp.MustCompile(`(?i)\bNew\b`) + var regexAvailable = regexp.MustCompile(`(?i)\bAvailable\b`) + var regexSeries = regexp.MustCompile(`(?i)\bSeries\b`) + var regexMovie = regexp.MustCompile(`(?i)\bMovie\b`) + + switch { + case regexSeries.MatchString(text): + // get from text whatever is after the first - and the end of the line + response = "📺 " + getFirstLine(getTextAfterDash(text)) + "\n" + + case regexMovie.MatchString(text): + response = "🎥 " + getFirstLine(getTextAfterDash(text)) + "\n" + } + + switch { + case regexAvailable.MatchString(text): + response += "pedida por " + getRequestedBy(text) + "\n\n🎉 Ya disponible!" + + case regexNew.MatchString(text): + response += "pedida para añadir por " + getRequestedBy(text) + "\n\n(en cola)" + } + + // TODO: remove sent message to replace with ours? + err = sendTelegramPhoto(chatId, lastMsg.Photo[0].FileID, response) + return err +} + func sendMenu(chatId int64) error { msg := tgbotapi.NewMessage(chatId, botText) msg.ParseMode = tgbotapi.ModeHTML