Parse markdown for .sh
This commit is contained in:
		
							parent
							
								
									0f33b4b114
								
							
						
					
					
						commit
						25e23ffe60
					
				| 
						 | 
				
			
			@ -5,12 +5,16 @@ from io import BytesIO
 | 
			
		|||
from pyrogram import Client, filters
 | 
			
		||||
from .. import config, help_dict, log_errors, public_log_errors
 | 
			
		||||
 | 
			
		||||
@Client.on_message(~filters.sticker & ~filters.via_bot & ~filters.edited & filters.me & filters.regex('^(?:' + '|'.join(map(re.escape, config['config']['prefixes'])) + r')(?:(?:ba)?sh|shell|term(?:inal)?)\s+(.+)(?:\n([\s\S]+))?$'))
 | 
			
		||||
SHELL_REGEX = '^(?:' + '|'.join(map(re.escape, config['config']['prefixes'])) + r')(?:(?:ba)?sh|shell|term(?:inal)?)\s+(.+)(?:\n([\s\S]+))?$'
 | 
			
		||||
@Client.on_message(~filters.sticker & ~filters.via_bot & ~filters.edited & filters.me & filters.regex(SHELL_REGEX))
 | 
			
		||||
@log_errors
 | 
			
		||||
@public_log_errors
 | 
			
		||||
async def shell(client, message):
 | 
			
		||||
    command = message.matches[0].group(1)
 | 
			
		||||
    stdin = message.matches[0].group(2)
 | 
			
		||||
    match = re.match(SHELL_REGEX, message.text.markdown)
 | 
			
		||||
    if not match:
 | 
			
		||||
        return
 | 
			
		||||
    command = match.group(1)
 | 
			
		||||
    stdin = match.group(2)
 | 
			
		||||
    reply = await message.reply_text('Executing...')
 | 
			
		||||
    process = await asyncio.create_subprocess_shell(command, stdin=asyncio.subprocess.PIPE if stdin else None, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE)
 | 
			
		||||
    stdout, stderr = await process.communicate(stdin.encode() if stdin else None)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue