# -*- coding:utf-8 -*-
# @Time : 2019/9/11 11:48
# @Author : litao
import redis
import json
import datetime
from redis.sentinel import Sentinel

sentinel = Sentinel([('192.168.17.65', 26379),
                     ('192.168.17.66', 26379),
                     ('192.168.17.67', 26379)
                     ], socket_timeout=0.5)
# 查看master节点
master = sentinel.discover_master('ida_redis_master')
# 查看slave 节点
slave = sentinel.discover_slaves('ida_redis_master')
# 连接数据库
rds = sentinel.master_for('ida_redis_master', socket_timeout=0.5, db=2, decode_responses=True)


def write_project_to_redis(project):
    rds.rpush("project", project)


def write_releaserUrl_to_redis(project, data,email_dic):
    project_name, duration = project.split("/")
    data_dict_for_redis = {"duration": duration, "data": json.dumps(data),"email":json.dumps(email_dic)}
    rds.hmset(project, data_dict_for_redis)
    write_project_to_redis(project)


def read_csv_write_into_redis(project_name, csv_file, crawler_days,email_dic=None):
    try:
        crawler_lis = []
        with open(csv_file, 'r', encoding="gb18030")as f:
            header_Lst = f.readline().strip().split(',')
            for line in f:
                line_Lst = line.strip().split(',')
                line_dict = dict(zip(header_Lst, line_Lst))
                platform = line_dict['platform']
                releaserUrl = line_dict['releaserUrl']
                crawler_lis.append(platform+"&"+releaserUrl)
        write_releaserUrl_to_redis("{0}/{1}".format(project_name, str(crawler_days)), crawler_lis,email_dic=email_dic)
        return True
    except:
        return False


def down_task():
    res = rds.hgetall("task_down")
    if res:
        rds.delete("task_down")
        return res
    else:
        return None


if __name__ == "__main__":
    # 传入的email_dic 格式如下
    mapping_dic = {
            "taskname": "127869453",
            "file_path": None,
            "data_str": None,
            "email_group": ["litao@csm.com.cn"],
            "email_msg_body_str": "任务已完成",
            "title_str": "任务已完成",
            "cc_group": [],
            "sender": "litao@csm.com.cn"
    }
    crawler_lis = []
    file = r'D:\work_file\发布者账号\一次性需求附件\大客户总台垂类及主持人增加账号.csv'
    read_csv_write_into_redis("task15", file, "1577808000000",email_dic=mapping_dic)
    print(down_task())
    # with open(file, 'r')as f:
    #     header_Lst = f.readline().strip().split(',')
    #     for line in f:
    #         line_Lst = line.strip().split(',')
    #         line_dict = dict(zip(header_Lst,line_Lst))
    #         platform = line_dict['platform']
    #         releaserUrl = line_dict['releaserUrl']
    #         crawler_lis.append(platform+"_"+releaserUrl)
    # write_releaserUrl_to_redis("project_name/1564588800000/3",crawler_lis)