64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
#!/usr/bin/env python
|
|
|
|
"""
|
|
Copyright (c) 2014 Jan Rude
|
|
"""
|
|
|
|
import time
|
|
from Queue import Queue
|
|
from os.path import isfile
|
|
from threading import Thread, Lock
|
|
from colorama import Fore, Back
|
|
from lib import settings
|
|
from lib import versioninfo
|
|
from lib import login
|
|
from lib import output
|
|
from lib import extensions
|
|
|
|
# Startmethod
|
|
def start(domain):
|
|
settings.in_queue = Queue()
|
|
settings.out_queue = Queue()
|
|
settings.DOMAIN = domain
|
|
print '\n\n' + Fore.CYAN + '[ Checking ' + domain + ' ]' + '\n' + "-"* 70 + Fore.RESET
|
|
|
|
if login.search_login(domain) is True:
|
|
versioninfo.search_version_info()
|
|
versioninfo.output()
|
|
|
|
if not settings.EXTENSION_LIST:
|
|
extensions.generate_list()
|
|
|
|
extensions.copy()
|
|
extensions_to_check = settings.in_queue.qsize()
|
|
|
|
if extensions_to_check is not 0:
|
|
print '\nChecking', extensions_to_check, 'extension(s)...'
|
|
# Thanks to 'RedSparrow': http://stackoverflow.com/questions/17991033/python-cant-kill-main-thread-with-keyboardinterrupt
|
|
try:
|
|
while True:
|
|
if settings.in_queue.empty() == False:
|
|
time.sleep(0.1)
|
|
for i in xrange(0, settings.THREADS):
|
|
t = Thread(target=extensions.check_extension, args=())
|
|
t.daemon = True
|
|
t.start()
|
|
else:
|
|
break
|
|
settings.in_queue.join()
|
|
except KeyboardInterrupt:
|
|
print Fore.RED + "\nReceived keyboard interrupt.\nQuitting..." + Fore.RESET
|
|
exit(-1)
|
|
|
|
installed_ext = settings.out_queue.qsize()
|
|
if installed_ext is 0:
|
|
print Fore.RED + "No extensions installed" + Fore.RESET
|
|
else:
|
|
t = Thread(target=output.thread, args=())
|
|
t.daemon = True
|
|
t.start()
|
|
settings.out_queue.join()
|
|
print Fore.GREEN + '\n', str(installed_ext) + '/' + str(extensions_to_check),'extension(s) installed' + Fore.RESET
|
|
|
|
else:
|
|
print '\nSkipping check for extensions...' |