xdragxt commited on
Commit
fd6063f
Β·
verified Β·
1 Parent(s): 31ac242

Update jarvis.py

Browse files
Files changed (1) hide show
  1. jarvis.py +29 -5
jarvis.py CHANGED
@@ -14,6 +14,7 @@ API_ID = os.environ.get("API_ID") # Replace with your API ID
14
  API_HASH = os.environ.get("API_HASH") # Replace with your API HASH
15
  BOT_TOKEN = os.environ.get("BOT_TOKEN")
16
  GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY")
 
17
  if not BOT_TOKEN:
18
  raise RuntimeError("BOT_TOKEN environment variable not set!")
19
  if not GEMINI_API_KEY:
@@ -123,7 +124,10 @@ async def restart_bot(chat_id):
123
  @bot.on_message(filters.private & filters.text)
124
  async def jarvis_trigger(client, message):
125
  # Owner-only access control
126
- if message.from_user.id != 7361622601:
 
 
 
127
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
128
 
129
  text = message.text.strip()
@@ -201,7 +205,9 @@ async def jarvis_trigger(client, message):
201
  f"2. Include commands using @bot.on_message(filters.command(...))\n"
202
  f"3. Import only what you need from pyrogram\n and use 'from ..t1 import bot'\n 'try: from ..t1 import bot except (ImportError, ValueError): \n from __main__ import bot' \n"
203
  f"4. Don't create a new Client instance\n"
204
- f"5. Make functions async when using bot methods\n\n"
 
 
205
  f"Output ONLY Python code, no explanations or markdown."
206
  )
207
  if attempt > 1 and last_error is not None:
@@ -214,6 +220,24 @@ async def jarvis_trigger(client, message):
214
  code = code.replace('asyncio.PIPE', 'subprocess.PIPE')
215
  # Add more auto-fixes as needed
216
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  # === LINTER/STATIC CHECKER ===
218
  with open('tmp_lint_module.py', 'w', encoding='utf-8') as tmpf:
219
  tmpf.write(code)
@@ -325,7 +349,7 @@ async def jarvis_trigger(client, message):
325
  @bot.on_message(filters.command("modules") & filters.private)
326
  async def list_modules(client, message):
327
  # Owner-only access control
328
- if message.from_user.id != 7361622601:
329
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
330
 
331
  modules = [f for f in os.listdir("modules") if f.endswith(".py")]
@@ -339,7 +363,7 @@ async def list_modules(client, message):
339
  @bot.on_message(filters.command("delete") & filters.private)
340
  async def delete_module(client, message):
341
  # Owner-only access control
342
- if message.from_user.id != 7361622601:
343
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
344
 
345
  if len(message.command) < 2:
@@ -358,7 +382,7 @@ async def delete_module(client, message):
358
  @bot.on_message(filters.regex(r"(?i)what( can)? i do\??") & filters.private)
359
  async def what_to_do(_, message):
360
  # Owner-only access control
361
- if message.from_user.id != 7361622601:
362
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
363
 
364
  await message.reply(
 
14
  API_HASH = os.environ.get("API_HASH") # Replace with your API HASH
15
  BOT_TOKEN = os.environ.get("BOT_TOKEN")
16
  GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY")
17
+ OWNER_ID = int(os.environ.get("OWNER_ID", "7361622601")) # Owner user ID
18
  if not BOT_TOKEN:
19
  raise RuntimeError("BOT_TOKEN environment variable not set!")
20
  if not GEMINI_API_KEY:
 
124
  @bot.on_message(filters.private & filters.text)
125
  async def jarvis_trigger(client, message):
126
  # Owner-only access control
127
+ print(f"DEBUG: User ID: {message.from_user.id}, Expected: {OWNER_ID}")
128
+ print(f"DEBUG: User: {message.from_user.first_name} {message.from_user.last_name}")
129
+ if message.from_user.id != OWNER_ID:
130
+ print(f"DEBUG: Access denied for user {message.from_user.id}")
131
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
132
 
133
  text = message.text.strip()
 
205
  f"2. Include commands using @bot.on_message(filters.command(...))\n"
206
  f"3. Import only what you need from pyrogram\n and use 'from ..t1 import bot'\n 'try: from ..t1 import bot except (ImportError, ValueError): \n from __main__ import bot' \n"
207
  f"4. Don't create a new Client instance\n"
208
+ f"5. Make functions async when using bot methods\n"
209
+ f"6. ONLY create the specific commands requested - do NOT add standard commands like /start, /help, /about unless explicitly asked for\n"
210
+ f"7. If the user asks for '/bash', only create the /bash command, not additional commands\n\n"
211
  f"Output ONLY Python code, no explanations or markdown."
212
  )
213
  if attempt > 1 and last_error is not None:
 
220
  code = code.replace('asyncio.PIPE', 'subprocess.PIPE')
221
  # Add more auto-fixes as needed
222
 
223
+ # === REMOVE UNWANTED STANDARD COMMANDS ===
224
+ # Only keep commands that were explicitly requested
225
+ import re
226
+ requested_commands = []
227
+ # Extract commands mentioned in the description
228
+ cmd_matches = re.findall(r'/(\w+)', description.lower())
229
+ if cmd_matches:
230
+ requested_commands = [f'/{cmd}' for cmd in cmd_matches]
231
+
232
+ # If specific commands were requested, remove unwanted standard commands
233
+ if requested_commands:
234
+ unwanted_commands = ['/start', '/help', '/about', '/info']
235
+ for unwanted in unwanted_commands:
236
+ if unwanted not in requested_commands:
237
+ # Remove the entire function/handler for unwanted commands
238
+ pattern = rf'@bot\.on_message\(filters\.command\(["\']{unwanted[1:]}["\']\)\).*?(?=@bot\.on_message|$)'
239
+ code = re.sub(pattern, '', code, flags=re.DOTALL)
240
+
241
  # === LINTER/STATIC CHECKER ===
242
  with open('tmp_lint_module.py', 'w', encoding='utf-8') as tmpf:
243
  tmpf.write(code)
 
349
  @bot.on_message(filters.command("modules") & filters.private)
350
  async def list_modules(client, message):
351
  # Owner-only access control
352
+ if message.from_user.id != OWNER_ID:
353
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
354
 
355
  modules = [f for f in os.listdir("modules") if f.endswith(".py")]
 
363
  @bot.on_message(filters.command("delete") & filters.private)
364
  async def delete_module(client, message):
365
  # Owner-only access control
366
+ if message.from_user.id != OWNER_ID:
367
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
368
 
369
  if len(message.command) < 2:
 
382
  @bot.on_message(filters.regex(r"(?i)what( can)? i do\??") & filters.private)
383
  async def what_to_do(_, message):
384
  # Owner-only access control
385
+ if message.from_user.id != OWNER_ID:
386
  return await message.reply("❌ Access denied. Only the owner can use this bot.")
387
 
388
  await message.reply(