0 تومان
Python
Windows, VPS, Python 3+
رباتهای تلگرام ابزارهای قدرتمندی برای انجام کارهای مختلف به صورت خودکار هستند. یکی از ویژگیهایی که در بسیاری از رباتهای تلگرام برای بهبود تجربهی کاربری و امنیت بیشتر در نظر گرفته میشود، عضویت اجباری در کانال تلگرام است. این یعنی کاربران باید ابتدا عضو یک کانال خاص شوند تا بتوانند از ربات استفاده کنند.عضویت اجباری در کانال تلگرام برای رباتها رایگان است و هیچ هزینهای برای کاربران ندارد.
این ربات تلگرامی برای اجرای دستورات خاص فقط به کاربران عضو کانال یا گروه خاصی اجازه دسترسی میدهد. در این ربات، از دیتابیس SQLite برای ذخیره اطلاعات کاربران، لاگها، و فعالیتها استفاده میشود. همچنین، برای ارتباط با API تلگرام از کتابخانههای python-telegram-bot و requests استفاده شده است.
ویژگیهای اصلی ربات
عضویت اجباری: کاربران قبل از استفاده از ربات باید عضو کانال تلگرام خاصی شوند.
مدیریت کاربران: اضافه کردن، مسدود کردن، و آزاد کردن کاربران از طریق دستورات ادمین.
مدیریت ادمینها: ادمینها میتوانند دیگر ادمینها را اضافه یا حذف کنند.
دیتابیس و لاگها: تمامی فعالیتها و تغییرات کاربران در دیتابیس ذخیره میشود.
بروزرسانی وضعیت کاربران: هر کاربر پس از استفاده از ربات، وضعیت آخرین فعالیتش بروزرسانی میشود.
گزارش خطا و لاگها: تمامی خطاها و فعالیتها در فایلهای لاگ ذخیره میشود.
موارد مورد نیاز
کتابخانهها:
requests: برای ارسال درخواستها به API تلگرام.
python-telegram-bot: برای تعامل با API تلگرام.
python-dotenv: برای خواندن فایل تنظیمات محیطی.
spglib: برای کار با دادهها و فرمتهای پیچیده.
sqlite3: برای مدیریت پایگاه داده SQLite.
راهاندازی پروژه:
ابتدا نیاز است که بستههای مورد نیاز نصب شوند. شما میتوانید از pip برای نصب این بستهها استفاده کنید:
pip install requests==2.32.5
pip install python-telegram-bot==20.7
pip install spglib==2.6.0
pip install python-dotenv==1.1.1
ساختار پوشهها:
پروژه نیاز به ساخت پوشههایی برای ذخیرهسازی فایلها و دیتابیس دارد. این پوشهها در مسیر data/ و logs/ قرار میگیرند. ربات به صورت خودکار پوشهها را ایجاد خواهد کرد در صورتی که وجود نداشته باشند.
ساختار پوشهها به صورت زیر خواهد بود:
├── main.py
├── .env
├── requirements.txt
│
├── config.py
├── database.py
│
├── handlers/
│ ├── __init__.py
│ ├── start.py
│ ├── join_check.py
│ ├── admin.py
│ └── stats.py
│
├── utils/
│ ├── __init__.py
│ ├── keyboards.py
│ ├── logger.py
│ └── helpers.py
│
└── data/
├── users.db
└── logs/
تنظیمات محیطی:
برای ارتباط با تلگرام باید توکن ربات را در فایل .env ذخیره کنید:
BOT_TOKEN=your_bot_token_here
نحوه اجرای ربات
دستورالعملهای اولیه:
ابتدا باید تمامی پوشهها و فایلهای لازم را بسازید.
سپس باید تنظیمات اولیه مانند توکن ربات و دیگر اطلاعات مربوط به ادمینها و کانالها را در فایلهای پیکربندی وارد کنید.
راهاندازی دیتابیس:
با اجرای تابع create_tables(), تمامی جداول دیتابیس ایجاد میشوند. این جداول شامل اطلاعات کاربران، ادمینها، لاگها و کانالها هستند.
create_tables()
نصب و راهاندازی ربات:
برای راهاندازی ربات، شما ابتدا باید از توکن ربات استفاده کنید و سپس هندلرها را برای دستورات مختلف (مانند /start, /ban, /unban, /stats) تنظیم کنید. کد نمونه برای این کار:
from telegram.ext import ApplicationBuilder, CommandHandler
def start(update, context):
\"\"\"دستور start ربات\"\"\"
update.message.reply_text(\"سلام! خوش آمدید!\")
application = ApplicationBuilder().token(\"YOUR_BOT_TOKEN\").build()
application.add_handler(CommandHandler(\"start\", start))
application.run_polling()
تنظیمات پروکسی و مدیریت خطا:
اگر ربات نیاز به استفاده از پروکسی دارد، میتوانید پروکسی را در تنظیمات وارد کنید و همچنین در صورت بروز خطا، ربات به طور خودکار تلاش مجدد خواهد کرد.
نحوه استفاده از دستورات
/start: هنگام ارسال دستور /start، ربات بررسی میکند که آیا کاربر عضو کانال اجباری هست یا نه. اگر عضو نباشد، ربات پیامی ارسال میکند که کاربر باید ابتدا عضو کانال شود.
/ban: ادمینها میتوانند با استفاده از دستور /ban کاربرانی که نیاز به مسدود شدن دارند را مسدود کنند. این دستور باید به پیام کاربر ریپلای شود.
/unban: برای آزاد کردن کاربری که مسدود شده، از دستور /unban استفاده میشود.
/stats: این دستور آمار کلی ربات شامل تعداد کل کاربران، اعضای کانال و تعداد مسدود شدهها را نمایش میدهد.
مدیریت پایگاه داده
اتصال به دیتابیس:
در این ربات از SQLite برای ذخیره اطلاعات استفاده میشود. از context manager برای باز و بسته کردن اتصال به دیتابیس استفاده شده است.
@contextmanager
def get_db_connection():
conn = None
try:
conn = sqlite3.connect(DB_PATH, timeout=10)
conn.execute(\"PRAGMA foreign_keys = ON\")
yield conn
except sqlite3.Error as e:
logger.error(f\"خطای دیتابیس: {e}\")
raise
finally:
if conn:
conn.close()
توابع مدیریت کاربران:
توابعی برای اضافه کردن، مسدود کردن و آزاد کردن کاربران از دیتابیس استفاده شده است. به این صورت که تمام تغییرات به صورت لاگ ثبت میشوند.
def add_user(user_id, username=\"\", full_name=\"\", is_member=0):
with get_db_connection() as conn:
cursor = conn.cursor()
cursor.execute(\"\"\"
INSERT OR IGNORE INTO users (user_id, username, full_name, joined_at, is_member)
VALUES (?, ?, ?, ?, ?)
\"\"\", (user_id, username, full_name, datetime.utcnow().isoformat(), is_member))
conn.commit()
خطاها و مشکلات متداول
عدم اتصال به API تلگرام: اگر اتصال به تلگرام برقرار نشد، ربات با استفاده از تعداد مشخصی تلاش مجدد خواهد کرد. در صورتی که همچنان مشکل حل نشود، ربات توقف میکند.
مشکلات در دیتابیس: اگر هنگام دسترسی به دیتابیس خطا رخ دهد، ربات خطا را در لاگها ثبت کرده و عملیات را متوقف میکند.
پروکسی: اگر ربات نیاز به پروکسی داشته باشد، میتوانید تنظیمات مربوطه را در کد وارد کنید تا از دسترسیهای مسدود شده جلوگیری شود
برای ارسال نظر باید وارد شوید.
برای ارسال نظر باید وارد شوید.
هنوز نظری برای این محصول ثبت نشده است.