#coding utf-8
import sys
import json
from db_help import RedisHelper

if __name__=="__main__":
    nowdate = sys.argv[1]
    f1 = open("./data/sorted_hour_info_"+nowdate)
    f2 = open("./data/1_days_sorted_data_"+nowdate)
    f3 = open("./data/3_days_sorted_data_"+nowdate)
    data_dict = {}
    while True:
        line = f1.readline()
        if not line:
            break
        items = line.strip().split("\t")
        if len(items)<2:
            continue
        kid = items[0]
        #print(items[1])
        item_info = json.loads(items[1])
        data_dict[kid] = item_info
    f1.close()
    #f3 = open("./data/merge_score_"+nowdate, 'w')
    info_dict = {}
    while True:
        line = f2.readline()
        if not line:
            break
        items = line.split("\t")
        if len(items)<2:
            continue
        kid = items[0]
        d_item_info = json.loads(items[1])
        if kid in data_dict:
            item_info = data_dict[kid]
            total_info = []
            for i in range(len(item_info)):
                total_info.append(float(item_info[i])+0.1*float(d_item_info[i]))
            info_dict[kid] = total_info
        else:
            total_info = []
            for i  in range(len(d_item_info)):
                total_info.append(float(d_item_info[i]))
            #if len(total_info)>2:
            #    total_info[0] = total_info[1]+0.1*total_info[3]
            #total_item_info = json.dumps(total_info)
            #f3.write(kid2+"\t"+total_item_info+"\n")
            info_dict[kid] = total_info
    #print(info_dict)
    print("info:", len(info_dict))
    day3_dict = {}
    while True:
        line = f3.readline()
        if not line:
            break
        items = line.split("\t")
        if len(items)<2:
            continue
        kid = items[0]
        d_item_info = json.loads(items[1])
        if kid in info_dict:
            item_info = info_dict[kid]
            total_info = []
            for i in range(len(item_info)):
                total_info.append(float(item_info[i])+0.1*float(d_item_info[i]))
            day3_dict[kid] = total_info
        else:
            total_info = []
            for i  in range(len(d_item_info)):
                total_info.append(float(d_item_info[i]))
            day3_dict[kid] = total_info
    print("info3:", len(day3_dict))
    f3 = open("./data/merge_3_days_score_"+nowdate, 'w')
    res_dict = {}
    res_dict2 = {}
    for k, v in day3_dict.items():
        score = v[0]
        new_arr = []
        new_arr.append(score)
        for i in range(4):
            new_arr.append(v[i])
        #print(v)
        #print(new_arr)
        total_item_info = json.dumps(new_arr)
        kid2 = "kp_3:"+k
        kid3 = "kp_4:"+k
        f3.write(kid2+"\t"+total_item_info+"\n")
        #res_dict[kid2] = total_item_info
        res_dict2[kid3] = total_item_info
    #if len(res_dict)>0:
    #    redis_helper = RedisHelper()
    #    redis_helper.update_batch_setnx_key(res_dict, 60*60*24*15)
    if len(res_dict2)>0:
        redis_helper = RedisHelper()
        redis_helper.update_batch_setnx_key(res_dict2, 60*60*24*3)
    f2.close()