fairaimen2/FguftgfghujzfbootbotbotPublic · Bot Template

ProfileTelegram

AI911 appears to be a Telegram automation bot. Commands include /Start, /star, /start. Behavior is implemented in command handlers.

Utilityutility
3 commands0 envUpdated 23d agoCreated Oct 7, 2026
Back to folder

commands/00/_start.js

javascript · 250 lines

Raw
1/**#command2name: /start3answer: اهلا عزيزي4keyboard: العودة5parse_mode: markdown6aliases: 7allow_only_group: true8need_reply: true9is_web: 110#command**/11 12import json13import os14from telegram import Update15from telegram.ext import (16    Application,17    CommandHandler,18    MessageHandler,19    ConversationHandler,20    ContextTypes,21    filters,22)23 24TOKEN = "YOUR_BOT_TOKEN"25DATA_FILE = "patients.json"26 27NAME, PHONE, CASE = range(3)28 29 30def load_patients():31    if not os.path.exists(DATA_FILE):32        return []33    with open(DATA_FILE, "r", encoding="utf-8") as f:34        return json.load(f)35 36 37def save_patients(patients):38    with open(DATA_FILE, "w", encoding="utf-8") as f:39        json.dump(patients, f, ensure_ascii=False, indent=2)40 41 42async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):43    text = (44        "<b>🦷 نظام إدارة المرضى</b>\n\n"45        "/add - إضافة مريض\n"46        "/patients - عرض المرضى\n"47        "/search - البحث عن مريض\n"48        "/delete - حذف مريض\n"49        "/cancel - إلغاء العملية"50    )51 52    await update.message.reply_text(text, parse_mode="HTML")53 54 55async def add_patient(update: Update, context: ContextTypes.DEFAULT_TYPE):56    await update.message.reply_text(57        "أرسل اسم المريض:",58        parse_mode="HTML"59    )60    return NAME61 62 63async def get_name(update: Update, context: ContextTypes.DEFAULT_TYPE):64    context.user_data["name"] = update.message.text65    await update.message.reply_text("أرسل رقم الهاتف:")66    return PHONE67 68 69async def get_phone(update: Update, context: ContextTypes.DEFAULT_TYPE):70    context.user_data["phone"] = update.message.text71    await update.message.reply_text(72        "أرسل نوع الحالة:\nمثلاً: حشوة، تنظيف، RCT، تقويم..."73    )74    return CASE75 76 77async def get_case(update: Update, context: ContextTypes.DEFAULT_TYPE):78    patients = load_patients()79 80    patient = {81        "id": len(patients) + 1,82        "name": context.user_data["name"],83        "phone": context.user_data["phone"],84        "case": update.message.text,85    }86 87    patients.append(patient)88    save_patients(patients)89 90    await update.message.reply_text(91        f"✅ <b>تمت إضافة المريض</b>\n\n"92        f"الرقم: {patient['id']}\n"93        f"الاسم: {patient['name']}\n"94        f"الهاتف: {patient['phone']}\n"95        f"الحالة: {patient['case']}",96        parse_mode="HTML",97    )98 99    context.user_data.clear()100    return ConversationHandler.END101 102 103async def patients(update: Update, context: ContextTypes.DEFAULT_TYPE):104    patients = load_patients()105 106    if not patients:107        await update.message.reply_text("لا يوجد مرضى مسجلون حالياً.")108        return109 110    text = "<b>📋 قائمة المرضى</b>\n\n"111 112    for p in patients:113        text += (114            f"<b>#{p['id']} - {p['name']}</b>\n"115            f"📞 {p['phone']}\n"116            f"🦷 {p['case']}\n\n"117        )118 119    await update.message.reply_text(text, parse_mode="HTML")120 121 122async def search(update: Update, context: ContextTypes.DEFAULT_TYPE):123    await update.message.reply_text(124        "أرسل اسم المريض أو رقم الهاتف للبحث:"125    )126    context.user_data["searching"] = True127 128 129async def handle_search(update: Update, context: ContextTypes.DEFAULT_TYPE):130    if not context.user_data.get("searching"):131        return132 133    query = update.message.text.lower()134    patients = load_patients()135 136    results = [137        p for p in patients138        if query in p["name"].lower()139        or query in p["phone"].lower()140    ]141 142    if not results:143        await update.message.reply_text("❌ لم يتم العثور على المريض.")144    else:145        text = "<b>🔎 نتائج البحث:</b>\n\n"146 147        for p in results:148            text += (149                f"<b>#{p['id']} - {p['name']}</b>\n"150                f"📞 {p['phone']}\n"151                f"🦷 {p['case']}\n\n"152            )153 154        await update.message.reply_text(text, parse_mode="HTML")155 156    context.user_data["searching"] = False157 158 159async def delete_patient(update: Update, context: ContextTypes.DEFAULT_TYPE):160    await update.message.reply_text(161        "أرسل رقم المريض الذي تريد حذفه:"162    )163    context.user_data["deleting"] = True164 165 166async def handle_delete(update: Update, context: ContextTypes.DEFAULT_TYPE):167    if not context.user_data.get("deleting"):168        return169 170    try:171        patient_id = int(update.message.text)172    except ValueError:173        await update.message.reply_text("أرسل رقم المريض فقط.")174        return175 176    patients = load_patients()177 178    new_patients = [179        p for p in patients if p["id"] != patient_id180    ]181 182    if len(new_patients) == len(patients):183        await update.message.reply_text("❌ لا يوجد مريض بهذا الرقم.")184    else:185        save_patients(new_patients)186        await update.message.reply_text("✅ تم حذف المريض.")187 188    context.user_data["deleting"] = False189 190 191async def cancel(update: Update, context: ContextTypes.DEFAULT_TYPE):192    context.user_data.clear()193 194    await update.message.reply_text(195        "تم إلغاء العملية."196    )197 198    return ConversationHandler.END199 200 201def main():202    app = Application.builder().token(TOKEN).build()203 204    add_conversation = ConversationHandler(205        entry_points=[206            CommandHandler("add", add_patient)207        ],208        states={209            NAME: [210                MessageHandler(filters.TEXT & ~filters.COMMAND, get_name)211            ],212            PHONE: [213                MessageHandler(filters.TEXT & ~filters.COMMAND, get_phone)214            ],215            CASE: [216                MessageHandler(filters.TEXT & ~filters.COMMAND, get_case)217            ],218        },219        fallbacks=[220            CommandHandler("cancel", cancel)221        ],222    )223 224    app.add_handler(CommandHandler("start", start))225    app.add_handler(add_conversation)226 227    app.add_handler(CommandHandler("patients", patients))228    app.add_handler(CommandHandler("search", search))229    app.add_handler(CommandHandler("delete", delete_patient))230 231    app.add_handler(232        MessageHandler(233            filters.TEXT & ~filters.COMMAND,234            handle_search235        )236    )237 238    app.add_handler(239        MessageHandler(240            filters.TEXT & ~filters.COMMAND,241            handle_delete242        )243    )244 245    print("Bot is running...")246    app.run_polling()247 248 249if __name__ == "__main__":250    main()