11from utilities .color import * # import utilites
2- from utilities .screen_cleaner import clear # import utilites
32from core .main_completer import completer # completer import
4- from imp import reload # import reload function from imp module
5- from os import system
3+ import os
4+ from imp import reload
65from urllib .request import urlopen
76from urllib .error import URLError
87
98class interpreter (object ):
9+ def search_module (query ):
10+ import utilities .files
11+ from core .module_obtainer import obtainer
12+ reload (utilities .files )
13+ from utilities .files import count_subfolders_files
14+ print ('{:44}{:29}' .format ('\n Modules' ,'Description' ))
15+ print ('{:43}{:29}' .format ('-------' ,'-----------' ))
16+ count_subfolders_files ('modules' )
17+ unfiltered_result = []
18+ result = []
19+ for first_result in count_subfolders_files .result :
20+ for second_result in first_result :
21+ unfiltered_result .append ('' .join (second_result ))
22+ for final_result in unfiltered_result :
23+ if final_result .endswith ('.pyc' ) or final_result .startswith ('__init__' ) or not final_result .endswith ('.py' ):
24+ unfiltered_result .remove (final_result )
25+ for filt_result in unfiltered_result :
26+ result .append (filt_result .split ('.' )[0 ])
27+ try :
28+ for i in range (0 ,10 ):
29+ for root , dirs , files in os .walk ('modules' ):
30+ if query in root + result [i ]:
31+ if result [i ]+ '.py' in files :
32+ path = os .path .join (root , result [i ]+ '.py' )
33+ path = path .split ('/' )
34+ path_first_index = path [0 ]
35+ path .remove (path_first_index )
36+ path = '/' .join (path )
37+ if obtainer .description_obtainer (obtainer ,path .split ('.py' )[0 ]):
38+ print ('{:44}{:44}' .format (path .split ('.py' )[0 ],obtainer .info ['description' ]))
39+ except IndexError :
40+ pass
41+ except ImportError :
42+ pass
43+
44+ print ('' )
1045 def check_upgrade (self ):
1146 try :
1247 self .current_version = open ('core/version.txt' ,'r' ).read ()
@@ -23,39 +58,10 @@ def check_upgrade(self):
2358 pass
2459 def start_interpreter (self ):
2560 completer ()
26- try :
27- self .main_ask = input (underline ("PySploit" ) + " >> " ).split ()
28- if self .main_ask [0 ] == "clear" or self .main_ask [0 ] == "Clear" or self .main_ask [0 ] == "CLEAR" :
29- clear ()
30- elif self .main_ask [0 ] == "banner" or self .main_ask [0 ] == "Banner" or self .main_ask [0 ] == 'BANNER' :
31- Banner ()
32- elif self .main_ask [0 ] == 'exit' or self .main_ask [0 ] == "Exit" or self .main_ask [0 ] == 'close' or self .main_ask [0 ] == 'Close' :
33- exit (0 )
34- elif self .main_ask [0 ] == "use" or self .main_ask [0 ] == "Use" or self .main_ask [0 ] == "USE" :
35- from core .module_obtainer import obtainer
36- from core .module_interpreter import module_interpreter
37- try :
38- if obtainer .obtaining_info (obtainer , self .main_ask [1 ]):
39- while True :
40- module_interpreter (self .main_ask [1 ].split ('/' )[- 1 ], self .main_ask [1 ].split ('/' )[- 1 + 1 ],self .main_ask [1 ])
41- except IndexError :
42- print ('\n ' + red ('[!]' ) + green (' You' ) + ' should enter the module name\n ' )
43- elif self .main_ask [0 ] == 'restart' or self .main_ask [0 ] == 'Restart' or self .main_ask [0 ] == 'RESTART' :
44- import core .module_interpreter # import module_interpreter module from core foloder
45- print ('\n ' + blue ('[~]' ) + ' restarting the program ..... success\n ' )
46- reload (core .module_interpreter )
47- from core .module_interpreter import module_interpreter
48- elif self .main_ask [0 ] == 'exec' or self .main_ask [0 ] == 'execute' :
49- try :
50- self .main_ask .remove ('exec' if self .main_ask [0 ] == 'exec' else 'execute' )
51- system (' ' .join (self .main_ask ))
52- except IndexError :
53- print (red ("\n [!] " ) + green ("Please " ) + " enter the command\n " )
54- elif self .main_ask [0 ] == 'upgrade' or self .main_ask [0 ] == 'Upgrade' or self .main_ask [0 ] == 'UPGRADE' :
55- self .check_upgrade ()
56- else :
57- print ('\n ' + red ('[!]' ) + green (' option' ) + ' not found\n ' )
58- except (KeyboardInterrupt ,EOFError ):
59- print ('\n ' + red ('\n [!]' ) + green (' type' ) + gray (' exit' ) + ' to close the program\n ' )
60- except IndexError :
61- return None
61+ from core .validator import validator
62+ while True :
63+ try :
64+ self .main_ask = input (underline ("PySploit" ) + " >> " ).split ()
65+ validator (self .main_ask ).validate_interpreter_mode ()
66+ except (KeyboardInterrupt ,EOFError ):
67+ print ('\n ' + red ('\n [!]' ) + green (' type' ) + gray (' exit' ) + ' to close the program\n ' )
0 commit comments