mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-08-20 22:52:32 +02:00
82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
import os
|
|
import sys
|
|
import time
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
|
|
|
|
from lib.sender import send
|
|
from lib.core import utils
|
|
|
|
|
|
def waiting(options, delay=20, times=0):
|
|
elapsed_time = 0
|
|
if times:
|
|
count = 0
|
|
module_name = options.get('CURRENT_MODULE', False)
|
|
utils.print_info('Waiting for {0} module'.format(module_name))
|
|
checking = poll_status(options)
|
|
|
|
while checking:
|
|
time.sleep(delay)
|
|
if not times:
|
|
# just don't print this too much
|
|
if ((elapsed_time / delay) % 10) == 0:
|
|
utils.print_info('Waiting for {0} module'.format(module_name))
|
|
time.sleep(delay)
|
|
if times:
|
|
utils.print_info('Waiting for {0} module {1}/{2}'.format(module_name, str(count), str(times)))
|
|
if count == int(times):
|
|
poll_status(options, forced=True)
|
|
utils.print_bad("Something bad with {0} module but force to continue".format(module_name))
|
|
break
|
|
count += 1
|
|
checking = poll_status(options)
|
|
# print(checking)
|
|
|
|
|
|
# clear old stuff because it's may be failed
|
|
# continious will check output file so don't worry
|
|
def clear_activities(options):
|
|
ws = utils.get_workspace(options=options)
|
|
module = options.get('CURRENT_MODULE', False)
|
|
|
|
url = options.get('REMOTE_API') + "/api/activities/clear/"
|
|
|
|
body = {
|
|
"workspace": ws,
|
|
"module": module,
|
|
}
|
|
|
|
headers = send.osmedeus_headers
|
|
headers['Authorization'] = options.get('JWT')
|
|
r = send.send_post(url, body, headers=headers, is_json=True)
|
|
if r and r.json().get('status') == 200:
|
|
utils.print_good("Clean old activities for {0}:{1}".format(ws, module))
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
# parsing command
|
|
def poll_status(options, forced=False):
|
|
# /api/activities/get/?workspace=duckduckgo.com&modules=SubdomainScanning
|
|
ws = utils.get_workspace(options=options)
|
|
module = options.get('CURRENT_MODULE', False)
|
|
if module:
|
|
url = options.get('REMOTE_API') + "/api/activities/get/?workspace={0}&module={1}".format(ws, module)
|
|
else:
|
|
url = options.get('REMOTE_API') + "/api/activities/get/?workspace={0}".format(ws)
|
|
|
|
headers = send.osmedeus_headers
|
|
headers['Authorization'] = options.get('JWT')
|
|
|
|
if forced:
|
|
r = send.send_post(url, data=None, headers=headers)
|
|
else:
|
|
r = send.send_get(url, data=None, headers=headers)
|
|
|
|
if r and r.json().get('status') == 'Done':
|
|
return False
|
|
|
|
if not r or r.json().get('status') != 'Done':
|
|
return True
|