import os
# from log import Log
# log_ = Log()


class BaseConfig(object):
    # 产品标识
    APP_TYPE = {
        'VLOG': 0,  # vlog
        'LOVE_LIVE': 4,  # 票圈视频
        'LONG_VIDEO': 5,  # 内容精选
        'SHORT_VIDEO': 6,  # 票圈短视频
        'WAN_NENG_VIDEO': 17,  # 万能影视屋
        'LAO_HAO_KAN_VIDEO': 18,  # 老好看视频
        'ZUI_JING_QI': 19,  # 票圈最惊奇
        'APP': 13,  # 票圈视频APP
    }

    # AB实验配置
    AB_EXP_CODE = {
        'rec_size_home': '003',
        'rec_size_relevant': '004',
        'rule_rank1': '011',
        'rule_rank2': '016',
        'rov_rank_appType_18_19': '019',
        'rule_rank3': '023',
        'rule_rank4': '024',
        'rule_rank5': '025',
        'rov_rank_appType_19': '027',
        'day_rule_rank1': '026',
        'day_rule_rank2': '030',
        'ab_initial': '031',
        'old_video': '034',
        'region_rule_rank1': '037',
        'rule_rank6': '040',
        '24h_rule_rank1': '052',
        'region_rule_rank2': '054',
    }

    # abTest
    AB_TEST = {
        'w_h_rate': [APP_TYPE['LONG_VIDEO']],  # 视频宽高比实验(每组的前两个视频调整为横屏视频), 已下线
        'position_insert': [APP_TYPE['SHORT_VIDEO'], APP_TYPE['LOVE_LIVE']],
        'relevant_video_op': [APP_TYPE['LONG_VIDEO']],  # 相关推荐强插实验(运营对某些视频给定一些相关视频,调整为对应视频相关推荐的头部)
        'rank_by_h': [APP_TYPE['VLOG']],  # 小时级别更新rov列表
    }
    # abCode
    AB_CODE = {
        'initial': 10000,  # 初始
        'w_h_rate': 10001,  # 视频宽高比实验(每组的前两个视频调整为横屏视频),已下线
        'position_insert': 10002,  # 按位置插入
        'relevant_video_op': 10003,  # 运营对某些视频给定一些相关视频,调整为对应视频相关推荐的头部
        'rov_rank_appType_18_19': 30001,  # 老好看视频 / 票圈最惊奇 首页/相关推荐逻辑更新实验
        'rov_rank_appType_19': 30002,  # 票圈最惊奇 首页/相关推荐逻辑更新实验 (2:2)
        'rank_by_h': {
            'rule_rank1': 20001,
            'rule_rank2': 20002,
            'rule_rank3': 20003,
            'rule_rank4': 20004,
            'rule_rank5': 20005,
            'rule_rank6': 20006,
        },  # 小时级别更新rov列表实验

        'rank_by_day': {
            'day_rule_rank1': 40001,
            'day_rule_rank2': 40002,
        },  # 天级别规则更新rov列表实验

        'ab_initial': 20000,  # ab实验相对实验组(无人工调整)
        'old_video': 50001,  # 固定位置插入老视频

        'region_rank_by_h': {
            'region_rule_rank1': 60001,
            'region_rule_rank2': 60002,
        },  # 地域分组小时级规则实验

        'rank_by_24h': {
            '24h_rule_rank1': 70001,
        },  # 小时级规则更新过去24h数据实验
    }

    # 小程序小时级列表key不同实验标识
    RULE_KEY = {
        'initial': '',
        'rule_rank1': 'rule1',
        'rule_rank2': 'rule2',
        'rule_rank3': 'rule3',
        'rule_rank4': 'rule4',
        'rule_rank5': 'rule5',
        'rule_rank6': 'rule6',
    }

    # 小程序天级别规则列表key不同实验标识
    RULE_KEY_DAY = {
        'initial': '',
        'day_rule_rank1': 'rule1',
        'day_rule_rank2': 'rule2',
    }

    # 小程序地域分组小时级列表key不同实验标识
    RULE_KEY_REGION = {
        'initial': '',
        'region_rule_rank1': 'rule1',
        'region_rule_rank2': 'rule1',
    }

    # 小时级规则更新过去24h数据列表key不同实验标识
    RULE_KEY_24H = {
        'initial': '',
        '24h_rule_rank1': 'rule1',
    }

    # pushFrom
    PUSH_FROM = {
        'rov_recall': 'recall_pool',  # rov召回池
        'flow_recall': 'flow_pool',  # 流量池
        'top': 'op_manual',  # 置顶
        'bottom': 'bottom_strategy',  # 一层兜底
        'bottom_last': 'bottom_strategy_last',  # 二层兜底
        'position_insert': 'position_insert',  # 按位置插入
        'relevant_video_op': 'relevant_video_op',  # 相关推荐强插
        'rov_recall_h': 'recall_pool_h',  # 小时级更新列表
        'rov_recall_day': 'recall_pool_day',  # 天级规则更新列表
        'old_video': 'old_video_recall',  # 老视频
        'rov_recall_region_h': 'recall_pool_region_h',  # 地域分组小时级更新列表
        'rov_recall_region_day': 'recall_pool_region_day',  # 地域分组天级更新列表
        'rov_recall_region_24h': 'recall_pool_region_24h',  # 地域分组小时级更新24h列表
    }

    # category id mapping
    CATEGORY = {
        'recommend': [55],  # 推荐
        'other': []  # 其他类别
    }
    # 前k个从ROV召回池中获取视频
    K = 3
    # 从流量池获取视频的概率设置
    P = 0.3
    P_18_19 = 1

    # ROV召回池redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.{date}
    RECALL_KEY_NAME_PREFIX = 'com.weiqu.video.recall.hot.item.score.'

    # 小程序小时级更新结果存放 redis key前缀,完整格式:com.weiqu.video.recall.item.score.h.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_BY_H = 'com.weiqu.video.recall.item.score.h.'

    # 小程序离线ROV模型结果与小程序小时级更新结果去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.h.{rule_key}{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP_H = 'com.weiqu.video.recall.hot.item.score.dup.h.'

    # 每个mid存储对应小时级更新结果 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.h.mid.{appType}.{mid}
    H_WITH_MID_RECALL_KEY_NAME_PREFIX = 'com.weiqu.video.recall.hot.item.score.h.mid.'
    # 记录 mid-小时级key 中数据所属(date,h),完整格式:com.weiqu.video.h.record.mid.{appType}.{mid}
    H_WITH_MID_RECORD_KEY_NAME_PREFIX = 'com.weiqu.video.h.record.mid.'

    # 每个mid存储对应小时级更新结果 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.h.region.24h.mid.{appType}.{mid}
    H_WITH_MID_RECALL_KEY_NAME_PREFIX_REGION_24H = 'com.weiqu.video.recall.hot.item.score.h.region.24h.mid.'
    # 记录 mid-小时级key 中数据所属(date,h),完整格式:com.weiqu.video.h.region.24h.record.mid.{appType}.{mid}
    H_WITH_MID_RECORD_KEY_NAME_PREFIX_REGION_24H = 'com.weiqu.video.h.region.24h.record.mid.'

    # 小时级视频状态不符合推荐要求的列表 redis key,完整格式:com.weiqu.video.filter.h.item.{rule_key}
    H_VIDEO_FILER = 'com.weiqu.video.filter.h.item.'

    # 小程序天级更新结果存放 redis key前缀,完整格式:com.weiqu.video.recall.item.score.day.{rule_key}.{date}
    RECALL_KEY_NAME_PREFIX_BY_DAY = 'com.weiqu.video.recall.item.score.day.'
    # 小程序离线ROV模型结果与小程序天级更新结果去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.day.now.{rule_key}.{date}
    RECALL_KEY_NAME_PREFIX_DUP_DAY_NOW = 'com.weiqu.video.recall.hot.item.score.dup.day.now.'
    # 使用前一天小程序离线ROV模型结果与小程序天级更新结果去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.day.pre.{rule_key}.{date}
    RECALL_KEY_NAME_PREFIX_DUP_DAY_PRE = 'com.weiqu.video.recall.hot.item.score.dup.day.pre.'

    # 小程序小时级24h数据更新结果存放 redis key前缀,完整格式:com.weiqu.video.recall.item.score.day.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_BY_24H = 'com.weiqu.video.recall.item.score.24h.'
    # 小程序离线ROV模型结果与小程序小时级24h更新结果去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.24h.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP_24H = 'com.weiqu.video.recall.hot.item.score.dup.24h.'
    # 小时级视频状态不符合推荐要求的列表 redis key,完整格式:com.weiqu.video.filter.h.item.24h.{rule_key}
    H_VIDEO_FILER_24H = 'com.weiqu.video.filter.h.item.24h.'

    # 小程序地域分组小时级更新结果存放 redis key前缀,完整格式:com.weiqu.video.recall.item.score.region.h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_REGION_BY_H = 'com.weiqu.video.recall.item.score.region.h.'
    # 小程序地域分组天级更新结果与小程序地域分组小时级更新结果去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup1.region.day.h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP1_REGION_DAY_H = 'com.weiqu.video.recall.hot.item.score.dup1.region.day.h.'
    # 小程序地域分组小时级更新24h结果与小程序地域分组小时级更新结果去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup1.region.24h.h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H = 'com.weiqu.video.recall.hot.item.score.dup1.region.24h.h.'
    # 小程序天级更新结果与 小程序地域分组天级更新结果/小程序地域分组小时级更新结果 去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup2.region.day.h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H = 'com.weiqu.video.recall.hot.item.score.dup2.region.day.h.'
    # 小程序离线ROV模型结果与 小程序天级更新结果/小程序地域分组天级更新结果/小程序地域分组小时级更新结果 去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.region.h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP_REGION_H = 'com.weiqu.video.recall.hot.item.score.dup.region.h.'
    # 地域分组小时级视频状态不符合推荐要求的列表 redis key,完整格式:com.weiqu.video.filter.region.h.item.{region}.{rule_key}
    REGION_H_VIDEO_FILER = 'com.weiqu.video.filter.region.h.item.'

    # 小程序地域分组小时级更新24h结果存放 redis key前缀,完整格式:com.weiqu.video.recall.item.score.region.24h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_REGION_BY_24H = 'com.weiqu.video.recall.item.score.region.24h.'
    # 小程序天级更新结果与 小程序地域分组小时级更新24h结果 去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.region.day.24h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP_REGION_DAY_24H = 'com.weiqu.video.recall.hot.item.score.dup.region.day.24h.'
    # 小程序离线ROV模型结果与 小程序天级更新结果/小程序地域分组小时级更新24h结果 去重后 存放 redis key前缀,
    # 完整格式:com.weiqu.video.recall.hot.item.score.dup.region.24h.{region}.{rule_key}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_DUP_REGION_24H = 'com.weiqu.video.recall.hot.item.score.dup.region.24h.'
    # 地域分组小时级更新24h视频状态不符合推荐要求的列表 redis key,完整格式:com.weiqu.video.filter.region.h.item.24h.{region}.{rule_key}
    REGION_H_VIDEO_FILER_24H = 'com.weiqu.video.filter.region.h.item.24h.'

    # app应用 小程序离线ROV模型结果存放 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.app.{date}
    RECALL_KEY_NAME_PREFIX_APP = 'com.weiqu.video.recall.hot.item.score.app.'

    # app应用 小时级数据更新最终结果存放 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.app.{date}.{h}
    APP_FINAL_RECALL_KEY_NAME_PREFIX = 'com.weiqu.video.recall.hot.item.score.app.'

    # appType:[18, 19]小程序离线ROV模型结果存放 redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.{appType}.{date}.{h}
    RECALL_KEY_NAME_PREFIX_APP_TYPE = 'com.weiqu.video.recall.hot.item.score.'

    # 小程序老视频更新结果存放 redis key 前缀,完整格式:'com.weiqu.video.recall.old.item.{date}'
    RECALL_KEY_NAME_PREFIX_OLD_VIDEOS = 'com.weiqu.video.recall.old.item.'

    # appType = 6, ROV召回池redis key前缀,完整格式:com.weiqu.video.recall.hot.apptype.h.item.score.6.{h}
    # RECALL_KEY_NAME_PREFIX_APP_TYPE = 'com.weiqu.video.recall.hot.apptype.h.item.score.6.'

    # 流量池redis key前缀,完整格式 com.weiqu.video.flowpool.hot.item.score.{appType}
    FLOW_POOL_KEY_NAME_PREFIX = 'com.weiqu.video.flowpool.hot.item.score.'

    # 修改ROV的视频 redis key
    UPDATE_ROV_KEY_NAME = 'com.weiqu.video.update.rov.item.score'
    UPDATE_ROV_KEY_NAME_APP = 'com.weiqu.video.update.rov.item.score.app'

    # 首页推荐预曝光列表redis key 前缀,完整key格式:com.weiqu.video.hot.recommend.previewed.{appType}.{mid}
    PREVIEW_KEY_PREFIX = 'com.weiqu.video.hot.recommend.previewed.'

    # 用户上一次在rov召回池对应的位置 redis key前缀,完整key格式:com.weiqu.video.rov.pool.last.{appType}.{mid}.{date}
    LAST_VIDEO_FROM_ROV_POOL_PREFIX = 'com.weiqu.video.rov.pool.last.'
    # 用户上一次在天级规则更新列表中对应的位置 redis key前缀,完整key格式:com.weiqu.video.rov.pool.last.{appType}.{mid}.{date}
    LAST_VIDEO_FROM_RULE_DAY_POOL_PREFIX = 'com.weiqu.video.rule.day.pool.last.'
    # 用户上一次在rov召回池对应的位置 redis key前缀,完整key格式:com.weiqu.video.rov.pool.last.pre.{appType}.{mid}.{date}
    LAST_VIDEO_FROM_ROV_POOL_PRE_PREFIX = 'com.weiqu.video.rov.pool.last.pre.'
    # 用户上一次在rov召回池对应的位置 redis key前缀,完整key格式:com.weiqu.video.rov.pool.last.now.{appType}.{mid}.{date}
    LAST_VIDEO_FROM_ROV_POOL_NOW_PREFIX = 'com.weiqu.video.rov.pool.last.now.'
    # 用户上一次在region dup更新列表中对应的位置 redis key前缀,完整key格式:com.weiqu.video.region.dup.last.{dup}.{appType}.{mid}.{date}
    LAST_VIDEO_FROM_REGION_DUP_PREFIX = 'com.weiqu.video.region.dup.last.'

    # 本地记录视频的可分发数,控制分发,完整key格式:com.weiqu.video.flowpool.local.distribute.count.{h}
    # LOCAL_DISTRIBUTE_COUNT_PREFIX = 'com.weiqu.video.flowpool.local.distribute.count.'
    # 本地记录视频的可分发数,控制分发,完整key格式:com.weiqu.video.flowpool.local.distribute.count.{videoId}.{flowPool}
    LOCAL_DISTRIBUTE_COUNT_PREFIX = 'com.weiqu.video.flowpool.local.distribute.count.'

    # 从ROV召回池获取视频的最大频次,限制每次请求的获取次数
    MAX_FREQ_FROM_ROV_POOL = 3

    # 兜底视频redis存储key
    BOTTOM_KEY_NAME = 'com.weiqu.video.bottom'

    # 生效中的置顶视频列表 redis key
    TOP_VIDEO_LIST_KEY_NAME = 'com.weiqu.video.top.item.score.area'
    TOP_VIDEO_LIST_KEY_NAME_APP = 'com.weiqu.video.top.item.score.area.app'

    # 按位置排序redis存储key
    RECALL_POSITION1_KEY_NAME = 'com.weiqu.video.recall.hot.apptype.h.item.score.position.1'
    RECALL_POSITION2_KEY_NAME = 'com.weiqu.video.recall.hot.apptype.h.item.score.position.2'

    # rov召回池更新时间
    ROV_UPDATE_H = 6
    ROV_UPDATE_MINUTE = 30

    # 小时级召回池更新时间 每个小时的15分更新成功
    ROV_H_UPDATE_MINUTE = 15

    # 地域分组小时级召回池更新时间
    REGION_H_UPDATE_MINUTE = 30

    # 天级规则更新列表更新时间 00:30更新成功
    ROV_DAY_UPDATE_MINUTE = 0

    # 置顶视频区域 为 全部 的code
    ALL_AREA_CODE = '000000'

    # width : height > 1 的视频列表 redis key, zset存储,value为videoId,score为w_h_rate
    W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME = {
        'rov_recall': 'com.weiqu.video.rov.w.h.rate.1.item',  # rov召回池视频
        'bottom_last': 'com.weiqu.video.bottom.last.w.h.rate.1.item'  # 二次兜底视频
    }

    # 头部视频对应运营强插的相关视频 redis 存储 key 前缀, 完整key格式:com.weiqu.video.relevant.videos.item.{videoId}
    RELEVANT_VIDEOS_WITH_OP_KEY_NAME = 'com.weiqu.video.relevant.videos.item.'


class DevelopmentConfig(BaseConfig):
    """开发环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "开发环境"
    # 测试环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }

    # Hologres连接参数,本地使用
    HOLOGRES_INFO = {
        'host': 'hgprecn-cn-7pp28y18c00c-cn-hangzhou.hologres.aliyuncs.com',
        'port': 80,
        'dbname': 'dssm',
        'user': 'LTAI5tMPqPy9yboQAf1mBCCN',
        'password': '4BEcOgxREOPq7t3A7EWkjciVULeQGj'
    }

    # 测试环境mysql地址
    MYSQL_INFO = {
        'host': 'rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com',
        'port': 3306,
        'user': 'wx2016_longvideo',
        'password': 'wx2016_longvideoP@assword1234',
        'db': 'longvideo',
        'charset': 'utf8'
    }

    # Hologres视频状态存储表名
    VIDEO_STATUS = 'longvideo_test.dwd_mdm_item_video_stat'

    # 用户已观看视频过滤 & 视频审核条件过滤 & 是否进入老年人社区过滤 & 话题状态过滤 接口地址
    # 参数types: 1-已观看 2-视频状态 3-是否进入老年人社区过滤 4-话题状态
    VIDEO_FILTER_URL = 'http://videotest-internal.yishihui.com/longvideoapi/openapi/recommend/filterVideos'

    # 获取视频在流量池中的剩余可分发数接口地址
    GET_REMAIN_VIEW_COUNT_URL = 'http://testapi-internal.piaoquantv.com/flowpool/video/remainViewCount'

    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'rov-server-test',
    }

    # # AB实验配置
    # AB_EXP_CODE = {
    #     'rec_size_home': '003',
    #     'rec_size_relevant': '004',
    #     'rule_rank1_20': '011',
    #     'rule_rank1_50': '016'
    # }


class TestConfig(BaseConfig):
    """测试环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "测试环境"
    # 测试环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }

    # Hologres连接参数,服务器使用
    HOLOGRES_INFO = {
        'host': 'hgprecn-cn-7pp28y18c00c-cn-hangzhou-vpc.hologres.aliyuncs.com',
        'port': 80,
        'dbname': 'dssm',
        'user': 'LTAI5tMPqPy9yboQAf1mBCCN',
        'password': '4BEcOgxREOPq7t3A7EWkjciVULeQGj'
    }

    # 测试环境mysql地址
    MYSQL_INFO = {
        'host': 'rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com',
        'port': 3306,
        'user': 'wx2016_longvideo',
        'password': 'wx2016_longvideoP@assword1234',
        'db': 'longvideo',
        'charset': 'utf8'
    }

    # Hologres视频状态存储表名
    VIDEO_STATUS = 'longvideo_test.dwd_mdm_item_video_stat'

    # 用户已观看视频过滤 & 视频审核条件过滤 & 是否进入老年人社区过滤 & 话题状态过滤 接口地址
    # 参数types: 1-已观看 2-视频状态 3-是否进入老年人社区过滤 4-话题状态
    VIDEO_FILTER_URL = 'http://videotest-internal.yishihui.com/longvideoapi/openapi/recommend/filterVideos'

    # 获取视频在流量池中的剩余可分发数接口地址
    GET_REMAIN_VIEW_COUNT_URL = 'http://testapi-internal.piaoquantv.com/flowpool/video/remainViewCount'

    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'rov-server-test',
    }

    # # AB实验配置
    # AB_EXP_CODE = {
    #     'rec_size_home': '003',
    #     'rec_size_relevant': '004',
    #     'rule_rank1_20': '011',
    #     'rule_rank1_50': '016'
    # }


class PreProductionConfig(BaseConfig):
    """预发布环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "预发布环境"
    # 线上环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1fogs2mflr1ybfot.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }

    # Hologres连接参数,服务器使用
    HOLOGRES_INFO = {
        'host': 'hgprecn-cn-7pp28y18c00c-cn-hangzhou-vpc.hologres.aliyuncs.com',
        'port': 80,
        'dbname': 'dssm',
        'user': 'LTAI5tMPqPy9yboQAf1mBCCN',
        'password': '4BEcOgxREOPq7t3A7EWkjciVULeQGj'
    }

    # 生产环境mysql地址
    MYSQL_INFO = {
        'host': 'rr-bp1x9785e8h5452bi157.mysql.rds.aliyuncs.com',
        'port': 3306,
        'user': 'wx2016_longvideo',
        'password': 'wx2016_longvideoP@assword1234',
        'db': 'longvideo',
        'charset': 'utf8'
    }

    # Hologres视频状态存储表名
    VIDEO_STATUS = 'longvideo.dwd_mdm_item_video_stat'

    # 用户已观看视频过滤 & 视频审核条件过滤 & 是否进入老年人社区过滤 & 话题状态过滤 接口地址
    # 参数types: 1-已观看 2-视频状态 3-是否进入老年人社区过滤 4-话题状态
    VIDEO_FILTER_URL = 'http://prespeed-internal.piaoquantv.com/longvideoapi/openapi/recommend/filterVideos'

    # 获取视频在流量池中的剩余可分发数接口地址
    GET_REMAIN_VIEW_COUNT_URL = 'http://preapi-internal.piaoquantv.com/flowpool/video/remainViewCount'

    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'rov-server',
    }

    # # AB实验配置
    # AB_EXP_CODE = {
    #     'rec_size_home': '003',
    #     'rec_size_relevant': '004',
    #     'rule_rank1': '011'
    # }


class ProductionConfig(BaseConfig):
    """生产环境配置"""
    # 报警内容 环境区分
    ENV_TEXT = "生产环境"
    # 线上环境redis地址
    REDIS_INFO = {
        'host': 'r-bp1fogs2mflr1ybfot.redis.rds.aliyuncs.com',
        'port': 6379,
        'password': 'Wqsd@2019',
    }

    # Hologres连接参数,服务器使用
    HOLOGRES_INFO = {
        'host': 'hgprecn-cn-7pp28y18c00c-cn-hangzhou-vpc.hologres.aliyuncs.com',
        'port': 80,
        'dbname': 'dssm',
        'user': 'LTAI5tMPqPy9yboQAf1mBCCN',
        'password': '4BEcOgxREOPq7t3A7EWkjciVULeQGj'
    }

    # 生产环境mysql地址
    MYSQL_INFO = {
        'host': 'rr-bp1x9785e8h5452bi157.mysql.rds.aliyuncs.com',
        'port': 3306,
        'user': 'wx2016_longvideo',
        'password': 'wx2016_longvideoP@assword1234',
        'db': 'longvideo',
        'charset': 'utf8'
    }

    # Hologres视频状态存储表名
    VIDEO_STATUS = 'longvideo.dwd_mdm_item_video_stat'

    # 用户已观看视频过滤 & 视频审核条件过滤 & 是否进入老年人社区过滤 & 话题状态过滤 接口地址
    # 参数types: 1-已观看 2-视频状态 3-是否进入老年人社区过滤 4-话题状态
    VIDEO_FILTER_URL = 'http://recommend-common-internal.piaoquantv.com/longvideoapi/openapi/recommend/filterVideos'

    # 获取视频在流量池中的剩余可分发数接口地址
    GET_REMAIN_VIEW_COUNT_URL = 'http://api-internal.piaoquantv.com/flowpool/video/remainViewCount'

    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'rov-server',
    }

    # # AB实验配置
    # AB_EXP_CODE = {
    #     'rec_size_home': '003',
    #     'rec_size_relevant': '004',
    #     'rule_rank1': '011'
    # }


def set_config():
    # 获取环境变量 ROV_SERVER_ENV
    env = os.environ.get('ROV_SERVER_ENV')
    # env = 'dev'
    if env is None:
        # log_.error('ENV ERROR: is None!')
        return
    if env == 'dev':
        return DevelopmentConfig()
    elif env == 'test':
        return TestConfig()
    elif env == 'pre':
        return PreProductionConfig()
    elif env == 'pro':
        return ProductionConfig()
    else:
        # log_.error('ENV ERROR: is {}'.format(env))
        return