@@ -34,11 +34,27 @@ func createTelegramKeyboard(URL string) tg.InlineKeyboardMarkup {
3434func createTelegramMessage (element entities.RssItem ) tg.MessageConfig {
3535
3636 feedTitle := retrieveFeedTitle (element .Feed )
37- tgMarkdownReservedChars := []string {"." , "-" , "(" , ")" , "#" , "!" , "|" }
3837
39- text := fmt .Sprintf ("*%s*\n \n %s" , feedTitle , element .Title )
38+ if feedTitle == "" {
39+ feedTitle = "New Feed!"
40+ }
41+
42+ tgMarkdownReservedChars := []string {"." , "-" , "(" , ")" , "#" , "!" , "|" , "[" , "]" , "_" , "*" , "`" , "~" }
43+
44+ var text string
45+
46+ // Pre-parsing our elements for markdown Reserved Chars
4047 for _ , char := range tgMarkdownReservedChars {
41- text = strings .ReplaceAll (text , char , fmt .Sprintf (`\%s` , char ))
48+ element .Title = strings .ReplaceAll (element .Title , char , fmt .Sprintf (`\%s` , char ))
49+ element .ImageURL = strings .ReplaceAll (element .ImageURL , char , fmt .Sprintf (`\%s` , char ))
50+ feedTitle = strings .ReplaceAll (feedTitle , char , fmt .Sprintf (`\%s` , char ))
51+ }
52+
53+ // Creating the message with pre-parsed items
54+ if element .ImageURL != "" {
55+ text = fmt .Sprintf ("📣 *%s*\n \n [➡️](%s) %s" , feedTitle , element .ImageURL , element .Title )
56+ } else {
57+ text = fmt .Sprintf ("📣 *%s*\n \n ➡️ %s" , feedTitle , element .Title )
4258 }
4359
4460 message := tg .NewMessage (telegramChatID , text )
0 commit comments