commit 626128673d198f19649d64328a6cef661b5c6219 Author: tgvpn Date: Thu May 21 00:25:44 2026 +0300 first commit diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..d5f6c83 --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +# Токен от @BotFather +BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz + +# true — подробные логи API Telegram +BOT_DEBUG=false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..92eb03b --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.env +*.exe +*.exe~ +*.dll +*.so +*.dylib +/bin/ +/dist/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..bb750cc --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# tgvpn + +Telegram-бот на Go (базовое приветствие, дальше — VPN-функции). + +## Запуск + +1. Скопируйте `.env.example` в `.env` и укажите `BOT_TOKEN` от [@BotFather](https://t.me/BotFather). +2. `go run .` + +## Переменные окружения + +| Переменная | Описание | +|--------------|-----------------------------------| +| `BOT_TOKEN` | Токен бота (обязательно) | +| `BOT_DEBUG` | `true` — подробные логи API | diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c75c8f6 --- /dev/null +++ b/go.mod @@ -0,0 +1,8 @@ +module telegramvpn + +go 1.22 + +require ( + github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 + github.com/joho/godotenv v1.5.1 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..0467a41 --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= diff --git a/main.go b/main.go new file mode 100644 index 0000000..236f316 --- /dev/null +++ b/main.go @@ -0,0 +1,57 @@ +package main + +import ( + "log" + "os" + + tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" + "github.com/joho/godotenv" +) + +func main() { + _ = godotenv.Load() + + token := os.Getenv("BOT_TOKEN") + if token == "" { + log.Fatal("BOT_TOKEN не задан. Скопируйте .env.example в .env и укажите токен от @BotFather") + } + + bot, err := tgbotapi.NewBotAPI(token) + if err != nil { + log.Fatalf("не удалось подключиться к Telegram: %v", err) + } + + bot.Debug = os.Getenv("BOT_DEBUG") == "true" + log.Printf("бот @%s запущен", bot.Self.UserName) + + u := tgbotapi.NewUpdate(0) + u.Timeout = 60 + + updates := bot.GetUpdatesChan(u) + + for update := range updates { + if update.Message == nil { + continue + } + + chatID := update.Message.Chat.ID + text := update.Message.Text + + var reply string + switch text { + case "/start": + name := update.Message.From.FirstName + if name == "" { + name = "друг" + } + reply = "Привет, " + name + "!\n\nЯ VPN-бот. Пока умею только здороваться — дальше добавим функции." + default: + reply = "Напишите /start, чтобы начать." + } + + msg := tgbotapi.NewMessage(chatID, reply) + if _, err := bot.Send(msg); err != nil { + log.Printf("ошибка отправки в чат %d: %v", chatID, err) + } + } +}