def user_sort_interface(username , time ,sort_scope , sort_norm , arg = None, st = None, et = None, isall = False, task_number=0, number=100):

    task_number = int(task_number)
    print "user_interface:", number
    user_list = []
    if isall:
        #deal with the situation of all net user
        if sort_scope == 'all_limit_keyword':
            #offline job
            #add job to es index
            during = ( datetime2ts(et) - datetime2ts(st) ) / DAY + 1
            time = 1
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            running_number = es_user_portrait.count(index='user_rank_keyword_task', doc_type='user_rank_task', body=query_task_number(username))['count']
            if running_number > task_number-1:
                return "more than limit"
            search_id = add_task( username ,"keyword" , "all" ,'flow_text_' , during , st ,et, arg , sort_norm , sort_scope, time, isall, number)
            #deal with the offline task   
            return {"flag":True , "search_id" : search_id }
        elif sort_scope == 'all_nolimit':
            #online job
            print "all_sort, ", number
            user_list = all_sort_filter(None,sort_norm,time,False,number)
    else:
        if sort_scope == 'in_limit_keyword':
            #offline job
            #deal with the offline task
            during = ( datetime2ts(et) - datetime2ts(st) ) / DAY + 1
            time = 1
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            running_number = es_user_portrait.count(index='user_rank_keyword_task', doc_type='user_rank_task', body=query_task_number(username))['count']
            if running_number > task_number-1:
                return "more than limit"
            search_id = add_task( username ,"keyword" , "in" ,'flow_text_' , during , st ,et , arg , sort_norm , sort_scope, time, isall, number)
            return {"flag":True , "search_id" : search_id }
        elif sort_scope == 'in_limit_hashtag':
            during = ( datetime2ts(et) - datetime2ts(st) ) / DAY + 1
            time = 1
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            running_number = es_user_portrait.count(index='user_rank_keyword_task', doc_type='user_rank_task', body=query_task_number(username))['count']
            if running_number > task_number-1:
                return "more than limit"
            search_id = add_task( username ,"hashtag" , "in" ,'flow_text_' , during , st ,et, arg , sort_norm , sort_scope, time, isall,  number)
            return {"flag":True , "search_id" : search_id }
        else:
            #find the scope
            user_list = in_sort_filter(time , sort_norm,sort_scope , arg,[], False, number)
    
    result = make_up_user_info(user_list,isall , time , sort_norm)
    print "user_list:", len(user_list)
    return result
def weibo_sort_interface(username , time, sort_scope, sort_norm, arg, st, et, task_number, number):
    task_number = int(task_number)
    print "user_interface:", number

    weibo_list = []
    during = (datetime2ts(et) - datetime2ts(st)) / DAY + 1
    time = 1
    if during > 3:
        time = 7
    elif during > 16:
        time = 30

    query_body = {
        "query":{
            "terms":{
                "status": [0, -1]
            }
        }
    }

    if sort_scope == 'all_limit_keyword':
        running_number = es_weibo_portrait.count(index=WEIBO_RANK_KEYWORD_TASK_INDEX, doc_type=WEIBO_RANK_KEYWORD_TASK_TYPE, body=query_body)['count']
        if running_number > task_number - 1:
            return "more than limit"
        search_id = add_task(username, type="keyword", during=during, st=st, et=et, arg=arg, sort_norm=sort_norm, sort_scope=sort_scope, time=time, number=number)
        #deal with the offline task   
        return {"flag": True , "search_id": search_id}

    elif sort_scope == 'all_nolimit':
        pass

    return weibo_list
def user_sort_interface(username , time ,sort_scope , sort_norm , arg = None, st = None, et = None, isall = False):

    user_list = []
    if isall:
        #deal with the situation of all net user
        if sort_scope == 'all_limit_keyword':
            #offline job
            #add job to es index
            during = ( datetime2ts(et) - datetime2ts(st) ) / DAY + 1
            time = 1
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            search_id = add_task( username ,"keyword" , "all" ,'flow_text_' , during , st ,et, arg , sort_norm , sort_scope, time, isall)
            #deal with the offline task   
            return {"flag":True , "search_id" : search_id }
        elif sort_scope == 'all_nolimit':
            #online job
            user_list = all_sort_filter(None,sort_norm,time)
    else:
        if sort_scope == 'in_limit_keyword':
            #offline job
            #deal with the offline task
            during = ( datetime2ts(et) - datetime2ts(st) ) / DAY + 1
            time = 1
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            search_id = add_task( username ,"keyword" , "in" ,'flow_text_' , during , st ,et , arg , sort_norm , sort_scope, time, isall)
            return {"flag":True , "search_id" : search_id }
        elif sort_scope == 'in_limit_hashtag':
            during = ( datetime2ts(et) - datetime2ts(st) ) / DAY + 1
            time = 1
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            search_id = add_task( username ,"hashtag" , "in" ,'flow_text_' , during , st ,et, arg , sort_norm , sort_scope, time, isall)
            return {"flag":True , "search_id" : search_id }
        else:
            #find the scope
            user_list = in_sort_filter(time , sort_norm,sort_scope , arg)
    
    result = make_up_user_info(user_list,isall , time , sort_norm)
    return result
def weibo_sort_interface(username, time, sort_scope, sort_norm, arg, st, et,
                         task_number, number):
    task_number = int(task_number)
    print "user_interface:", number

    weibo_list = []
    during = (datetime2ts(et) - datetime2ts(st)) / DAY + 1
    time = 1
    if during > 3:
        time = 7
    elif during > 16:
        time = 30

    query_body = {"query": {"terms": {"status": [0, -1]}}}

    if sort_scope == 'all_limit_keyword':
        running_number = es_weibo_portrait.count(
            index=WEIBO_RANK_KEYWORD_TASK_INDEX,
            doc_type=WEIBO_RANK_KEYWORD_TASK_TYPE,
            body=query_body)['count']
        if running_number > task_number - 1:
            return "more than limit"
        search_id = add_task(username,
                             type="keyword",
                             during=during,
                             st=st,
                             et=et,
                             arg=arg,
                             sort_norm=sort_norm,
                             sort_scope=sort_scope,
                             time=time,
                             number=number)
        #deal with the offline task
        return {"flag": True, "search_id": search_id}

    elif sort_scope == 'all_nolimit':
        pass

    return weibo_list
示例#5
0
def user_sort_interface(username,
                        time,
                        sort_scope,
                        sort_norm,
                        arg=None,
                        st=None,
                        et=None,
                        isall=False,
                        task_number=0,
                        number=100):

    task_number = int(task_number)
    print "user_interface:", number
    user_list = []
    if isall:
        #deal with the situation of all net user
        if sort_scope == 'all_limit_keyword':
            #offline job
            #add job to es index
            during = (datetime2ts(et) - datetime2ts(st)) / DAY + 1
            time = 7
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            running_number = es_user_portrait.count(
                index='user_rank_keyword_task',
                doc_type='user_rank_task',
                body=query_body)['count']
            if running_number > task_number - 1:
                return "more than limit"
            search_id = add_task(username, "keyword", "all", 'flow_text_',
                                 during, st, et, arg, sort_norm, sort_scope,
                                 time, isall, number)
            #deal with the offline task
            return {"flag": True, "search_id": search_id}
        elif sort_scope == 'all_nolimit':
            #online job
            print "all_sort, ", number
            user_list = all_sort_filter(None, sort_norm, time, False, number)
    else:
        if sort_scope == 'in_limit_keyword':
            #offline job
            #deal with the offline task
            during = (datetime2ts(et) - datetime2ts(st)) / DAY + 1
            time = 7
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            running_number = es_user_portrait.count(
                index='user_rank_keyword_task',
                doc_type='user_rank_task',
                body=query_body)['count']
            if running_number > task_number - 1:
                return "more than limit"
            search_id = add_task(username, "keyword", "in", 'flow_text_',
                                 during, st, et, arg, sort_norm, sort_scope,
                                 time, isall, number)
            return {"flag": True, "search_id": search_id}
        elif sort_scope == 'in_limit_hashtag':
            during = (datetime2ts(et) - datetime2ts(st)) / DAY + 1
            time = 7
            if during > 3:
                time = 7
            elif during > 16:
                time = 30
            running_number = es_user_portrait.count(
                index='user_rank_keyword_task',
                doc_type='user_rank_task',
                body=query_body)['count']
            if running_number > task_number - 1:
                return "more than limit"
            search_id = add_task(username, "hashtag", "in", 'flow_text_',
                                 during, st, et, arg, sort_norm, sort_scope,
                                 time, isall, number)
            return {"flag": True, "search_id": search_id}
        else:
            #find the scope
            user_list = in_sort_filter(time, sort_norm, sort_scope, arg, [],
                                       False, number)

    result = make_up_user_info(user_list, isall, time, sort_norm)
    print "user_list:", len(user_list)
    return result