コード例 #1
0
def daily_user_emotion(date):
    date = ts2date(int(date2ts(date)) - DAY)
    print(date)
    iter_result = get_user_generator(
        "user_information", {"query": {
            "bool": {
                "must": [{
                    "match_all": {}
                }]
            }
        }}, 1000)
    iter_num = 0
    while True:
        try:
            es_result = next(iter_result)
            iter_num += 1
            print(iter_num)
            if iter_num <= 76:
                continue
        except:
            break
        uid_list = []
        for k, v in enumerate(es_result):
            uid_list.append(es_result[k]["_source"]["uid"])

        for uid in uid_list:
            weibo_data_dict = get_weibo_data_dict(uid, date, date)
            cal_user_emotion(uid, weibo_data_dict)
コード例 #2
0
def daily_user_influence(date):
    date = ts2date(int(date2ts(date)) - DAY)
    print(date)
    iter_result = get_user_generator(
        "user_information", {"query": {
            "bool": {
                "must": [{
                    "match_all": {}
                }]
            }
        }}, 1000)
    while True:
        try:
            es_result = next(iter_result)
        except:
            break
        uid_list = []
        username_list = []
        for k, v in enumerate(es_result):
            uid_list.append(es_result[k]["_source"]["uid"])
            try:
                username_list.append(es_result[k]["_source"]["username"])
            except:
                username_list.append("")
        for uid in uid_list:
            weibo_data_dict = get_weibo_data_dict(uid, date, date)
            cal_user_influence(uid, weibo_data_dict)

    start_date = ts2date(int(date2ts(date)) - 15 * DAY)
    normalize_influence_index(start_date, date, 15)

    iter_ranking_result = get_user_generator(
        "user_information",
        {"query": {
            "bool": {
                "must": [{
                    "term": {
                        "progress": 2
                    }
                }]
            }
        }}, 1000)
    while True:
        try:
            ranking_result = next(iter_ranking_result)
        except:
            break
        uid_ranking_list = []
        username_ranking_list = []
        push_status_list = []
        for k, v in enumerate(ranking_result):
            uid_ranking_list.append(ranking_result[k]["_source"]["uid"])
            try:
                username_ranking_list.append(
                    ranking_result[k]["_source"]["username"])
            except:
                username_ranking_list.append("")
            push_status_list.append(
                ranking_result[k]["_source"]["push_status"])
        user_ranking(uid_ranking_list, username_ranking_list, date)
コード例 #3
0
def daily_user_social(date):
    date = ts2date(int(date2ts(date)) - 86400)
    print(date)
    iter_result = get_user_generator(
        "user_information",
        {"query": {
            "bool": {
                "must": [{
                    "term": {
                        "progress": 2
                    }
                }]
            }
        }}, 1000)
    while True:
        try:
            es_result = next(iter_result)
        except:
            break
        uid_list = []
        for k, v in enumerate(es_result):
            uid_list.append(es_result[k]["_source"]["uid"])

        for uid in uid_list:
            weibo_data_dict = get_weibo_data_dict(uid, date, date)
            cal_user_social(uid, weibo_data_dict)
コード例 #4
0
def multi_daily_user_emotion(date):  #从Redis取出任务逐个计算
    while True:
        uid = redis_r.rpop('emotion_task_%s' % date)
        if uid == None:
            break
        uid = uid.decode('utf-8')  # redis存的是utf-8类型,Python3要解码一下
        print(uid, date)
        weibo_data_dict = get_weibo_data_dict(uid, date, date)
        cal_user_emotion(uid, weibo_data_dict)
コード例 #5
0
def daily_user(uid, start_date, end_date):
    weibo_data_dict = get_weibo_data_dict(uid, start_date, end_date)
    cal_user_influence(uid, weibo_data_dict)