#!/usr/bin/env python3  
# -*- coding: utf-8 -*-  
"""
@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
@AUTHOR: ASJRD018
@NAME: Ansjer
@software: PyCharm
@DATE: 2018/6/8 15:22
@Version: python3.6
@MODIFY DECORD:ansjer dev
@file: encryHlsVodUrl.py
@Contact: chanjunkai@163.com
"""
# coding=utf-8
# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +
#        ┏┓　　　┏┓+ +
# 　　　┏┛┻━━━┛┻┓ + +
# 　　　┃　　　　　　 ┃ 　
# 　　　┃　　　━　　　┃ ++ + + +
# 　　 ████━████ ┃+
# 　　　┃　　　　　　 ┃ +
# 　　　┃　　　┻　　　┃
# 　　　┃　　　　　　 ┃ + +
# 　　　┗━┓　　　┏━┛
# 　　　　　┃　　　┃　　　　　　　　　　　
# 　　　　　┃　　　┃ + + + +
# 　　　　　┃　　　┃　　　　Codes are far away from bugs with the animal protecting　　　
# 　　　　　┃　　　┃ + 　　　　神兽保佑,代码无bug　　
# 　　　　　┃　　　┃
# 　　　　　┃　　　┃　　+　　　　　　　　　
# 　　　　　┃　 　　┗━━━┓ + +
# 　　　　　┃ 　　　　　　　┣┓
# 　　　　　┃ 　　　　　　　┏┛
# 　　　　　┗┓┓┏━┳┓┏┛ + + + +
# 　　　　　　┃┫┫　┃┫┫
# 　　　　　　┗┻┛　┗┻┛+ + + +
# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +"""
"""
"""
import base64
import hashlib
import time

def md5(text, isBackByte=False):
    """md5加密函数"""
    md5 = hashlib.md5()
    if isinstance(text, bytes):
        md5.update(text)
    else:
        md5.update(text.encode('utf-8'))

    if isBackByte:
        # 返回二进制的加密结果
        return md5.digest()

        # 返回十六进制的机密结果
    return md5.hexdigest()


def base64_encode(text, isBytes=False):
    """进行base64编码处理"""
    if isBytes:
        return base64.b64encode(text)
    return base64.b64encode(bytes(text, encoding="utf-8"))


def get_timestamp10():
    """获取当前时间长度为10位长度的时间戳"""
    return int(time.time())

def getSignUrl(path):
    secret = 'ansjer';  # 密钥--对应#st的哈希格式为 secret+url+e,e为时间戳单位s，url为请求地址  secure_link_md5 xiaozhong.com$uri$arg_e;
    # 下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期
    expire = get_timestamp10() + 1800;
    res = md5(str(secret) + str(path) + str(expire), True)
    md5str = str(base64_encode(res, True))
    md5st = md5str.replace('b\'', '').replace('\'', '').replace('+', '-').replace('/', '_').replace('=', '')
    url = 'http://52.8.197.107'+path+'.m3u8?' + 'st=' + str(md5st) + '&e=' + str(expire)
    return url

# print('生成代相关认证签名的地址：','http://192.168.136.45:8384/hls/5553.mp4/index.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))
# print('生成代相关认证签名的地址：','http://52.8.197.107/444.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))
# print('生成代相关认证签名的地址：','http://d3puj5e5oiunfy.cloudfront.net/444.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))
