Exemple #1
0
def main():
    #handle argument
    parser = argparse.ArgumentParser(description='fetch and check free proxies')
    parser.add_argument('-v', '--verbose', action='store_true')
    parser.add_argument('-l', '--load', action='store_true', help='load hub.plk file')
    args = parser.parse_args(sys.argv[1:])

    if args.verbose:
        set_console_log_level(logging.DEBUG)

    if args.load:
        with (open("hub.pkl", "rb")) as f:
            _hub = pickle.load(f)
            hub = Hub(_hub)
    else:
        hub = Hub()

    log.info('Start')
    loop = asyncio.get_event_loop()
    queue = asyncio.Queue()
    factory = Factory(loop, queue, fetchers, hub)
    tasks = factory.get_tasks()
    tasks.append(asyncio.ensure_future(Server(hub).run()))
    tasks = asyncio.gather(*tasks, loop=loop)
    try:
        loop.run_until_complete(tasks)
    except KeyboardInterrupt:
        with open('hub.pkl', 'wb') as f:
            pickle.dump(hub.copy(), f, pickle.HIGHEST_PROTOCOL)
    finally:
        loop.close()