| کانال ربات تلگرام |
1K subscribers
3 photos
5 links
⭕️ کانال توسعه‌دهندگان ربات تلگرام دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
تیکه کد عضویت اجباری برای رباتهای تلگرام

// Join Channel

$bot_channel_ids = [-1002084850763];

function check_join($from_id, $first_name, $chat_id, $bot_channel_ids, $inlineQueryId = null) {
global $message_id;

$join_Status = ['member', 'creator', 'administrator'];

foreach ($bot_channel_ids as $bot_channel_id) {
$check_join = bot('getChatMember', [
'chat_id' => $bot_channel_id,
'user_id' => $from_id
])->result->status;

if (!in_array($check_join, $join_Status)) {
$invite_link = bot('createChatInviteLink', [
'chat_id' => $bot_channel_id
])->result->invite_link;

$join_buttons = [[
['text' => " عضویت در کانال ", 'url' => $invite_link]
]];

$join_button = json_encode([
'inline_keyboard' => $join_buttons
]);

if ($inlineQueryId != null) {
bot('answerInlineQuery', [
'inline_query_id' => $inlineQueryId,
'cache_time' => 0,
'results' => json_encode([[
'type' => 'article',
'id' => rand(1, 10000000),
'title' => " شما عضو کانال نیستید ",
'input_message_content' => [
'message_text' => "🫰 برای استفاده از ربات، ابتدا در کانال ما عضو شوید ",
'parse_mode' => 'Markdown'
],
'reply_markup' => json_decode($join_button),
'description' => " لطفاً ابتدا وارد کانال شوید ",
'thumbnail_url' => "https://bot.turk-service.ir/iauTools/telegram.png",
]]),
]);
} else {
bot('sendMessage', [
'chat_id' => $chat_id,
'reply_to_message_id' => $message_id,
'parse_mode' => 'Markdown',
'text' => "⚠️ کاربر گرامی [$first_name](tg://user?id=$from_id) \nUserID : $from_id\nبرای استفاده از ربات ابتدا عضو چنل ما شوید ",
'reply_markup' => $join_button,
]);
}

return false;
}
}

return true;
}

if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids)) {}
if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids, $inlineQueryId)) {}



برای همه حالت های ابدیت نوشته شده
برای حالت عادی میتونید به صورت :

if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids)) {}


استفاده کنید ، و در حالت اینلاین مود از شرط

if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids, $inlineQueryId)){}


اگه کاربر عضو شده باشد ، true برمیگردونه در غیر اینصورت پیام عضویت اجباری رو میفرسته و نیازی نیست شرط else رو بنویسید

🔖 #TelegramBot, #ربات, #تلگرام, #PHP, #BotAPI

👤 ❉্᭄͜͡𝓐𝓵𝓲𝓻𝓮𝔃𝓪❉্᭄͜͡

💎 Channel: @DevelopixRobot
👍6
‏LaraGram یک فریم‌ورک توسعه‌پذیر، منعطف و مدرن به زبان PHP برای ساخت ربات‌های تلگرامه که با الهام از ساختار لاراول طراحی شده.

اگر با لاراول آشنایی دارید، کار با LaraGram براتون راحت، لذت‌بخش و قابل پیش‌بینی خواهد بود — و حتی اگه آشنایی ندارید، ساختار منظمش خیلی زود براتون جا می‌افته.

‏LaraGram امکانات زیادی درون خودش داره که می‌تونید سخت‌ترین ربات‌ها رو با چند خط کد پیاده‌سازی کنید، اگر قابلیتی رو هم نداشته باشه می‌تونید به عنوان پکیج جانبی بهش اضافه کنید یا حتی برای اون پکیج توسعه بدید.

به عنوان مثال، LaraGram مجهز به یک سیستم Update Listener پیشرفته هست که به شما امکاناتی مانند گروه‌بندی لیسنرها، نام‌دهی به هر لیسنر، اعمال محدودیت و Middleware بر روی لیسنر، پردازش متن و ورودی‌ها، و... رو میده.

همچنین نسخه بازنویسی شده Eloquent ORM رو در خودش جا داده با پشتیبانی از ۵ دیتابیس مختلف، همراه با تعریف روابط، Migrations، Seeders و Factory‌ها.

سایر قابلیت های کلیدی اون:

🔐‌ سیستم کنترل مجوز با قابلیت تعریف Gate و Policy برای مدیریت دقیق سطح دسترسی کاربران به منابع مختلف.

💻‌ Commander System برای ساخت و اجرای راحت command‌ها، مدیریت ساده‌تر پروژه، و زمان‌بندی اجرای وظایف (Scheduled Tasks).

📨‌ ‏Queue و Job System برای ساخت صف و اجرای کارها در پس‌زمینه با زمان‌بندی دلخواه.

🧰‌ رابط Redis با امکانات لازم برای توسعه‌های وابسته به کش، صف و پیام‌رسانی آنی.

🧠‌ سیستم کشینگ با پشتیبانی از ۷ درایور مختلف برای ذخیره‌سازی داده‌های موقتی، به‌همراه پیاده‌سازی Step Manager بر همین بستر.

🔁‌ کالکشن‌ها برای کار ساده‌تر و منعطف‌تر با داده‌های Iterable، مشابه کالکشن‌های Laravel.

⚙️‏‌ Concurrency‏ داخلی با امکان پردازش هم‌زمان چند درخواست در پس‌زمینه بدون پیچیدگی اضافه.

🔒‌ ابزارهای امنیتی با پشتیبانی از سیستم‌های رمزنگاری (Crypt) و هشینگ (Hash).

📢‌ Event Dispatcher برای تعریف و مدیریت رویدادها و واکنش به آن‌ها.

🎛‌ کیبورد بیلدر توسعه‌یافته با استفاده ساده و انعطاف پذیری بالا.

🧩‌ موتور قالب‌سازی پیشرفته الهام‌گرفته از Blade برای ساخت پیام‌ها به‌صورت پویا و قابل نگهداری.

🌍‌ سیستم چندزبانه (Translation) برای ساخت ربات‌هایی با پشتیبانی از زبان‌های مختلف.

‌ سیستم اعتبارسنجی با قوانین متنوع و امکان تعریف Rule‌های سفارشی.

🤖‌ پشتیبانی از چند ربات هم‌زمان و امکان تعریف چند کانکشن و مدیریت آن‌ها به‌صورت مستقل.

یک مثال ساده برای ایجاد یک کامند بن با user_id به مدت 7 روز، با کنترل دسترسی و شرط ریپلای نشدن کامند:
Bot::onCommand("ban {id}", function (Request $request, $id) {
$request->banChatMember(
chat_id: chat()->id,
user_id: $id,
until_date: now()->addDays(7)->timestamp
);
})->can('administrator')->hasNotReply();


برخی از ویژگی‌ها با افزونه‌ها و پکیج‌های جانبی به LaraGram اضافه می‌شوند، به عنوان مثال:

⚡️LaraGram Surge
پکیجی برای اجرای سریع‌تر ربات‌ها با پشتیبانی از Swoole و OpenSwoole

🔧LaraGram Installer
برای نصب و راه‌اندازی سریع و ساده پروژه‌های LaraGram

🛢‌ LaraGram MongoDB‌‏
درایور پایگاه‌داده MongoDB برای Eloquent ORM


📚 مستندات رسمی LaraGram نیز از طریق لینک زیر در دسترس است:
🔗 laraxgram.github.io

💬 گروه پرسش و پاسخ:
🔹 @LaraGramChat

📌 پروژه در گیت‌هاب:
♦️ LaraGram

🔖 #TelegramBot, #ربات, #تلگرام

👤 AmirHossein

💎 Channel: @DevelopixRobot
🔥142
الگوی Command برای هندلرهای ربات تلگرام — سازماندهی دستورات

الگوی Command یکی از ساده‌ترین و کاربردی‌ترین راه‌ها برای جداسازی منطق هر دستور در ربات تلگرام است. به جای نوشتن یک تابع بزرگ که همه دستورات را هندل می‌کند، برای هر دستور یک کلاس یا شیء مجزا تعریف می‌کنیم که تنها مسئول اجرای آن دستور باشد. این کار خوانایی، تست‌پذیری و گسترش‌پذیری پروژه را به‌طور چشمگیر بالا می‌برد.

مثال ساده در پایتون برای درک بهتر:
class Command:
def execute(self, update, context):
raise NotImplementedError

class StartCommand(Command):
def execute(self, update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="سلام! خوش آمدید.")

class HelpCommand(Command):
def execute(self, update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="لیست دستورات: /start, /help")

router = {
'/start': StartCommand(),
'/help': HelpCommand(),
}

def handle_update(update, context):
text = update.message.text.split()[0]
cmd = router.get(text)
if cmd:
cmd.execute(update, context)


چند نکته عملی:
- Single Responsibility: هر کلاس فقط یک کار انجام می‌دهد (SRP از اصول SOLID).
- تست‌پذیری: می‌توان هر Command را جداگانه unit-test کرد بدون نیاز به بوت‌استرپ کل بات.
- گسترش‌پذیری: اضافه کردن دستور جدید فقط اضافه کردن یک کلاس و ثبت آن در router است.
- Middleware: اگر نیاز به لاگ یا اعتبارسنجی باشد، می‌توان لایه‌ای بین handle_update و اجرای Command قرار داد یا یک Decorator برای Commandها نوشت.

الگوی Command مخصوصاً وقتی تعداد دستورات زیاد است یا هر دستور منطق پیچیده‌ای دارد، مزیت دارد. با این ساختار نگهداری و توسعه ربات‌های تلگرام ساده‌تر و مرتب‌تر خواهد شد.

🔖 #TelegramBot #ربات #تلگرام #design_patterns #command_pattern #telegram_bot #python #clean_code

👤 Developix

💎 Channel: @DevelopixRobot
👍7👎1