fairaimen2/FguftgfghujzfbootbotbotPublic · Bot Template
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
commands/star.js
javascript · 250 lines
1/**#command2name: star3answer: اهلا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()