یک ربات قدرتمند برای پیامرسان روبیکا با قابلیتهای کامل، نوشته شده در Lua
- ✅ پشتیبانی از Webhook و Polling
- ✅ کیبورد اینلاین پیشرفته
- ✅ ارسال انواع مدیا (عکس، ویدیو، فایل، صدا)
- ✅ مدیریت کامل کاربران
- ✅ قابلیتهای پیشرفته مانند انتخابگر، تقویم، موقعیتیاب
- ✅ معماری ماژولار و قابل توسعه
- ✅ مستندات کامل
# نصب Lua (روی Arch Linux)
sudo pacman -S lua
# نصب کتابخانههای مورد نیاز
luarocks install lua-cjson
luarocks install luasocket
luarocks install luasec
luarocks install rubika- کلون کردن ریپوزیتوری
git clone https://github.com/yourusername/rubika-bot-lua.git
cd rubika-bot-lua- تنظیم توکن ربات
cp config.example.lua config.lua
# توکن ربات خود را در فایل config.lua قرار دهید- اجرا در حالت Polling (تست)
lua polling_bot.lua- اجرا در حالت Webhook (Production)
lua webhook_server.luaفایل config.lua
return {
bot = {
token = "YOUR_BOT_TOKEN_HERE",
timeout = 30,
platform = "web"
},
webhook = {
enabled = true,
url = "https://yourdomain.com/webhook",
port = 8080
},
server = {
host = "0.0.0.0",
port = 8080
}
}- به @BotFather در روبیکا مراجعه کنید
- دستور /start را ارسال کنید
- نام و یوزرنیم ربات را انتخاب کنید
- توکن دریافتی را در فایل ربات یا config قرار دهید
با استفاده از Ngrok (تست محلی)
# نصب Ngrok
yay -S ngrok
# اجرای Ngrok
ngrok authtoken YOUR_AUTH_TOKEN
ngrok http 8080
# در ترمینال دیگر
lua webhook_server.luaبا استفاده از Cloudflare Tunnel
# نصب Cloudflared
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
# راهاندازی تونل
cloudflared tunnel login
cloudflared tunnel create my-bot
cloudflared tunnel run my-bot --url http://localhost:8080روی VPS واقعی
# فایل پیکربندی Nginx
server {
listen 80;
server_name yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/private.key;
location /webhook {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}ایجاد یک ربات ساده
local rubika = require("rubika")
local bot = rubika.Robot:new("YOUR_BOT_TOKEN")
bot:on_message()(function(self, msg)
if msg.text == "/start" then
msg:reply("سلام! به ربات خوش آمدید 👋")
elseif msg.text == "/info" then
local name = self:get_name(msg.chat_id)
msg:reply("اسم شما: " .. name)
end
end)
bot:run()استفاده از کیبورد اینلاین
bot:on_message()(function(self, msg)
if msg.text == "/menu" then
local builder = rubika.InlineBuilder:new()
local keyboard = builder
:row(
builder:button_simple("help", "📖 راهنما"),
builder:button_simple("about", "ℹ️ درباره")
)
:row(
builder:button_link("website", "🌐 وبسایت", "https://example.com")
)
:build()
msg:reply("منوی اصلی:", nil, keyboard)
end
end)
-- هندلر دکمهها
bot:on_callback("help")(function(self, msg)
msg:reply("این بخش راهنماست!")
end)ارسال مدیا
-- ارسال عکس
bot:send_image(chat_id, "path/to/image.jpg", "متن همراه عکس")
-- ارسال فایل
bot:send_document(chat_id, "path/to/file.pdf", "شرح فایل")
-- ارسال صدا
bot:send_voice(chat_id, "path/to/audio.ogg")rubika-bot-lua/
├── rubika.lua # کتابخانه اصلی
├── webhook_server.lua # سرور وبهوک
├── polling_bot.lua # ربات Polling
├── config.example.lua # مثال پیکربندی
├── config.lua # فایل پیکربندی (ایجاد شود)
├── examples/ # مثالهای مختلف
│ ├── simple_bot.lua
│ ├── keyboard_bot.lua
│ ├── chat_type_bot.lua
│ └── media_bot.lua
├── docs/ # مستندات
└── README.md
| ویژگی | Webhook | Polling |
|---|---|---|
| سرعت ⚡ | سریع | 🐢 کند |
| منابع | کم مصرف | پر مصرف |
| قابلیتها | کامل | محدود |
| پیچیدگی | متوسط | ساده |
نیازمندیها سرور عمومی اینترنت معمولی
مشکلات رایج
- خطای اتصال · اتصال اینترنت را بررسی کنید · توکن ربات را چک کنید
- کیبورد نمایش داده نمیشود · از حالت Webhook استفاده کنید · در Polling کیبورد کار نمیکند
- خطای SSL در Webhook · گواهی SSL را تنظیم کنید · از Cloudflare Tunnel استفاده کنید
لاگگیری
-- فعال کردن لاگ مفصل
bot:on_message()(function(self, msg)
print("📨 پیام از " .. msg.chat_id .. ": " .. (msg.text or "بدون متن"))
-- پردازش پیام
end)مشارکتها همیشه welcome هستند!
- فورک کنید
- برنچ feature ایجاد کنید (git checkout -b feature/AmazingFeature)
- کامیت کنید (git commit -m 'Add some AmazingFeature')
- push کنید (git push origin feature/AmazingFeature)
- Pull Request ایجاد کنید
این پروژه تحت لایسنس MIT منتشر شده است. برای اطلاعات بیشتر فایل LICENSE را مطالعه کنید.
· 📧 ایمیل: hadipishghadam13@gmail.com · 💬 Issue: ایجاد Issue · 📚 مستندات: Wiki
🙏 تشکر
از تمامی مشارکتکنندگان و جامعه Lua که این پروژه را ممکن ساختند تشکر میکنیم.
⭐ اگر این پروژه را مفید یافتید، لطفاً ستاره بدهید!