@@ -125,9 +125,13 @@ func (m *MessengerBot) GetInfoStart(update tgbotapi.Update) {
125125 case err == nil && time .Now ().After (expirationTime ):
126126 // Если ключ истёк
127127 respMessage =
128- "⚠️ *Доступ заблокирован* \n \n " +
129- "❌ *Ваш ключ истёк!* \n \n " +
130- "🔄 *Продлите подписку, чтобы продолжить пользоваться сервисом.*"
128+ "⚠️ *К сожалению, доступ временно заблокирован.* \n \n " +
129+ "❌ *Ваш ключ истёк, и вы больше не можете пользоваться сервисом.* \n \n " +
130+ "💡 *Что делать дальше?*\n " +
131+ "🔹 Нажмите на «Продлить».\n " +
132+ "🔹 Выберите подходящий тариф и оплатите его.\n " +
133+ "🔹 Наслаждайтесь безопасным и быстрым интернетом снова! 🚀\n \n " +
134+ "🔄 *Продлите подписку прямо сейчас и вернитесь в сеть!*"
131135
132136 case err == nil :
133137 // Если всё в порядке
@@ -448,13 +452,13 @@ func (m *MessengerBot) ManageUserDataAfterPayment(value, userTgID string) {
448452 return
449453 }
450454
451- expirationDate := expiresAt .Format ("02.01.2006 15:04" )
455+ expirationDate := newExpiration .Format ("02.01.2006 15:04" )
452456
453457 // Формируем сообщение для пользователя о новом сроке действия
454458 text := fmt .Sprintf (
455459 "🎉 *Ваш ключ успешно продлён!* 🎉\n \n " +
456460 "📅 *Ключ действителен до: * `%s`.\n \n " +
457- "Спасибо, что остаетесь с нами!" +
461+ "Спасибо, что остаетесь с нами!\n " +
458462 "Мы ценим вашу поддержку! 😊" ,
459463 expirationDate ,
460464 )
@@ -485,7 +489,7 @@ func (m *MessengerBot) AddReferralSubscriptionDays(userID string, expirationTime
485489
486490 // Получаем реферала пользователя
487491 referralUserID , err := m .repo .GetUserReferral (intUserID )
488- if errors . Is ( err , sql . ErrNoRows ) {
492+ if err != nil || referralUserID == 0 {
489493 // Если реферала нет, просто выходим
490494 return
491495 }
@@ -709,10 +713,20 @@ func (m *MessengerBot) GetConnectStrOrReferral(userTgID int64, referral bool) {
709713
710714 // Логируем успешную отправку ключа или реферальной ссылки
711715 if referral {
712- text = fmt .Sprintf ("🎉 *Ваша реферальная ссылка для приглашения:* \n ```%s```" , keyOrReferral )
716+ text = fmt .Sprintf ("🎉 *Ваша реферальная ссылка:* \n \n ```%s``` \n " +
717+ "💡 *Как это работает:*\n \n " +
718+ "🔹 Поделитесь ссылкой с друзьями.\n " +
719+ "🔹 За *каждый купленный месяц подписки* вашим рефералом вы получаете *+4 бесплатных дня* к своей подписке!\n " +
720+ "🔹 Чем больше друзей пригласите, тем больше бесплатных дней получите. 🚀\n \n " +
721+ "✨ *Спасибо, что пользуетесь Keeper VPN!*" , keyOrReferral )
713722 } else {
714723 // Если ключ найден, отправляем его пользователю
715- text = fmt .Sprintf ("🔑 *Ваш ключ доступа:* \n ```%s```" , keyOrReferral )
724+ text = fmt .Sprintf ("🔑 *Ваш ключ доступа:* \n \n ```%s``` \n " +
725+ "💡 *Как использовать ключ:*\n \n " +
726+ "🔹 Установите приложение *Outline*.\n " +
727+ "🔹 Скопируйте ключ и вставьте его в приложение.\n " +
728+ "🔹 Наслаждайтесь безопасным и быстрым интернетом! 🚀\n \n " +
729+ "✨ *Спасибо, что пользуетесь Keeper VPN!*" , keyOrReferral )
716730 }
717731
718732 // Создаем сообщение и устанавливаем ParseMode
@@ -785,12 +799,16 @@ func (m *MessengerBot) SetLimitForExpiredKeys() {
785799 for {
786800 select {
787801 case <- ticker .C :
802+ slog .Info ("Старт проверки истёкших ключей" )
803+
788804 // Идем в базу и вытаскиваем key_id_outline для всех просроченных ключей
789805 expiredKeysID , err := m .repo .GetExpirationTimeKeysID ()
790806 if err != nil {
791807 continue
792808 }
793809
810+ slog .Info (fmt .Sprintf ("Найдено %v протухших ключей" , len (expiredKeysID )))
811+
794812 // Параллельно делаем HTTP-запросы к Outline Manager и ставим лимиты
795813 var wg sync.WaitGroup
796814 for _ , keyID := range expiredKeysID {
0 commit comments