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
}
func handleMessage(message *tgbotapi.Message) {
+ lastMsg = message
+
user := message.From
text := message.Text
+ if text == "" {
+ text = message.Caption
+ }
+
if user == nil {
return
}
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. 🤣")
}
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 = "📺 <b>" + getFirstLine(getTextAfterDash(text)) + "</b>\n"
+
+ case regexMovie.MatchString(text):
+ response = "🎥 <b>" + getFirstLine(getTextAfterDash(text)) + "</b>\n"
+ }
+
+ switch {
+ case regexAvailable.MatchString(text):
+ response += "pedida por <b>" + getRequestedBy(text) + "</b>\n\n🎉 Ya disponible!"
+
+ case regexNew.MatchString(text):
+ response += "pedida para añadir por <b>" + getRequestedBy(text) + "</b>\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