یک ربات هوشمند برای رصد دورهای قیمت کالاها از دیجیکالا، ترب، آمازون و فروشگاههای اینترنتی؛ با قابلیت ارسال هشدار خودکار همراه با نمودار تصویری تغییرات قیمت در تلگرام.
Made ❤️ by Mohammad (@llllxyz)
دنبال کردن قیمت محصولات مورد نظر توی فروشگاههای آنلاین (برای خرید در بهترین زمان یا مانیتورینگ رقبا) کار خستهکنندهایه. قیمتها مدام تغییر میکنن و چک کردن روزانهی دهها لینک مختلف وقت زیادی میگیره.
از طرفی اکثر اسکریپتهای موجود فقط روی یک سایت خاص کار میکنن یا هشدار گرافیکی ندارن و فقط یک متن ساده میفرستن.
این پروژه بر پایه Pyrogram و یک موتور وباسکریپینگ ناهمگام (httpx + BeautifulSoup) کار میکنه و ویژگیهای زیر رو داره:
- پشتیبانی اختصاصی از دیجیکالا و سایتهای عمومی: اگر لینک دیجیکالا بدید، مستقیماً از وبسرویس و متادیتای محصول قیمت دقیق فروشنده رو درمیاره؛ اگر لینک هر فروشگاه دیگهای بدید، با موتور عمومی (Universal Scraper) تگهای OpenGraph، متادیتای JSON-LD و الگوهای قیمتی رو استخراج میکنه.
- رصد پسزمینه خودکار (Async Scheduler): ربات طبق زمانبندی (مثلاً هر ۱۵ دقیقه) تمام لینکهای فعال رو چک میکنه.
- تولید نمودار تصویری (Dark-Mode Chart): به محض اینکه قیمت کاهش پیدا کنه یا به مبلغ هدف شما برسه، ربات با استفاده از
matplotlibیک نمودار تصویری شیک از تاریخچه تغییرات قیمت کالا تولید میکنه و همراه با لینک خرید براتون میفرسته. - دیتابیس 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 rundocker-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