LK Gold Bot là một Telegram bot cá nhân viết bằng Python, dùng để quản lý username/link Locket, phân tích invite id công khai, tạo checklist sử dụng tài khoản an toàn, theo dõi lượt dùng bằng SQLite và tuỳ chọn tạo profile NextDNS cá nhân.
Dự án đã được dọn lại để phù hợp làm project cá nhân có thể public trên GitHub: không hard-code token, có .env.example, có test, CI, Docker, tài liệu vận hành, security policy, issue templates và hướng dẫn triển khai rõ ràng.
Lưu ý quan trọng: bot này chỉ hỗ trợ quản lý thông tin công khai và checklist thao tác hợp lệ. Bot không mở khoá gói trả phí, không bypass subscription, không thu thập mật khẩu/OTP/receipt và không truy cập trái phép dịch vụ bên thứ ba. Nếu cần quản lý gói Locket, hãy dùng App Store hoặc Google Play chính thức.
- Tính năng chính
- Demo luồng sử dụng
- Công nghệ sử dụng
- Yêu cầu hệ thống
- Cài đặt nhanh
- Cấu hình
.env - Chạy bot
- Lệnh Telegram
- Cấu trúc thư mục
- Kiểm tra chất lượng
- Triển khai
- Bảo mật và quyền riêng tư
- Tài liệu bổ sung
- License
- Menu Telegram dễ dùng với inline keyboard.
- Hỗ trợ song ngữ Việt/Anh.
- Nhận username Locket hoặc link Locket.
- Chuẩn hoá input phổ biến như
alice,@alice,https://locket.cam/alice. - Trích xuất invite id công khai nếu link/profile có expose dữ liệu public.
- Trả về checklist sử dụng tài khoản cá nhân an toàn.
- Giới hạn lượt dùng mỗi ngày cho user thường để tránh spam.
/statsxem thống kê tổng quan./noti <nội dung>broadcast thông báo tới user đã dùng bot./rs <user_id>reset lượt dùng trong ngày./setdonatelưu Telegram photofile_idđể gửi kèm kết quả.- Admin được miễn daily limit.
- Queue xử lý bất đồng bộ với nhiều worker.
- SQLite local database, bật WAL mode.
- Cấu hình qua environment variables.
- Runtime data được tách vào
data/và bị ignore khỏi Git. - Có unit test cho parser, config, database và NextDNS path cơ bản.
- Có GitHub Actions CI cho Python 3.10, 3.11, 3.12.
- Có Dockerfile, docker-compose example và systemd service example.
- User mở bot và bấm
/start. - Bot hiển thị menu chính.
- User bấm
🔎 Check Locket. - Bot yêu cầu user reply bằng username hoặc link.
- User gửi ví dụ:
@alice
hoặc:
https://locket.cam/alice
- Bot cố gắng tìm public invite id từ link/profile.
- Bot hiển thị thông tin công khai và nút tạo checklist.
- Request được đưa vào queue.
- Worker xử lý và trả kết quả checklist hợp lệ.
| Thành phần | Vai trò |
|---|---|
| Python 3.10+ | Ngôn ngữ chính |
| python-telegram-bot | Telegram Bot API framework |
| aiohttp | HTTP client bất đồng bộ |
| python-dotenv | Load .env khi chạy local |
| SQLite | Lưu usage, language, request logs, bot config |
| unittest | Unit test không cần dependency ngoài |
| GitHub Actions | CI compile/test tự động |
| Docker | Tuỳ chọn đóng gói deployment |
- Python
3.10trở lên. - Git.
- Telegram bot token từ @BotFather.
- Telegram numeric user id của bạn để làm admin.
- Optional: NextDNS API key nếu muốn bật
ENABLE_NEXTDNS=true.
Kiểm tra Python:
python --versionTrên Linux/macOS có thể là:
python3 --versiongit clone https://github.com/JasonTM17/LK_Gold_Bot.git
cd LK_Gold_Botpython -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
Copy-Item .env.example .env
notepad .envHoặc dùng script:
.\scripts\setup.ps1python3 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -r requirements.txt
cp .env.example .env
nano .envHoặc dùng script:
chmod +x scripts/setup.sh
./scripts/setup.shTạo file .env từ mẫu:
cp .env.example .envWindows:
Copy-Item .env.example .envVí dụ cấu hình tối thiểu:
BOT_TOKEN=123456789:AAExampleTelegramBotToken
ADMIN_ID=123456789
DEFAULT_LANG=VI
NUM_WORKERS=2
DAILY_LIMIT=5
PROJECT_NAME=LK Gold Bot| Biến | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|
BOT_TOKEN |
Có | rỗng | Token bot từ @BotFather. |
ADMIN_ID |
Nên có | 0 |
Telegram user id của admin. |
DEFAULT_LANG |
Không | VI |
Ngôn ngữ mặc định: VI hoặc EN. |
NUM_WORKERS |
Không | 2 |
Số worker xử lý queue. Tối thiểu 1. |
DAILY_LIMIT |
Không | 5 |
Số lượt/ngày cho user thường. |
DONATE_PHOTO |
Không | rỗng | Telegram photo file_id gửi kèm kết quả. |
PROJECT_NAME |
Không | Locket Personal Assistant Bot |
Tên hiển thị trong bot. |
ENABLE_NEXTDNS |
Không | false |
Bật tạo profile NextDNS cá nhân. |
NEXTDNS_KEY |
Khi bật NextDNS | rỗng | API key NextDNS của chính bạn. |
NEXTDNS_BLOCKLIST |
Không | rỗng | Danh sách domain, cách nhau bằng dấu phẩy. |
DATA_DIR |
Không | ./data |
Thư mục runtime data. |
DB_PATH |
Không | ./data/bot_data.db |
Đường dẫn SQLite database. |
python scripts/show_config.pyScript này sẽ mask token/API key trước khi in ra terminal.
Windows:
.\.venv\Scripts\python.exe main.pyLinux/macOS:
./.venv/bin/python main.pyWindows:
.\run.ps1Linux/macOS:
chmod +x run.sh
./run.shpython scripts/healthcheck.pyHealthcheck sẽ kiểm tra import, cấu hình cơ bản và SQLite.
| Lệnh | Mô tả |
|---|---|
/start |
Mở menu chính. |
/setlang |
Đổi ngôn ngữ VI/EN. |
/help |
Xem hướng dẫn sử dụng. |
Admin được xác định bằng ADMIN_ID trong .env.
| Lệnh | Mô tả | Ví dụ |
|---|---|---|
/stats |
Xem tổng user/request/success/fail/queue. | /stats |
/noti <message> |
Broadcast thông báo tới tất cả user đã dùng bot. | /noti Bot sẽ bảo trì lúc 22:00 |
/rs <user_id> |
Reset daily limit cho user. | /rs 123456789 |
/setdonate |
Reply vào ảnh để lưu ảnh gửi kèm kết quả. | Reply ảnh + /setdonate |
.
├── .github/
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── workflows/ci.yml # GitHub Actions CI
├── app/
│ ├── __init__.py
│ ├── bot.py # Telegram handlers, queue, admin commands
│ ├── config.py # Environment config + texts
│ ├── database.py # SQLite helper layer
│ └── services/
│ ├── __init__.py
│ ├── locket.py # Locket input normalization/public invite parser
│ └── nextdns.py # Optional NextDNS profile setup
├── deploy/
│ └── locket-bot.service.example
├── docs/ # Detailed documentation
├── scripts/ # Setup, check, healthcheck, backup helpers
├── tests/ # unittest test suite
├── .env.example
├── .gitignore
├── Dockerfile
├── docker-compose.example.yml
├── main.py
├── Makefile
├── pyproject.toml
├── requirements.txt
├── requirements-dev.txt
├── run.ps1
└── run.sh
python -m compileall -q app main.py tests scriptspython -m unittest discover -s tests -vWindows:
.\scripts\check.ps1Linux/macOS:
chmod +x scripts/check.sh
./scripts/check.shpython -m pip install -r requirements-dev.txt
ruff check .docker build -t lk-gold-bot .
docker run --env-file .env -v "$PWD/data:/app/data" lk-gold-botcp docker-compose.example.yml docker-compose.yml
docker compose up -d --buildXem file mẫu:
deploy/locket-bot.service.example
Các bước tổng quát:
sudo cp deploy/locket-bot.service.example /etc/systemd/system/locket-bot.service
sudo systemctl daemon-reload
sudo systemctl enable --now locket-bot
sudo systemctl status locket-botNhớ sửa WorkingDirectory, ExecStart, EnvironmentFile, User, Group cho đúng server của bạn.
Database mặc định:
data/bot_data.db
Backup bằng script Python:
python scripts/backup_db.pyHoặc nếu có sqlite3 CLI:
sqlite3 data/bot_data.db ".backup data/bot_data.backup.db"Không commit thư mục data/ lên GitHub.
- Không commit
.env. - Không commit
data/,*.db, log hoặc ảnh chụp màn hình chứa dữ liệu riêng tư. - Nếu lộ
BOT_TOKEN, hãy revoke token qua @BotFather ngay. - Nếu lộ
NEXTDNS_KEY, hãy rotate key trong tài khoản NextDNS. - Không gửi mật khẩu, OTP, receipt hoặc token qua bot.
- Không dùng bot để bypass subscription hoặc truy cập trái phép.
Chi tiết hơn xem:
Bạn chưa tạo .env hoặc chưa điền BOT_TOKEN.
- Kiểm tra token đúng bot chưa.
- Đảm bảo không có process khác đang polling cùng token.
- Restart bot sau khi sửa
.env.
- Kiểm tra
ADMIN_IDlà numeric Telegram user id của bạn. - Restart bot sau khi đổi
.env.
- Thử nhập full link thay vì username.
- Profile có thể không expose invite id công khai.
- Đây không phải lỗi token Telegram.
Xem thêm: docs/TROUBLESHOOTING.md
| Tài liệu | Nội dung |
|---|---|
docs/ARCHITECTURE.md |
Kiến trúc module và luồng xử lý. |
docs/CONFIGURATION.md |
Giải thích toàn bộ biến môi trường. |
docs/DEPLOYMENT.md |
Windows, VPS, Docker, systemd. |
docs/OPERATIONS.md |
Runbook vận hành, backup, incident. |
docs/TELEGRAM_COMMANDS.md |
Danh sách lệnh Telegram. |
docs/TESTING.md |
Compile/test/lint. |
docs/FAQ.md |
Câu hỏi thường gặp. |
docs/ROADMAP.md |
Roadmap phát triển an toàn. |
docs/GITHUB_METADATA.md |
Description/topics đề xuất cho GitHub About. |
git status --short
python -m compileall -q app main.py tests scripts
python -m unittest discover -s tests -v
git add .
git commit -m "docs: update detailed README"
git push origin mainDự án dùng giấy phép MIT.
Maintained by JasonTM17 as a personal Python/Telegram bot project.