Skip to content

Commit c96ae18

Browse files
committed
LinkPreview added to .env, added link to bot
1 parent 3929eeb commit c96ae18

File tree

6 files changed

+45
-23
lines changed

6 files changed

+45
-23
lines changed

.env

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
LINK_PREVIEW=true
2+
ID_INSTANCE=
3+
AUTH_TOKEN=

README_RU.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
```
2727
Для корректной работы, ответом на введеный запрос должна быть версия Go не ниже:
2828
```
29-
go version go 1.19
29+
go version go 1.20
3030
```
3131

3232
Скачайте и разархивируйте [zip-архив](https://github.com/green-api/whatsapp-demo-chatbot-golang) проекта или клонируйте его командой системы контроля версий:

main.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,25 @@ import (
1111
func main() {
1212
idInstance := "{idInstance}"
1313
authToken := "{authToken}"
14-
envFile, err := godotenv.Read("instance.env")
14+
envFile, err := godotenv.Read(".env")
1515
if err == nil {
16-
if val, exists := envFile["idInstance"]; exists && len(val) > 0 {
16+
if val, exists := envFile["ID_INSTANCE"]; exists && len(val) > 0 {
1717
idInstance = val
1818
}
19-
if val, exists := envFile["authToken"]; exists && len(val) > 0 {
19+
if val, exists := envFile["AUTH_TOKEN"]; exists && len(val) > 0 {
2020
authToken = val
2121
}
2222
}
2323
if idInstance == "{idInstance}" || authToken == "{authToken}" {
2424
log.Fatal("No idInstance or authToken set")
2525
}
26-
2726
bot := chatbot.NewBot(idInstance, authToken)
27+
28+
defer func() {
29+
if r := recover(); r != nil {
30+
log.Fatal("Whong idInstance or authToken used! Exiting chatbot.")
31+
}
32+
}()
2833

2934
go func() {
3035
for err := range bot.ErrorChannel {
@@ -33,7 +38,7 @@ func main() {
3338
}
3439
}
3540
}()
36-
41+
3742
_, err = bot.GreenAPI.Methods().Account().SetSettings(map[string]interface{}{
3843
"incomingWebhook": "yes",
3944
"outgoingMessageWebhook": "yes",

scenes/endpoints.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
2929

3030
switch text {
3131
case "1":
32-
message.SendText(util.GetString([]string{"send_text_message", lang})+util.GetString([]string{"links", lang, "send_text_documentation"}), "false")
32+
message.SendText(util.GetString([]string{"send_text_message", lang})+util.GetString([]string{"links", lang, "send_text_documentation"}), util.LinkPreview())
3333

3434
case "2":
3535
message.SendUrlFile(
@@ -44,7 +44,7 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
4444
util.GetString([]string{"send_image_message", lang})+util.GetString([]string{"links", lang, "send_file_documentation"}))
4545

4646
case "4":
47-
message.SendText(util.GetString([]string{"send_audio_message", lang})+util.GetString([]string{"links", lang, "send_file_documentation"}), "false")
47+
message.SendText(util.GetString([]string{"send_audio_message", lang})+util.GetString([]string{"links", lang, "send_file_documentation"}), util.LinkPreview())
4848
var fileLink = "https://storage.yandexcloud.net/sw-prod-03-test/ChatBot/Audio_bot_eng.mp3"
4949
if lang == "ru" {
5050
fileLink = "https://storage.yandexcloud.net/sw-prod-03-test/ChatBot/Audio_bot.mp3"
@@ -60,18 +60,18 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
6060
util.GetString([]string{"send_video_message", lang})+util.GetString([]string{"links", lang, "send_file_documentation"}))
6161

6262
case "6":
63-
message.SendText(util.GetString([]string{"send_contact_message", lang})+util.GetString([]string{"links", lang, "send_contact_documentation"}), "false")
63+
message.SendText(util.GetString([]string{"send_contact_message", lang})+util.GetString([]string{"links", lang, "send_contact_documentation"}), util.LinkPreview())
6464
message.SendContact(map[string]interface{}{"firstName": senderName, "phoneContact": strings.ReplaceAll(senderId, "@c.us", "")})
6565

6666
case "7":
67-
message.SendText(util.GetString([]string{"send_location_message", lang})+util.GetString([]string{"links", lang, "send_location_documentation"}), "false")
67+
message.SendText(util.GetString([]string{"send_location_message", lang})+util.GetString([]string{"links", lang, "send_location_documentation"}), util.LinkPreview())
6868
message.SendLocation("", "", 35.888171, 14.440230)
6969

7070
case "8":
7171
message.SendText(util.GetString([]string{"send_poll_message", lang})+
7272
util.GetString([]string{"links", lang, "send_poll_as_buttons"})+
7373
util.GetString([]string{"send_poll_message_1", lang})+
74-
util.GetString([]string{"links", lang, "send_poll_documentation"}), "false")
74+
util.GetString([]string{"links", lang, "send_poll_documentation"}), util.LinkPreview())
7575

7676
message.SendPoll(util.GetString([]string{"poll_question", lang}), false,
7777
[]map[string]interface{}{
@@ -81,7 +81,7 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
8181
})
8282

8383
case "9":
84-
message.SendText(util.GetString([]string{"get_avatar_message", lang})+util.GetString([]string{"links", lang, "get_avatar_documentation"}), "false")
84+
message.SendText(util.GetString([]string{"get_avatar_message", lang})+util.GetString([]string{"links", lang, "get_avatar_documentation"}), util.LinkPreview())
8585
avatar, _ := message.GreenAPI.Methods().Service().GetAvatar(senderId)
8686

8787
if avatar["urlAvatar"] != "" {
@@ -97,12 +97,12 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
9797
message.SendText(util.GetString([]string{"send_link_message_preview", lang}) + util.GetString([]string{"links", lang, "send_link_documentation"}))
9898
message.SendText(util.GetString([]string{"send_link_message_no_preview", lang})+util.GetString([]string{"links", lang, "send_link_documentation"}), "false")
9999
case "11":
100-
message.SendText(util.GetString([]string{"add_to_contact", lang}), "false")
100+
message.SendText(util.GetString([]string{"add_to_contact", lang}), util.LinkPreview())
101101
message.SendContact(map[string]interface{}{"firstName": util.GetString([]string{"bot_name", lang}), "phoneContact": strings.ReplaceAll(botNumber, "@c.us", "")})
102102
message.ActivateNextScene(CreateGroupScene{})
103103

104104
case "12":
105-
message.AnswerWithText(util.GetString([]string{"send_quoted_message", lang})+util.GetString([]string{"links", lang, "send_quoted_message_documentation"}), "false")
105+
message.AnswerWithText(util.GetString([]string{"send_quoted_message", lang})+util.GetString([]string{"links", lang, "send_quoted_message_documentation"}), util.LinkPreview())
106106

107107
case "13":
108108
message.SendUrlFile("https://raw.githubusercontent.com/green-api/whatsapp-demo-chatbot-golang/refs/heads/master/assets/about_go.jpg", "logo.jpg",
@@ -119,7 +119,7 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
119119
util.GetString([]string{"links", lang, "youtube_channel"}))
120120

121121
case "стоп", "Стоп", "stop", "Stop", "0":
122-
message.SendText(util.GetString([]string{"stop_message", lang})+"*"+senderName+"*!", "false")
122+
message.SendText(util.GetString([]string{"stop_message", lang})+"*"+senderName+"*!", util.LinkPreview())
123123
message.ActivateNextScene(StartScene{})
124124

125125
case "menu", "меню", "Menu", "Меню":
@@ -132,11 +132,11 @@ func (s EndpointsScene) Start(bot *chatbot.Bot) {
132132
message.SendUrlFile(welcomeFileURL, "welcome.jpg", util.GetString([]string{"menu", lang}))
133133
case "":
134134
default:
135-
message.SendText(util.GetString([]string{"not_recognized_message", lang}), "false")
135+
message.SendText(util.GetString([]string{"not_recognized_message", lang}),util.LinkPreview())
136136
}
137137
} else {
138138
message.ActivateNextScene(MainMenuScene{})
139-
message.SendText(util.GetString([]string{"select_language"}), "false")
139+
message.SendText(util.GetString([]string{"select_language"}), util.LinkPreview())
140140
}
141141
})
142142
}

strings.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ specify_language: "Please choose a language for further conversation\n*1* - Engl
33
please_use_text: "Please enter a text message for further conversation with bot\n"
44
welcome_message:
55
ru: "Добро пожаловать в GREEN API чат-бот, "
6-
en: "Welcome the to the GREEN API chatbot, "
6+
en: "Welcome to the GREEN API chatbot, "
77
he: "ברוכים הבאים לצ'אטבוט GREEN API, "
88
es: "Bienvenido al chatbot GREEN API, "
99
ar: ""
@@ -16,12 +16,12 @@ stop_message:
1616
ar: ""
1717
kz: "GREEN API чат-ботты пайдаланғаныңыз үшін рақмет, "
1818
menu:
19-
ru: "\nGREEN API предоставляет отправку данных следующих видов. \nВыберите цифру из списка, чтобы проверить как работает метод отправки!\n\n*1*. Текстовое сообщение 📩\n*2*. Файл 📋\n*3*. Картинка 🖼\n*4*. Аудио 🎵\n*5*. Видео 📽\n*6*. Контакт 📱\n*7*. Геолокация 🌎\n*8*. Опрос ✔\n*9*. Получить картинку моего аватара 👤\n*10*. Отправить ссылку 🔗\n*11*. Создать группу с ботом 👥\n*12*. Цитировать сообщение ©️\n*13*. О GOLANG GREEN API чат-боте 🦎\n\nЧтобы вернуться в начало напишите *стоп* или *0*"
20-
en: "\nGREEN API provides the following kinds of message services. \nType in a number to see how the corresponding method works!\n\n*1*. Text message 📩\n*2*. File 📋\n*3*. Image 🖼\n*4*. Audio 🎵\n*5*. Video 📽\n*6*. Contact 📱\n*7*. Location 🌎\n*8*. Poll ✔\n*9*. Get image of my avatar 👤\n*10*. Send link 🔗\n*11*. Create group with bot 👥\n*12*. Quote message ©️\n*13*. About GOLANG GREEN API chatbot 🦎\n\nTo restart the conversation type *stop* or *0*"
21-
he: "\nGREEN API מספק את סוגי שירותי ההודעות הבאים. הקלד מספר כדי לראות כיצד פועלת השיטה המתאימה!\n\n*1*. הודעת טקסט 📩\n*2*. קובץ 📋\n*3*. תמונה 🖼\n*4*. אודיו 🎵\n*5*. סרטון 📽\n*6*. צור קשר 📱\n*7*. מיקום 🌎\n*8*. סקר ✔\n*9*. קבל תמונה של הדמות שלי 👤\n*10*. שלח קישור 🔗\n*11*. צור קבוצה עם בוט 👥\n*12*. הודעת ציטוט ©️\n*13*. אודות GOLANG GREEN API צ'אט-בוט 🦎\n\nכדי להפעיל מחדש את השיחה הקלד *stop* או 0\n"
22-
es: "\nGREEN API proporciona los siguientes tipos de servicios de mensajes. \n¡Escriba un número para ver cómo funciona el método correspondiente!\n\n*1*. Mensaje de texto 📩\n*2*. Archivo 📋\n*3*. Imagen 🖼\n*4*. Audio 🎵\n*5*. Video 📽\n*6*. Contacto 📱\n*7*. Ubicación 🌎\n*8*. Encuesta ✔\n*9*. Obtener imagen de mi avatar 👤\n*10*. Enviar enlace 🔗\n*11*. Crear grupo con bot 👥\n*12*. Mensaje citado ©️\n*13*. Acerca de GOLANG GREEN API chatbot 🦎\n\nPara reiniciar la conversación escriba *stop* o *0*"
19+
ru: "\nGREEN API предоставляет отправку данных следующих видов. \nВыберите цифру из списка, чтобы проверить как работает метод отправки!\nИсходный код демо чат-бота: https://github.com/green-api/whatsapp-demo-chatbot-golang\n\n*1*. Текстовое сообщение 📩\n*2*. Файл 📋\n*3*. Картинка 🖼\n*4*. Аудио 🎵\n*5*. Видео 📽\n*6*. Контакт 📱\n*7*. Геолокация 🌎\n*8*. Опрос ✔\n*9*. Получить картинку моего аватара 👤\n*10*. Отправить ссылку 🔗\n*11*. Создать группу с ботом 👥\n*12*. Цитировать сообщение ©️\n*13*. О GOLANG GREEN API чат-боте 🦎\n\nЧтобы вернуться в начало напишите *стоп* или *0*"
20+
en: "\nGREEN API provides the following kinds of message services. \nType in a number to see how the corresponding method works!\nDemo chatbot source code: https://github.com/green-api/whatsapp-demo-chatbot-golang\n\n*1*. Text message 📩\n*2*. File 📋\n*3*. Image 🖼\n*4*. Audio 🎵\n*5*. Video 📽\n*6*. Contact 📱\n*7*. Location 🌎\n*8*. Poll ✔\n*9*. Get image of my avatar 👤\n*10*. Send link 🔗\n*11*. Create group with bot 👥\n*12*. Quote message ©️\n*13*. About GOLANG GREEN API chatbot 🦎\n\nTo restart the conversation type *stop* or *0*"
21+
he: "\nGREEN API מספק את סוגי שירותי ההודעות הבאים. הקלד מספר כדי לראות כיצד פועלת השיטה המתאימה!\nקוד המקור של הצ'אטבוט ההדגמה: https://github.com/green-api/whatsapp-demo-chatbot-golang\n\n*1*. הודעת טקסט 📩\n*2*. קובץ 📋\n*3*. תמונה 🖼\n*4*. אודיו 🎵\n*5*. סרטון 📽\n*6*. צור קשר 📱\n*7*. מיקום 🌎\n*8*. סקר ✔\n*9*. קבל תמונה של הדמות שלי 👤\n*10*. שלח קישור 🔗\n*11*. צור קבוצה עם בוט 👥\n*12*. הודעת ציטוט ©️\n*13*. אודות GOLANG GREEN API צ'אט-בוט 🦎\n\nכדי להפעיל מחדש את השיחה הקלד *stop* או 0\n"
22+
es: "\nGREEN API proporciona los siguientes tipos de servicios de mensajes. \n¡Escriba un número para ver cómo funciona el método correspondiente!\nCódigo fuente del chatbot de demostración: https://github.com/green-api/whatsapp-demo-chatbot-golang\n\n*1*. Mensaje de texto 📩\n*2*. Archivo 📋\n*3*. Imagen 🖼\n*4*. Audio 🎵\n*5*. Video 📽\n*6*. Contacto 📱\n*7*. Ubicación 🌎\n*8*. Encuesta ✔\n*9*. Obtener imagen de mi avatar 👤\n*10*. Enviar enlace 🔗\n*11*. Crear grupo con bot 👥\n*12*. Mensaje citado ©️\n*13*. Acerca de GOLANG GREEN API chatbot 🦎\n\nPara reiniciar la conversación escriba *stop* o *0*"
2323
ar: ""
24-
kz: "\nGREEN API келесі көрсетілген түрдегі деректерді жіберуді қамтамасыз етеді. \nЖіберу әдістерін тексеру үшін тізімнен сан таңдаңыз!\n\n*1*. Мәтінді хабарлама 📩\n*2*. Файл 📋\n*3*. Сурет 🖼\n*4*. Аудио 🎵\n*5*. Видео 📽\n*6*. Контакт 📱\n*7*. Геолокация 🌎\n*8*. Сауалнама ✔\n*9*. Менің аватарымның суретін алу 👤\n*10*. Сілтеме жіберу 🔗\n*11*. Ботпен топ құру 👥\n*12*. Хабарламаға дәйексөз келтіру ©️\n*13*. GOLANG GREEN API чат-боты туралы 🦎\n\n\n\nБасына оралу үшін *стоп* немеcе *0* деп жазыңыз"
24+
kz: "\nGREEN API келесі көрсетілген түрдегі деректерді жіберуді қамтамасыз етеді. \nЖіберу әдістерін тексеру үшін тізімнен сан таңдаңыз!\nДемо чатботтың бастапқы коды: https://github.com/green-api/whatsapp-demo-chatbot-golang\n\n*1*. Мәтінді хабарлама 📩\n*2*. Файл 📋\n*3*. Сурет 🖼\n*4*. Аудио 🎵\n*5*. Видео 📽\n*6*. Контакт 📱\n*7*. Геолокация 🌎\n*8*. Сауалнама ✔\n*9*. Менің аватарымның суретін алу 👤\n*10*. Сілтеме жіберу 🔗\n*11*. Ботпен топ құру 👥\n*12*. Хабарламаға дәйексөз келтіру ©️\n*13*. GOLANG GREEN API чат-боты туралы 🦎\n\n\n\nБасына оралу үшін *стоп* немеcе *0* деп жазыңыз"
2525
send_text_message:
2626
ru: "Это сообщение отправлено через метод *sendMessage*.\n\nЧтобы узнать как работает метод, пройдите по ссылке\n"
2727
en: "This message is sent via *sendMessage* method.\n\nIf you want to know how the method works, follow the link\n"

util/util.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package util
33
import (
44
chatbot "github.com/green-api/whatsapp-chatbot-golang"
55
"time"
6+
"strings"
7+
"github.com/joho/godotenv"
68
)
79

810
func ContainString(optionVotes []string, targetWid string) bool {
@@ -25,3 +27,15 @@ func IsSessionExpired(notification *chatbot.Notification) bool {
2527
notification.UpdateStateData(map[string]interface{}{"last_touch_timestamp": time.Now()})
2628
return false
2729
}
30+
31+
func LinkPreview() string {
32+
envFile, err := godotenv.Read(".env")
33+
if err == nil {
34+
if val, exists := envFile["LINK_PREVIEW"]; exists && len(val) > 0 {
35+
if strings.ToLower(val) == "false" {
36+
return "false"
37+
}
38+
}
39+
}
40+
return "true"
41+
}

0 commit comments

Comments
 (0)