سیستم هوشمند استخراج و ذخیرهسازی لینکهای کانالها و گروههای تلگرام با قابلیت مدیریت حسابهای کاربری، استخراج لینک از وبسایتها و پاسخگویی هوشمند به پیامهای خصوصی.
✅ جمعآوری خودکار لینکها: استخراج اتوماتیک لینک از کانالها و گروههای تلگرام
✅ مدیریت حسابهای کاربری تلگرام: پشتیبانی از چندین حساب کاربری با احراز هویت دو مرحلهای
✅ اتصال دستهای حسابها: قابلیت اتصال همزمان همه حسابهای کاربری با یک کلیک
✅ استخراج لینک از وبسایتها: جمعآوری لینکهای تلگرام از وبسایتهای مختلف
✅ پاسخگویی هوشمند: پاسخ خودکار به پیامهای خصوصی با استفاده از هوش مصنوعی Avalai.ir و Perplexity
✅ ارسال نوتیفیکیشن SMS: اطلاعرسانی لینکهای جدید از طریق پیامک با سرویس Twilio
✅ رابط کاربری شبیه تلگرام دسکتاپ: مشاهده و مدیریت پیامهای خصوصی با رابط کاربری مشابه تلگرام
✅ صادرات اطلاعات: خروجی Excel از لینکهای جمعآوری شده و آمار
✅ پشتیبانی از GitLab و GitHub: امکان کلون کردن کد از هر دو مخزن
✅ پشتیبانی از دو زبان: رابط کاربری به دو زبان فارسی و انگلیسی
- سیستم عامل: Linux (Ubuntu/Debian)
- Python 3.8+
- PHP 8.0+ (برای MadelineProto و بخش PHP)
- دسترسی ادمین (root) برای نصب سرویس
- توکن ربات تلگرام
برای نصب سریع و یک مرحلهای سیستم لینکیاب تلگرام، دستور زیر را در ترمینال لینوکس اجرا کنید:
wget -O install.sh https://raw.githubusercontent.com/asanseir724/LinkHunterBot/main/install.sh && chmod +x install.sh && sudo ./install.shاین دستور به صورت خودکار:
- فایل اسکریپت نصب را دانلود میکند
- به آن دسترسی اجرا میدهد
- اسکریپت را با دسترسی روت اجرا میکند
سپس اسکریپت نصب، تمام مراحل زیر را به صورت خودکار انجام میدهد:
- بهروزرسانی سیستم و نصب پیشنیازها
- دانلود کد از مخزن GitHub یا GitLab (با انتخاب شما)
- نصب PHP 8.2 و Composer برای پشتیبانی از MadelineProto
- راهاندازی محیط مجازی پایتون و نصب کتابخانهها
- دریافت اطلاعات لازم مانند توکن ربات و API های مختلف
- نصب و راهاندازی به عنوان سرویس سیستمی
- ابتدا مخزن را کلون کنید:
# از GitHub
git clone https://github.com/asanseir724/LinkHunterBot.git
# یا از GitLab
git clone https://gitlab.com/your-username/LinkHunterBot.git- وارد پوشه پروژه شوید:
cd LinkHunterBot- محیط مجازی پایتون را ایجاد کنید:
python3 -m venv venv
source venv/bin/activate- وابستگیها را نصب کنید:
pip install --upgrade pip
pip install -r dependencies.txt- پوشههای مورد نیاز را ایجاد کنید:
mkdir -p logs
mkdir -p static/exports
mkdir -p sessions
mkdir -p php_version/sessions
chmod 777 logs static/exports sessions php_version/sessions- برای پشتیبانی از MadelineProto، PHP 8.2 و Composer را نصب کنید:
# نصب PHP 8.2
apt install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
apt update
apt install -y php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-bcmath
# نصب Composer
curl -sS https://getcomposer.org/installer | php
php composer.phar install- فایل متغیرهای محیطی را ایجاد کنید:
cat > .env << EOL
# متغیرهای محیطی پروژه
SESSION_SECRET=$(openssl rand -hex 32)
TELEGRAM_BOT_TOKEN=YOUR_BOT_TOKEN
DATABASE_URL=sqlite:///links.db
# تنظیمات Twilio (برای ارسال نوتیفیکیشن SMS)
TWILIO_ACCOUNT_SID=YOUR_TWILIO_SID
TWILIO_AUTH_TOKEN=YOUR_TWILIO_TOKEN
TWILIO_PHONE_NUMBER=YOUR_TWILIO_PHONE
# تنظیمات هوش مصنوعی (برای پاسخگویی خودکار به پیامهای خصوصی)
AVALAI_API_KEY=YOUR_AVALAI_API_KEY
PERPLEXITY_API_KEY=YOUR_PERPLEXITY_API_KEY
EOL- برنامه را اجرا کنید:
gunicorn --bind 0.0.0.0:5000 --workers 3 main:appبرای اجرای برنامه به صورت سرویس در پسزمینه، فایل سرویس زیر را ایجاد کنید:
cat > /etc/systemd/system/linkdoni.service << EOL
[Unit]
Description=Telegram Link Hunter Bot
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/linkdoni
Environment="PATH=/var/www/linkdoni/venv/bin"
EnvironmentFile=/var/www/linkdoni/.env
ExecStart=/var/www/linkdoni/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 --access-logfile /var/www/linkdoni/logs/access.log --error-logfile /var/www/linkdoni/logs/error.log main:app
Restart=always
[Install]
WantedBy=multi-user.target
EOL
# راهاندازی سرویس
systemctl daemon-reload
systemctl enable linkdoni
systemctl start linkdoni- به صفحه "منابع" (Sources) بروید
- نام کانال یا گروه مورد نظر را در فرمت
@channel_usernameوارد کنید - روی دکمه "افزودن" کلیک کنید
- به صفحه "حسابهای کاربری" (Accounts) بروید
- روی دکمه "افزودن حساب" کلیک کنید
- شماره تلفن را با فرمت بینالمللی وارد کنید
- کد تایید را که به تلفن ارسال میشود وارد کنید
- در صورت نیاز، رمز عبور دو مرحلهای را وارد کنید
- به صفحه "حسابهای کاربری" (Accounts) بروید
- روی دکمه "اتصال همه حسابها" کلیک کنید
- سیستم به صورت خودکار تمام حسابهای در وضعیت غیرمتصل را متصل میکند
- به صفحه "پیامهای خصوصی" (Private Messages) بروید
- در بخش تنظیمات AI، منبع هوش مصنوعی را انتخاب کنید (Avalai.ir یا Perplexity)
- پرامپت مورد نظر برای پاسخگویی را تنظیم کنید
- عملکرد آن را با بخش پیشنمایش بررسی کنید
- به صفحه "پیامهای خصوصی" (Private Messages) بروید
- برای مشاهده همه پیامها، به صورت پیشفرض پیامهای همه حسابها نمایش داده میشود
- برای مشاهده رابط کاربری شبیه تلگرام دسکتاپ، روی دکمه "Telegram Desktop Style" کلیک کنید
- به صفحه "وبسایتها" (Websites) بروید
- آدرس وبسایت مورد نظر را وارد کنید
- فاصله زمانی بررسی را تنظیم کنید
- روی دکمه "افزودن" کلیک کنید
برای استفاده از GitLab به عنوان مخزن، مراحل زیر را دنبال کنید:
- یک پروژه جدید در GitLab ایجاد کنید
- مخزن GitHub را به GitLab متصل کنید:
# افزودن remote برای GitLab
git remote add gitlab https://gitlab.com/your-username/LinkHunterBot.git
# ارسال کد به GitLab
git push -u gitlab main- برای اطلاعات بیشتر به فایل
gitlab_setup.mdمراجعه کنید
اگر با خطای دسترسی به پوشههای logs، sessions یا static/exports مواجه شدید:
chmod -R 777 logs sessions static/exports php_version/sessionsاگر با خطای ارتباط با API تلگرام مواجه شدید، مطمئن شوید:
- توکن ربات معتبر است
- دسترسی به سرورهای تلگرام وجود دارد
- تنظیمات پراکسی در صورت نیاز انجام شده است
اگر در اتصال حسابها مشکل دارید:
- از صحت شماره وارد شده اطمینان حاصل کنید
- محدودیتهای IP را بررسی کنید (ممکن است نیاز به استفاده از پراکسی باشد)
- کد تایید و رمز دو مرحلهای را با دقت وارد کنید
اگر سرویس linkdoni با خطای failed (Result: exit-code) مواجه شد:
-
بررسی لاگهای خطا:
sudo journalctl -u linkdoni.service -n 50
-
بررسی و بهبود تنظیمات سرویس:
sudo nano /etc/systemd/system/linkdoni.service
تغییرات پیشنهادی برای فایل سرویس:
[Unit] Description=Telegram Link Hunter Bot After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/linkdoni Environment="PATH=/var/www/linkdoni/venv/bin" EnvironmentFile=/var/www/linkdoni/.env ExecStart=/var/www/linkdoni/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 --access-logfile /var/www/linkdoni/logs/access.log --error-logfile /var/www/linkdoni/logs/error.log main:app Restart=on-failure RestartSec=10 StartLimitInterval=60 StartLimitBurst=3 [Install] WantedBy=multi-user.target -
بررسی دسترسیهای فایلها:
sudo chown -R www-data:www-data /var/www/linkdoni sudo chmod -R 755 /var/www/linkdoni sudo chmod -R 777 /var/www/linkdoni/logs /var/www/linkdoni/sessions /var/www/linkdoni/static/exports /var/www/linkdoni/php_version/sessions
-
راهاندازی مجدد سرویس:
sudo systemctl daemon-reload sudo systemctl restart linkdoni.service
برای مشارکت در توسعه پروژه:
- یک نسخه از مخزن را fork کنید
- تغییرات خود را اعمال کنید
- یک Pull Request ایجاد کنید
این پروژه تحت مجوز MIT منتشر شده است.