first commit

This commit is contained in:
tgvpn
2026-05-21 00:25:44 +03:00
commit 626128673d
6 changed files with 97 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
# Токен от @BotFather
BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
# true — подробные логи API Telegram
BOT_DEBUG=false
+8
View File
@@ -0,0 +1,8 @@
.env
*.exe
*.exe~
*.dll
*.so
*.dylib
/bin/
/dist/
+15
View File
@@ -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 |
+8
View File
@@ -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
)
+4
View File
@@ -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=
+57
View File
@@ -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)
}
}
}