Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Price Tracker

یک ربات هوشمند برای رصد دوره‌ای قیمت کالاها از دیجی‌کالا، ترب، آمازون و فروشگاه‌های اینترنتی؛ با قابلیت ارسال هشدار خودکار همراه با نمودار تصویری تغییرات قیمت در تلگرام.

Made ❤️ by Mohammad (@llllxyz)


مشکل چی بود؟

دنبال کردن قیمت محصولات مورد نظر توی فروشگاه‌های آنلاین (برای خرید در بهترین زمان یا مانیتورینگ رقبا) کار خسته‌کننده‌ایه. قیمت‌ها مدام تغییر می‌کنن و چک کردن روزانه‌ی ده‌ها لینک مختلف وقت زیادی می‌گیره.

از طرفی اکثر اسکریپت‌های موجود فقط روی یک سایت خاص کار می‌کنن یا هشدار گرافیکی ندارن و فقط یک متن ساده می‌فرستن.

راهکار ما

این پروژه بر پایه Pyrogram و یک موتور وب‌اسکریپینگ ناهمگام (httpx + BeautifulSoup) کار می‌کنه و ویژگی‌های زیر رو داره:

  1. پشتیبانی اختصاصی از دیجی‌کالا و سایت‌های عمومی: اگر لینک دیجی‌کالا بدید، مستقیماً از وب‌سرویس و متادیتای محصول قیمت دقیق فروشنده رو درمیاره؛ اگر لینک هر فروشگاه دیگه‌ای بدید، با موتور عمومی (Universal Scraper) تگ‌های OpenGraph، متادیتای JSON-LD و الگوهای قیمتی رو استخراج می‌کنه.
  2. رصد پس‌زمینه خودکار (Async Scheduler): ربات طبق زمان‌بندی (مثلاً هر ۱۵ دقیقه) تمام لینک‌های فعال رو چک می‌کنه.
  3. تولید نمودار تصویری (Dark-Mode Chart): به محض اینکه قیمت کاهش پیدا کنه یا به مبلغ هدف شما برسه، ربات با استفاده از matplotlib یک نمودار تصویری شیک از تاریخچه تغییرات قیمت کالا تولید می‌کنه و همراه با لینک خرید براتون می‌فرسته.
  4. دیتابیس SQLite: تمام تاریخچه‌ی قیمتی کالاها و لیست پایش کاربران در دیتابیس محلی ذخیره می‌شه تا هیچ تغییری از دست نره.

معماری سیستم

[User Telegram Command] --> [Pyrogram Bot / Userbot Client]
                                         |
                                         v
                         [Scraper Manager: Digikala / Universal]
                                         |
                                         v
                                [SQLite Price History]
                                         |
                            (Async Monitoring Loop)
                                         |
                                         v
                      [Chart Generator: Matplotlib Dark-Mode]
                                         |
                                         v
                      [Telegram Photo Alert + Chart & Buttons]

نصب و راه‌اندازی

۱. پیش‌نیازها

  • پایتون 3.12 یا بالاتر (یا Docker)
  • مشخصات API تلگرام (API_ID و API_HASH) از my.telegram.org
  • توکن ربات از @BotFather (یا شماره تلفن برای اجرای حالت Userbot)

۲. تنظیمات اولیه

پروژه رو دانلود کنید و فایل .env رو بسازید:

git clone https://github.com/mmdverse/telegram-price-tracker.git
cd telegram-price-tracker
cp .env.example .env

فایل .env رو ویرایش کنید:

TELEGRAM_API_ID=12345678
TELEGRAM_API_HASH=your_telegram_api_hash
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
CHECK_INTERVAL_MINUTES=15
DATABASE_PATH=data/tracker.db
LOG_LEVEL=INFO

۳. اجرا روی سیستم (بدون داکر)

# نصب وابستگی‌ها
make install

# اجرای تست‌های خودکار
make test

# اجرای ربات
make run

۴. اجرا با داکر (Docker Compose)

docker-compose up -d --build

دستورات ربات

دستور توضیح مثال
/track <url> [target_price] اضافه کردن کالای جدید برای رصد (قیمت هدف اختیاری است) /track https://www.digikala.com/... 15000000
/untrack <id> توقف رصد و حذف کالا از لیست /untrack 1
/list مشاهده لیست تمام کالاهای تحت رصد شما با قیمت فعلی /list
/chart <id> دریافت عکس نمودار تغییرات قیمت کالا /chart 1
/check <id> بررسی فوری و لحظه‌ای قیمت از فروشگاه /check 1
/stats نمایش آمار کلی محصولات و پایش‌ها /stats

تست‌ها

برای اجرای تست‌های خودکار برنامه (مبدل اعداد، اسکریپرها و موتور تولید نمودار):

pytest -v

ارتباط با ما

این پروژه آزاد و متن‌باز است و برای استفاده در پروژه‌های شخصی یا تجاری محدودیتی ندارد.

  • Made ❤️ by Mohammad
  • Telegram: @llllxyz

About

🛒 Telegram E-Commerce Price Tracker & Alert Engine - Asynchronous web scraper for Digikala, Torob & stores with dark-mode price history chart alerts. | ربات رصد قیمت و نمودار تلگرام | Made ❤️ by Mohammad (@llllxyz)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages