Skydata001 commited on
Commit
28520ff
·
verified ·
1 Parent(s): b22819e

Update bot.py

Browse files
Files changed (1) hide show
  1. bot.py +31 -11
bot.py CHANGED
@@ -7,11 +7,15 @@ import random
7
  import os
8
  from datetime import datetime
9
 
10
- # --- الإعدادات الأساسية (الثوابت) ---
 
 
11
  TARGET_GUILD_ID = 1463693244897693779 # أيدي السيرفر المسموح
12
  OWNER_ROLE_ID = 1492516779598155877 # أيدي رتبة المالك للتحكم
13
 
14
- # --- الأذكار والتذكيرات (القائمة الكاملة بدون اختصار) ---
 
 
15
  REMINDERS = [
16
  "🌸 سبحان الله وبحمده، سبحان الله العظيم",
17
  "✨ اللهم صل وسلم على نبينا محمد",
@@ -113,7 +117,9 @@ REMINDERS = [
113
  "📿 اللهم اجعلنا من الصابرين المحتسبين"
114
  ]
115
 
116
- # --- قائمة 30 قارئ (بدون اختصار) ---
 
 
117
  RECITERS = [
118
  {"name": "إذاعة تلاوات منوعة", "desc": "بث مباشر لتلاوات مختارة", "url": "https://qurango.net/radio/tarateel"},
119
  {"name": "عبدالباسط عبدالصمد", "desc": "تلاوة مجودة بصوت خاشع", "url": "https://qurango.net/radio/abdulbasit_abdulsamad_mjawwad"},
@@ -231,7 +237,6 @@ class ControlPanelView(View):
231
  await interaction.response.send_message(f"⏮️ تم الرجوع إلى: {RECITERS[current_reciter_index]['name']}", ephemeral=True)
232
  await log_event(interaction.guild, f"⏮️ **{interaction.user.name}** رجع للقارئ: {RECITERS[current_reciter_index]['name']}")
233
 
234
-
235
  class QuranBot(commands.Bot):
236
  def __init__(self):
237
  intents = discord.Intents.default()
@@ -252,7 +257,6 @@ bot = QuranBot()
252
  # دوال مساعدة والحماية
253
  # =======================================================
254
 
255
- # دالة لتسجيل الأحداث (Logs) في القناة المخصصة
256
  async def log_event(guild: discord.Guild, message: str):
257
  log_channel = discord.utils.get(guild.text_channels, name="📜-سجلات-البوت")
258
  time_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@@ -262,7 +266,6 @@ async def log_event(guild: discord.Guild, message: str):
262
  except: pass
263
  print(f"[{time_now}] {message}")
264
 
265
- # دالة للتحقق من الرتبة وأن الأمر يعمل في غرفة التحكم فقط
266
  def is_owner_and_in_control():
267
  async def predicate(interaction: discord.Interaction):
268
  if not interaction.guild:
@@ -295,16 +298,32 @@ async def play_current_reciter(vc: discord.VoiceClient):
295
 
296
  @bot.event
297
  async def on_ready():
298
- print(f"🤖 البوت {bot.user} يعمل الآن.")
 
 
 
 
299
  for guild in bot.guilds:
300
  if guild.id != TARGET_GUILD_ID:
301
  print(f"👢 تم مغادرة سيرفر غريب: {guild.name}")
302
  await guild.leave()
 
 
 
 
303
 
304
- target_guild = bot.get_guild(TARGET_GUILD_ID)
305
- if target_guild:
306
- await check_and_create_channels(target_guild)
307
- await log_event(target_guild, "🚀 **تم تشغيل البوت وهو جاهز للعمل.**")
 
 
 
 
 
 
 
 
308
 
309
  async def check_and_create_channels(guild):
310
  category_name = "إذاعة القرآن الكريم"
@@ -455,3 +474,4 @@ except Exception: pass
455
  if __name__ == "__main__":
456
  TOKEN = os.environ.get("DISCORD_TOKEN")
457
  if TOKEN: bot.run(TOKEN)
 
 
7
  import os
8
  from datetime import datetime
9
 
10
+ # =======================================================
11
+ # الإعدادات الأساسية (الثوابت)
12
+ # =======================================================
13
  TARGET_GUILD_ID = 1463693244897693779 # أيدي السيرفر المسموح
14
  OWNER_ROLE_ID = 1492516779598155877 # أيدي رتبة المالك للتحكم
15
 
16
+ # =======================================================
17
+ # الأذكار والتذكيرات (القائمة الكاملة)
18
+ # =======================================================
19
  REMINDERS = [
20
  "🌸 سبحان الله وبحمده، سبحان الله العظيم",
21
  "✨ اللهم صل وسلم على نبينا محمد",
 
117
  "📿 اللهم اجعلنا من الصابرين المحتسبين"
118
  ]
119
 
120
+ # =======================================================
121
+ # قائمة 30 قارئ (بدون اختصار)
122
+ # =======================================================
123
  RECITERS = [
124
  {"name": "إذاعة تلاوات منوعة", "desc": "بث مباشر لتلاوات مختارة", "url": "https://qurango.net/radio/tarateel"},
125
  {"name": "عبدالباسط عبدالصمد", "desc": "تلاوة مجودة بصوت خاشع", "url": "https://qurango.net/radio/abdulbasit_abdulsamad_mjawwad"},
 
237
  await interaction.response.send_message(f"⏮️ تم الرجوع إلى: {RECITERS[current_reciter_index]['name']}", ephemeral=True)
238
  await log_event(interaction.guild, f"⏮️ **{interaction.user.name}** رجع للقارئ: {RECITERS[current_reciter_index]['name']}")
239
 
 
240
  class QuranBot(commands.Bot):
241
  def __init__(self):
242
  intents = discord.Intents.default()
 
257
  # دوال مساعدة والحماية
258
  # =======================================================
259
 
 
260
  async def log_event(guild: discord.Guild, message: str):
261
  log_channel = discord.utils.get(guild.text_channels, name="📜-سجلات-البوت")
262
  time_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
 
266
  except: pass
267
  print(f"[{time_now}] {message}")
268
 
 
269
  def is_owner_and_in_control():
270
  async def predicate(interaction: discord.Interaction):
271
  if not interaction.guild:
 
298
 
299
  @bot.event
300
  async def on_ready():
301
+ # 1. جعل البوت يظهر كـ "متصل" بشكل دائم مع حالة (Watching...)
302
+ await bot.change_presence(status=discord.Status.online, activity=discord.Activity(type=discord.ActivityType.watching, name="جاهز للعمل وينتظر السيرفر..."))
303
+ print(f"🤖 البوت {bot.user} متصل بشبكة ديسكورد بنجاح وهو الآن (Online).")
304
+
305
+ # 2. فحص السيرفرات التي يتواجد فيها حالياً عند التشغيل
306
  for guild in bot.guilds:
307
  if guild.id != TARGET_GUILD_ID:
308
  print(f"👢 تم مغادرة سيرفر غريب: {guild.name}")
309
  await guild.leave()
310
+ else:
311
+ # إذا وجد السيرفر الصحيح، يبدأ بتجهيز القنوات
312
+ await check_and_create_channels(guild)
313
+ await log_event(guild, "🚀 **تم إعادة تشغيل البوت وهو متصل الآن.**")
314
 
315
+ @bot.event
316
+ async def on_guild_join(guild):
317
+ # 3. هذا الحدث يعمل "فوراً" بمجرد إدخال البوت لأي سيرفر جديد
318
+ print(f"📥 البوت دخل سيرفر جديد: {guild.name} | الأيدي: {guild.id}")
319
+
320
+ if guild.id != TARGET_GUILD_ID:
321
+ print("❌ هذا ليس السيرفر المصرح له، جاري المغادرة...")
322
+ await guild.leave()
323
+ else:
324
+ print("✅ تم دخول السيرفر الصحيح! جاري تجهيز النظام...")
325
+ await check_and_create_channels(guild)
326
+ await log_event(guild, "🚀 **تم إضافة البوت للسيرفر بنجاح، القنوات جاهزة!**")
327
 
328
  async def check_and_create_channels(guild):
329
  category_name = "إذاعة القرآن الكريم"
 
474
  if __name__ == "__main__":
475
  TOKEN = os.environ.get("DISCORD_TOKEN")
476
  if TOKEN: bot.run(TOKEN)
477
+ else: print("❌ التوكن مفقود! يرجى التأكد من وضعه في المتغيرات البيئية (Secrets).")