Back to Code Samples

ربات دستیار شخصی تلگرام (Python )

July 12, 2025
Python
13 lines of code
Beginner

🧠 Mood-Based Daily Planner Bot این ربات تلگرام به کاربران کمک می‌کند تا بر اساس حالت روحی‌شان (مثل "خوب"، "خسته" یا "بد") برنامه‌ای روزانه دریافت کنند. همچنین برای روز جمعه یک برنامه ویژه آخر هفته ارائه می‌دهد. 🚀 ویژگی‌ها - دریافت حالت روحی کاربر از طریق گفتگو - ارائه برنامه روزانه متناسب با روحیه - برنامه خاص برای روز جمعه - امکان لغو گفتگو با دستور /cancel

telegram python bot
bot.py.python
Python
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes, ConversationHandler
from datetime import datetime

# مراحل گفتگو
ASK_MOOD = range(1)

# برنامه‌ها بر اساس حالت روحی
DAILY_PLANS = {
    "good": [
        "🛌 7:00 - بیدار شدن پرانرژی",
        "🏃‍♂️ 7:15 - دویدن صبحگاهی",
        "☕ 7:45 - صبحانه سالم",
        "💻 8:30 - شروع کار با تمرکز",
        "🍽 13:00 - ناهار",
        "🚶‍♂️ 17:00 - پیاده‌روی عصر",
        "📚 18:00 - مطالعه یا یادگیری",
        "🎉 21:00 - وقت آزاد و سرگرمی",
        "😴 23:00 - خواب"
    ],
    "tired": [
        "🛌 8:00 - بیدار شدن آرام",
        "☕ 8:15 - قهوه یا چای",
        "📖 9:00 - کمی مطالعه سبک",
        "💻 10:00 - انجام کارهای ضروری",
        "🍽 13:30 - ناهار",
        "🛋 15:00 - استراحت",
        "🎧 17:00 - گوش دادن به موسیقی",
        "📺 20:00 - دیدن فیلم یا سریال",
        "😴 22:30 - خواب"
    ]
}

# برنامه مخصوص روزهای جمعه
FRIDAY_PLAN = [
    "🛌 9:00 - بیدار شدن",
    "🥞 9:30 - صبحانه با خانواده",
    "🏞 11:00 - گردش یا طبیعت‌گردی",
    "🍽 14:00 - ناهار",
    "😌 17:00 - استراحت",
    "🎬 20:00 - فیلم",
    "😴 23:30 - خواب"
]

# شروع گفتگو
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("سلام! امروز حالت چطوره؟ (مثلاً خوب، خسته، بد)")
    return ASK_MOOD

# دریافت حالت و نمایش برنامه
async def ask_mood(update: Update, context: ContextTypes.DEFAULT_TYPE):
    mood = update.message.text.strip().lower()
    day_name = datetime.now().strftime("%A")  # نام روز هفته به انگلیسی

    # اگر جمعه باشد
    if day_name == "Friday":
        await update.message.reply_text("امروز جمعه‌ست! برنامه ویژه آخر هفته:")
        await update.message.reply_text("\n".join(FRIDAY_PLAN))
    else:
        if "خوب" in mood:
            plan = DAILY_PLANS["good"]
        elif "خسته" in mood or "بد" in mood:
            plan = DAILY_PLANS["tired"]
        else:
            plan = DAILY_PLANS["good"]

        await update.message.reply_text("این برنامه امروز پیشنهادی برای تو:")
        await update.message.reply_text("\n".join(plan))

    return ConversationHandler.END

# لغو گفتگو
async def cancel(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("گفتگو لغو شد ❌")
    return ConversationHandler.END

if __name__ == "__main__":
    TOKEN = "توکن_ربات_اینجا"  # اینجا توکن ربات خودت رو بذار

    app = ApplicationBuilder().token(TOKEN).build()

    conv_handler = ConversationHandler(
        entry_points=[CommandHandler("start", start)],
        states={
            ASK_MOOD: [MessageHandler(filters.TEXT & ~filters.COMMAND, ask_mood)],
        },
        fallbacks=[CommandHandler("cancel", cancel)],
    )

    app.add_handler(conv_handler)

    print("ربات روشن شد ✅")
    app.run_polling()

Code Explanation

*درصورتی که متن فارسی کد ناخوانا و غیر قابل فهم بود زبان سایت را به انگلیسی(EN) تغییر دهید.
این ربات تلگرام با استفاده از ConversationHandler از کاربر حالت روحی‌اش را می‌پرسد (مثل "خوب"، "خسته"، "بد") و بر اساس آن برنامه‌ای روزانه پیشنهاد می‌دهد. اگر روز جمعه باشد، برنامه‌ای ویژه آخر هفته نمایش داده می‌شود.
- start: آغاز گفتگو و پرسش از حالت روحی
- ask_mood: تحلیل حالت روحی و نمایش برنامه مناسب
- cancel: لغو گفتگو
- DAILY_PLANS: برنامه‌های روزانه بر اساس روحیه
- FRIDAY_PLAN: برنامه خاص برای جمعه

How to Use

برای استفاده از این ربات تلگرامی:
- ابتدا کتابخانه python-telegram-bot را نصب کن:
pip install python-telegram-bot --upgrade
- توکن ربات خود را از BotFather دریافت کرده و در خط زیر جایگزین کن:
TOKEN = "توکن_ربات_اینجا"
- فایل را اجرا کن:
python bot.py
- در تلگرام دستور /start را ارسال کن تا گفتگو آغاز شود.
- در هر زمان می‌توانی با دستور /cancel گفتگو را لغو کنی.

If you have questions about this code or need help, I'd be happy to assist you.

Contact Me