# -*- coding:UTF-8 -*-
# @Time  : 2021/1/13 14:06
# @File  : weibo_to_rpc.py
# @email : litao@igengmei.com
# @author : litao

import copy
import datetime
import random

import redis, json
from crawler.crawler_sys.utils.rpc_data_to_answer import post_single_data,post_muilty_data
from crawler_sys.utils.output_results import retry_get_url
from crawler.gm_upload.gm_upload import upload, upload_file
from crawler.crawler_sys.scheduler.redis_to_rpc.rpc_config import *

gm_user_id_list = [
"3236957071",
"5147711482",
"6628617667",
"6855680230",
"5836153857",
"5145935171",
"5143063731",
"5144888803",
"6431905918",
"7048594049",
]

rds = redis.StrictRedis(host='172.18.51.10', port=6379, db=20, decode_responses=True)
while True:
    if rds.hlen("weibo"):
        pid_list = rds.hkeys("weibo")
        for pid in pid_list:
            if rds.sismember("weibo_exists_set", pid):
                rds.hdel("weibo", pid)
                continue
            res = rds.hget("weibo", pid)
            res_json = json.loads(res)
            video_dic = {}
            qiniu_img_list = []
            # print(res_json)
            if "http://t.cn/" in res_json["title"]:
                rds.hdel("weibo", pid)
                continue
            for img_url in res_json["img_list"]:
                try:
                    img_wb = retry_get_url(img_url.replace("large", "sq480")).content
                    res = upload(img_wb, img_type=99)
                    # print(res)
                    img_info = retry_get_url(res + "-imageinfo")
                    img_info_json = img_info.json()
                    qiniu_img_list.append('<img src="' + res + '-w">')
                except Exception as e:
                    print("down load img error %s" % e)
                    continue
            print(qiniu_img_list)
            try:
            # if True:
                try:
                    title = res_json["title"].split("\n")[0]
                except:
                    title = res_json["title"]
                desc_fix = "<p>" + res_json["title"].replace('\n', '<br>') + "".join(qiniu_img_list) + "</p>"
                res_json["desc_fix"] = desc_fix
                # print(desc_fix)
                # f.write(json.dumps(res_json) + "\n")
                # f.flush()
                # res = rds.hset("weibo_with_img", key=pid, value=json.dumps(res_json))
                if res_json["releaser_id_str"].replace("weibo_","") in gm_user_id_list:
                    video_dic["level"] = "5"
                else:
                    video_dic["level"] = "3"
                video_dic["platform"] = "2"
                video_dic["platform_id"] = pid
                video_dic["platform_answer_id"] = pid
                video_dic["title"] = title

                user_id_list_copy = copy.deepcopy(user_id_list)
                qustion_id = random.choice(user_id_list_copy)
                user_id_list_copy.remove(qustion_id)
                video_dic["user_id"] = qustion_id
                create_time = int(res_json["release_time"]/1e3)
                video_dic["create_time"] = create_time
                rpc_res = post_single_data(copy.deepcopy(video_dic), "cims/question/batch_create")
                # print(rpc_res)
                video_dic["platform_question_id"] = pid
                video_dic["content"] = desc_fix
                video_dic["user_id"] = random.choice(user_id_list_copy)
                rpc_res = post_single_data(copy.deepcopy(video_dic), "cims/answer/batch_create")
            except Exception as e:
                print(e)
                continue

            rds.hdel("weibo", pid)
            rds.sadd("weibo_exists_set", pid)