یک ربات تلگرام هوشمند برای دریافت اخبار شخصیسازیِشده از NewsAPI.org
- دریافت اخبار مرتبط با موضوعات دلخواه کاربر
- امکان انتخاب منابع خبری معتبر مانند CNN، BBC، NYTimes، و...
- رابط کاربری تعاملی با دکمههای دو سطحی برای مدیریت ترجیحات
- دستهبندی موضوعات و منابع به صورت گروهی و قابل پیمایش
- پشتیبانی کامل از زبان فارسی و انگلیسی با حفظ زبان در تمام بخشها
- فیلتر اخبار به زبان انگلیسی
- پشتیبانی از SQLAlchemy ORM و مهاجرت پایگاه داده با Alembic
- اسکریپتهای نصب و تست خودکار برای سهولت راهاندازی
- معماری مقیاسپذیر و قابل گسترش
| جدول | شرح |
|---|---|
users |
اطلاعات کاربران (شناسه، نام، فعالیت اخیر و...) |
user_topics |
ترجیحات موضوعی کاربران (با دستهبندی) |
user_sources |
ترجیحات منابع خبری برای هر کاربر (فعال/غیرفعال) |
| گروه اصلی | نمونه موضوعات |
|---|---|
| فناوری و دیجیتال | AI، Programming، Cybersecurity |
| علم و آموزش | Science، Health، Space |
| سیاست و اقتصاد | Politics، Economy، Business |
| فرهنگ و رسانه | Movies، Music، Entertainment |
| اجتماع | Human Rights، Society، Immigration |
| ورزش و بازی | Football، Sports، Gaming |
| منطقهای | Iran News، US News، Middle East |
| گروه منابع | نمونه وبسایتها |
|---|---|
| بینالمللی | CNN, BBC, NYTimes, Reuters |
| فناوری | The Verge, TechCrunch, WIRED |
| سیاست آمریکا | Politico, Fox News, NBC |
| خاورمیانه (English) | Al-Monitor, Arab News, Tehran Times |
# کلون کردن پروژه
git clone <repository-url>
cd NewsReaderBot
# اجرای اسکریپت نصب خودکار
python setup.pyاسکریپت setup.py به صورت خودکار:
- ✅ بررسی نسخه Python
- 📦 نصب کتابخانههای مورد نیاز
- 🔐 ایجاد فایل
.envبا تنظیمات پیشفرض - 🗄️ راهاندازی پایگاه داده
- 🧪 تست اتصال پایگاه داده
# نصب کتابخانهها
pip install -r requirements.txt
# کپی کردن فایل نمونه محیط
cp env.template .env
# ویرایش فایل .env با کلیدهای API
# API_KEY=کلید_API_شما
# BOT_TOKEN=توکن_ربات_شما
# DATABASE_URL=sqlite:///newsreader.db
# راهاندازی پایگاه داده
python -m alembic upgrade head
# تست پایگاه داده
python test_db.py# اجرای ربات (توصیه شده برای تولید)
python main.py
| دستور | عملکرد |
|---|---|
/start |
شروع و ثبت نام کاربر |
/help |
نمایش راهنمای دستورات |
/news |
دریافت اخبار شخصیسازیشده |
/topics |
مدیریت موضوعات خبری (دستهبندی شده) |
/sources |
مدیریت منابع خبری (دستهبندی شده) |
/info |
نمایش ترجیحات فعلی |
/language |
تغییر زبان ربات (فارسی/انگلیسی) |
python test_db.pyاین اسکریپت موارد زیر را تست میکند:
- 🔌 اتصال پایگاه داده
- 👤 عملیات کاربر (ایجاد، بازیابی، بهروزرسانی)
- 📰 عملیات منابع خبری
- 📚 عملیات موضوعات
- 🌐 مدیریت زبان
- ⚙️ ترجیحات کاربر
- 📂 سیستم دستهبندی
مشکل اتصال شبکه:
# بررسی تنظیمات فایروال
# اطمینان از دسترسی به اینترنت
# بررسی کلیدهای APIمشکل پایگاه داده:
# پاک کردن و بازسازی پایگاه داده
rm newsreader.db
python -m alembic upgrade head
python test_db.pyمشکل زبان:
- ربات از زبانهای فارسی و انگلیسی پشتیبانی میکند
- زبان انتخاب شده در تمام بخشها حفظ میشود
# پشتیبانگیری از دیتابیس قدیمی
cp subscribers.db subscribers_backup.db# نصب کتابخانههای جدید
pip install sqlalchemy alembic python-dotenv
# یا استفاده از اسکریپت نصب خودکار
python setup.py# اجرای مهاجرتهای پایگاه داده
python -m alembic upgrade head
# تست پایگاه داده جدید
python test_db.py# اجرای ربات با ساختار جدید
python main.py- ارسال
/startتوسط کاربران - بررسی عملکرد زبانهای فارسی و انگلیسی
- تست مدیریت موضوعات و منابع
