Skip to content

thealirezadev/HooshCode-Bot-Suite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 HooshCode Bot Suite | مجموعه ربات‌های هوش کد

مجموعه‌ای حرفه‌ای از ۶ ربات کاربردی برای پیام‌رسان بله، با معماری یکپارچه، دیتابیس مشترک و پنل مدیریت متمرکز

Python Bale Messenger SQLite License: MIT

معرفیمعماریربات‌هانصب و اجراساختار پروژه


📖 معرفی

HooshCode یک اکوسیستم متشکل از ۶ ربات تلفیقی روی پیام‌رسان بله است که هرکدام یک نیاز مشخص کاربران فارسی‌زبان (به‌ویژه برنامه‌نویسان) را پاسخ می‌دهند؛ از تبدیل فایل و OCR گرفته تا ساخت QR Code، تولید پسورد امن، اخبار/قیمت لحظه‌ای بازار و چت با هوش مصنوعی.

نکته‌ی متمایزکننده‌ی این پروژه نسبت به مجموعه‌ربات‌های معمول، یکپارچگی معماری است:

  • 🗄️ همه‌ی ربات‌ها به یک دیتابیس SQLite مشترک وصل‌اند (نه ۵ فایل دیتابیس پراکنده)
  • 🛠️ یک پنل مدیریت متمرکز در ربات اصلی، مدیریت محتوا/کاربران/تیکت‌ها/نظرسنجی همه‌ی ربات‌ها را در یک‌جا ممکن می‌کند
  • ♻️ منطق مشترک (بررسی عضویت کانال، نظرسنجی، تیکت پشتیبانی، کلاینت API بله) در ماژول‌های قابل‌استفاده‌ی مجدد (utils/) قرار دارد تا کد در ۶ ربات تکرار نشود

🧩 ربات‌های مجموعه

ربات شرح قابلیت‌های کلیدی
🤖 هوش کد (اصلی) نقطه‌ی ورود مجموعه + پنل مدیریت دریافت آیدی عددی، راهنمای نصب پکیج پایتون، پنل ادمین یکپارچه
📄 هوش کد | تبدیل تبدیل فایل عکس↔PDF، OCR فارسی/انگلیسی محلی، رمزگذاری اختیاری PDF خروجی
🔐 هوش کد | رمز تولید پسورد پسورد تصادفی امن، PIN، پسورد WiFi/خوانا، ذخیره‌ی پسوردهای شخصی
📱 هوش کد | QR ساخت QR Code ۳ استایل + ۸ رنگ، QR وای‌فای/کارت‌ویزیت، سیستم دعوت دوستان
📰 هوش کد | اخبار اطلاع‌رسانی در کانال اخبار ۷ حوزه از RSS، گزارش لحظه‌ای بازار با سنجاق خودکار، نمودار هفتگی روند قیمت
💬 هوش کد | چت دستیار هوش مصنوعی مکالمه‌ی روزمره + سوئیچ خودکار به مدل کدنویسی، حافظه‌ی مکالمه پایدار

✨ قابلیت‌های مشترک بین ربات‌ها

تمام ربات‌ها (به‌جز ربات اخبار که در کانال فعالیت می‌کند) این سه قابلیت مشترک را دارند:

⭐ نظرسنجی پس از هر خدمت

بعد از هر عملیات (ارسال سورس کد، تبدیل PDF، ساخت QR، تولید پسورد، پاسخ چت) سه دکمه‌ی «👍 راضی بودم / 😐 معمولی بود / 👎 راضی نبودم» نمایش داده می‌شود. ادمین در پنل مرکزی، گزارش خلاصه (تعداد و درصد رضایت) به تفکیک هر ربات را می‌بیند.

🆘 پشتیبانی داخل ربات

کاربر با زدن دکمه‌ی «ارتباط با پشتیبانی»، پیامش مستقیماً به‌صورت تیکت در دیتابیس مشترک ثبت و به ادمین اطلاع‌رسانی می‌شود. ادمین از همان پنل مرکزی پاسخ می‌دهد و ربات به‌صورت خودکار پاسخ را از همان رباتی که کاربر در آن پیام داده بود برایش ارسال می‌کند.

🔒 عضویت اجباری در کانال

بررسی یکپارچه‌ی عضویت کاربر در کانال‌های تعیین‌شده، با کیبورد آماده‌ی «عضویت + بررسی مجدد».


🏗️ معماری پروژه

                         ┌─────────────────────┐
                         │   فایل .env (محرمانه) │
                         └──────────┬───────────┘
                                    │
                         ┌──────────▼───────────┐
                         │   config/settings.py  │
                         └──────────┬───────────┘
                                    │
        ┌───────────────┬──────────┼──────────┬───────────────┐
        │                │          │          │               │
   ┌────▼────┐     ┌─────▼────┐ ┌───▼───┐  ┌───▼────┐    ┌─────▼─────┐
   │main_bot │     │convert_bot│ │pass_bot│  │ qr_bot │    │ chat_bot  │
   │ + پنل   │     │  + OCR    │ │        │  │        │    │ + حافظه   │
   │ ادمین   │     │  + رمز PDF│ │        │  │        │    │ + سوئیچ مدل│
   └────┬────┘     └─────┬────┘ └───┬────┘  └───┬────┘    └─────┬─────┘
        │                │          │           │                │
        └────────────────┴──────────┴───────────┴────────────────┘
                                    │
                         ┌──────────▼───────────┐
                         │  database/db.py        │
                         │  (SQLite مشترک یکپارچه) │
                         └────────────────────────┘

                         ┌────────────────────────┐
                         │       news_bot          │  (مستقل - پست در کانال)
                         │  RSS + بازار + نمودار   │
                         └────────────────────────┘

چرا این معماری؟

ویژگی توضیح
دیتابیس مشترک اطلاعات کاربر یک‌بار ثبت می‌شود و در هر ۵ ربات در دسترس است؛ آماری مثل «این کاربر چند ربات را امتحان کرده» به‌سادگی قابل استخراج است.
پنل ادمین متمرکز دیگر نیازی به /admin جدا در هر ربات نیست؛ همه‌چیز از یک‌جا (ربات اصلی) مدیریت می‌شود.
کلاینت API مشترک (utils/bale_client.py) فراخوانی‌های تکراری به API بله (ارسال پیام، عکس، فایل، بررسی عضویت) یک‌بار نوشته و در ۶ ربات استفاده می‌شود.
پراسس‌های مجزا (run_all.py) هر ربات در پراسس خودش اجرا می‌شود؛ کرش یک ربات، بقیه را قطع نمی‌کند.

🧠 ربات چت (قابلیت هوش مصنوعی)

  • مدل پیش‌فرض برای مکالمه‌ی روزمره: meta-llama/llama-3.3-70b-instruct:free
  • اگر پیام کاربر شبیه درخواست کدنویسی باشد (کلیدواژه‌هایی مثل «کد بنویس»، نام زبان‌های برنامه‌نویسی، عبارات خطا)، به‌صورت خودکار و موقت به مدل qwen/qwen3-coder:free سوئیچ می‌کند.
  • کاربر همچنین می‌تواند از منوی «🔄 تغییر مدل» به‌صورت دستی مدل دلخواهش (از میان چند مدل رایگان OpenRouter) را انتخاب کند.
  • حافظه‌ی مکالمه در دیتابیس مشترک ذخیره می‌شود (نه فقط در RAM)، یعنی با ری‌استارت سرور هم از بین نمی‌رود. دستور /clear یا دکمه‌ی «پاک کردن حافظه» برای شروع گفتگوی تازه.
  • ارتباط با OpenRouter از طریق SDK رسمی openai، بدون قرار گرفتن هیچ کلید API در کد (همه از .env).

🔍 ربات تبدیل (OCR و رمزگذاری PDF)

  • OCR محلی و رایگان با easyocr که از فارسی و انگلیسی به‌خوبی پشتیبانی می‌کند و نیازی به سرویس ابری (و کلید API) ندارد.
  • هنگام ساخت PDF از عکس‌ها، از کاربر پرسیده می‌شود که آیا می‌خواهد روی فایل خروجی رمز بگذارد؛ با ارسال رمز، PDF با pypdf رمزگذاری می‌شود یا با دستور /skip این مرحله رد می‌شود.

📈 ربات اخبار (نمودار هفتگی)

علاوه‌بر گزارش روزانه‌ی بازار (طلا/ارز/کریپتو) که هر روز ساعت مشخص با سنجاق خودکار در کانال منتشر می‌شود، این نسخه هر ۷ روز یک‌بار یک نمودار روند قیمت هفته‌ی اخیر (دلار، طلا، بیت‌کوین) با matplotlib رسم و در کانال ارسال می‌کند.


⚙️ نصب و اجرا

پیش‌نیازها

۱. کلون پروژه و نصب وابستگی‌ها

git clone https://github.com/yourusername/hooshcode-bot-suite.git
cd hooshcode-bot-suite
python -m venv venv
source venv/bin/activate   # ویندوز: venv\Scripts\activate
pip install -r requirements.txt

۲. تنظیم متغیرهای محیطی

cp .env.example .env

سپس فایل .env را باز کرده و مقادیر واقعی (توکن‌ها، آیدی ادمین، کلید OpenRouter و ...) را وارد کنید. این فایل هرگز نباید commit شود (در .gitignore قرار دارد).

۳. اجرای همه‌ی ربات‌ها

python run_all.py

یا اجرای فقط چند ربات خاص:

python run_all.py main convert chat

۴. اجرای جداگانه‌ی یک ربات (مثلاً برای دیباگ)

python -m bots.main_bot.bot
python -m bots.chat_bot.bot

📁 ساختار پروژه

hooshcode/
├── bots/
│   ├── main_bot/         # ربات اصلی + پنل مدیریت یکپارچه
│   │   ├── bot.py
│   │   ├── admin_panel.py
│   │   ├── bot_clients.py
│   │   └── keyboards.py
│   ├── convert_bot/      # تبدیل عکس↔PDF + OCR + رمزگذاری
│   ├── pass_bot/         # تولید پسورد
│   ├── qr_bot/           # ساخت QR Code
│   ├── news_bot/         # اخبار + گزارش بازار + نمودار هفتگی
│   └── chat_bot/         # چت با هوش مصنوعی + حافظه
├── database/
│   └── db.py             # تمام توابع دیتابیس مشترک (SQLite)
├── utils/
│   ├── bale_client.py    # کلاینت مشترک API بله
│   ├── membership.py     # بررسی عضویت کانال
│   ├── feedback.py       # سیستم نظرسنجی
│   ├── support.py        # سیستم تیکت پشتیبانی
│   ├── ai_client.py      # کلاینت OpenRouter
│   ├── ocr.py             # استخراج متن از عکس
│   ├── pdf_tools.py       # رمزگذاری PDF
│   └── chart.py           # رسم نمودار هفتگی بازار
├── config/
│   └── settings.py        # بارگذاری متمرکز تنظیمات از .env
├── run_all.py              # اجراکننده‌ی همه‌ی ربات‌ها
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md

🔐 امنیت

  • تمام توکن‌ها، کلیدهای API و آیدی‌های حساس فقط از فایل .env خوانده می‌شوند و هیچ‌جا در کد hardcode نشده‌اند.
  • .gitignore به‌طور صریح فایل‌های .env، دیتابیس‌ها و داده‌های اجرایی را از ورود به ریپازیتوری مسدود می‌کند.
  • رمزگذاری PDF با کتابخانه‌ی استاندارد pypdf انجام می‌شود؛ پسورد کاربر در سرور ذخیره نمی‌شود.

🛣️ نقشه‌ی راه (Roadmap)

  • Docker Compose برای اجرای یک‌مرحله‌ای همه‌ی ربات‌ها
  • داشبورد وب برای پنل مدیریت (به‌جای فقط داخل ربات)
  • افزودن صف پیام (Redis/RabbitMQ) برای مقیاس‌پذیری بیشتر
  • تست‌های واحد (pytest) برای ماژول‌های utils/ و database/

📜 لایسنس

این پروژه تحت مجوز MIT منتشر شده است.


ساخته‌شده با ❤️ روی پیام‌رسان بله

About

🤖 Professional multi-bot ecosystem for Bale Messenger featuring AI chat, OCR, QR generation, PDF conversion, password management, news automation, and centralized administration.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages