def install(*args):
    
    def help():
        return sys.argv[0] + " install <dabatase_name>\n\n->Creates a database to use"
    
    if "-h" in args or "--help" in args:
        print help()
        exit(0)
    db = args[0]
    proxy_checker = ProxyCheckerDB(db)
    print "Creating database..."
    proxy_checker.install_db()
    print "Creating database... DONE!"
    exit(0)
def delete(*args):
    
    parsed_args = __parse_args(*args)
    
    if parsed_args['db'] == None:
        print "No database selected!"
        exit(1)
        
    proxy_checker = ProxyCheckerDB(parsed_args['db'])
    
    proxy_checker.delete_proxies(where_clause=parsed_args['where_clause'],
                                 sort_clause=parsed_args['sort_clause'],
                                 limit_clause=parsed_args['limit_clause'])
    
    print "Deleting proxies done!"
def update(*args):
    def help():
        return sys.argv[0] + """ update [options] -db <dabatase_name> -url <server_url>
        
        Updates the different proxies stored in the database. Options are used to
        restrict the proxies to update.
        
        Options are:
            -ip <ip value or part to compare>
            -p <port single port, range like xxxx:yyyy or some ports with xxxx,yyyy.
            -tr <modifier> <value>
            -re <modifier> <value>
            -sort <ip, port, transparency, responsivness, last_checked>
            -limit <value>
        
        Modifiers are:
            eq = equals
            ne = not equals
            le = lower or equal
            ge = greater or equal
        """
    
    if "-h" in args or "--help" in args:
        print help()
        exit(0)
    
    pased_args = __parse_args(*args)
    
    if parsed_args['db'] == None:
        print "No database selected!"
        exit(1)
    
    if parsed_args['server_url'] == None:
        print "No server's url selected!"
        exit(1)
    
    proxy_checker = ProxyCheckerDB(parsed_args['db'], parsed_args['server_url'])
    
    proxy_list = proxy_checker.get_proxies(where_clause=parsed_args['where_clause'],
                                           sort_clause=parsed_args['sort_clause'],
                                           limit_clause=parsed_args['limit_clause'])
    
    print "Starting checking..."
    proxy_checker.check_proxies(proxy_list)
    print "Checking Done"
    exit(0)
def add(*args):
    
    parsed_args = __parse_args(*args)
    
    if parsed_args['db'] == None:
        print "No database selected!"
        exit(1)
    
    if parsed_args['server_url'] == None:
        print "No server's url selected!"
        exit(1)
        
    proxy_checker = ProxyCheckerDB(parsed_args['db'], parsed_args['server_url'])
    
    proxy_list = []
    for arg in parsed_args['not_filtered']:
        ip, port = arg.split(':')
        port = int(port)
        proxy_list.append(Proxy(ip, port))
    
    proxy_checker.check_proxies(proxy_list)