Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
4.1 KiB
Memes Bot
ربات شخصی تلگرام برای ذخیره و جستجوی میم (عکس، گیف، ویدیو، صدا، موزیک، استیکر، فایل) با کلیدواژه.
پیشنیازها
- یک سرور با Docker نصبشده
- توکن ربات تلگرام از @BotFather
راهاندازی
۱. ساخت ربات در BotFather
/newbot← توکن بگیرید/setinline← حالت اینلاین را فعال کنید (مثلاً:جستجوی میم...)
۲. پیدا کردن شناسه تلگرام
برای وایتلیست کردن خودتان به ID عددی نیاز دارید.
- سادهترین روش: یک پیام به @userinfobot فوروارد کنید — شناسه شما را برمیگرداند
- روش دیگر: تلگرام وب را باز کنید، روی پروفایل کلیک کنید، عدد داخل URL شناسه شماست
- برای چند کاربر: ID هر نفر را با کاما جدا کنید
۳. کلون و تنظیم
git clone https://git.goyban.com/goyban/memes_bot
cd memes_bot
cp .env.example .env
فایل .env را ویرایش کنید:
BOT_TOKEN=توکن_ربات_شما
ALLOWED_USERS=123456789,987654321
۴. اجرا
docker compose up -d --build
دیتابیس در مسیر ./bot_db/media.db ذخیره میشود.
نحوه استفاده
افزودن میم — یک عکس، گیف، ویدیو، صدا، موزیک، استیکر یا هر فایلی برای ربات بفرستید. ربات از شما کلیدواژه میخواهد. کلیدواژهها را یکییکی یا با کاما جدا بفرستید، سپس /done بزنید.
جستجوی اینلاین — در هر چتی بنویسید @نام_ربات کلیدواژه تا نتایج نمایش داده شود.
دستورات
| دستور | توضیح |
|---|---|
/list |
نمایش همه رسانههای ذخیرهشده |
/review |
بررسی یکبهیک ارسالهای در انتظار تأیید (فقط ادمین) |
/delete <id> |
حذف یک مورد (ID را از /list بگیرید) |
/cancel |
لغو عملیات جاری |
پذیرش ارسال کاربران
اگر در فایل .env مقدار ACCEPT_SUBMISSIONS=true را تنظیم کنید، کاربران غیرادمین هم میتوانند رسانه بفرستند. این موارد ذخیره میشوند اما تا وقتی یک ناظر تأییدشان نکند در جستجوی inline و /list دیده نمیشوند. رسانهای که خود ادمینها میفرستند مثل قبل مستقیم ذخیره میشود.
با دستور /review میتوانید صف را بررسی کنید. هر مورد همراه با کلیدواژههایش و چهار دکمه نمایش داده میشود: تأیید، رد، اصلاح کلیدواژهها، و توقف.
صف هیچ نشانگری ذخیره نمیکند و /review همیشه قدیمیترین مورد در انتظار را میآورد. برای همین میتوانید بعد از چند مورد متوقف شوید و فردا ادامه دهید، و چند ناظر هم میتوانند همزمان کار کنند — اگر دو نفر یک مورد را باز کنند، تصمیم اولی ثبت میشود و به دومی گفته میشود که قبلاً بررسی شده است.
تا وقتی مطمئن نیستید این گزینه را خاموش بگذارید. وقتی
ALLOWED_USERSخالی باشد همه کاربرِ مجاز حساب میشوند، پس روشنکردن این گزینه یعنی پذیرفتن رسانه از هر کسی که ربات را پیدا کند.
انتقال به سرور دیگر
فقط کافی است این دو فایل را منتقل کنید:
.envbot_db/media.db