def shall_I_begin(option):
    #start terminate_watcher
    Terminate_Watcher()
    global ppool, xiami_obj
    if option.need_proxy_pool:
        LOG.info(msgTxt.init_proxypool)
        ppool = ProxyPool()
        option.proxies = ppool
        LOG.info(msgTxt.fmt_init_proxypool_done %len(ppool.proxies))

    #netease obj
    m163 = netease.Netease(option)

    if option.inFile:
        from_file(m163,option)
    elif re.match(pat_xm, option.inUrl):
        __init_xiami_obj(option)
        from_url_xm(xiami_obj, option.inUrl)
    elif re.match(pat_163, option.inUrl):
        from_url_163(m163, option.inUrl)

    print border
    #here do filtering for incremental download
    skipped_songs = [] #used by incremental_dl
    skipped_hists = [] #used by incremental_dl

    dl_songs = []
    if option.incremental_dl:
        skipped_songs, skipped_hists = hist_handler.filter_songs(total_songs)
        LOG.warning(msgTxt.fmt_skip_dl_nm % len(skipped_songs))

    dl_songs = [song for song in total_songs if song not in skipped_songs]
    dl_num = len(dl_songs)
    skip_num = len(skipped_songs)
    output_num = '%d' % dl_num if not skip_num else \
                 "%d-%d=%d" %(dl_num + skip_num, skip_num, dl_num)
    if len(dl_songs):
        LOG.info(msgTxt.fmt_total_dl_nm % output_num)
        sleep(3)
        downloader.start_download(dl_songs, skipped_hists)
        # test
        # downloader.success_list.extend(dl_songs)
        # downloader.failed_list.extend(dl_songs)
        # downloader.finish_summary(skipped_hists)
        # test
    else:
        LOG.warning(msgTxt.no_dl_task)
dataset/ETHPy150Open sk1418/zhuaxia/zhuaxia/commander.py/shall_I_begin/original