80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
|
import hashlib
|
|||
|
import json
|
|||
|
import logging
|
|||
|
import urllib.parse
|
|||
|
|
|||
|
from django.conf import settings
|
|||
|
import requests
|
|||
|
|
|||
|
loger = logging.getLogger('apps')
|
|||
|
|
|||
|
|
|||
|
class KZ:
|
|||
|
def __init__(self, appkey=settings.KZ.get('appkey'), secret=settings.KZ.get('secret')):
|
|||
|
self.appkey = appkey
|
|||
|
self.secret = secret
|
|||
|
self.base_url = 'https://cloud.kuaizhan.com/api'
|
|||
|
|
|||
|
def sign_top_request(self, params, secret=None):
|
|||
|
secret = secret or self.secret
|
|||
|
# 第一步:检查参数是否已经排序
|
|||
|
keys = sorted(params.keys())
|
|||
|
# 第二步:把所有参数名和参数值串在一起
|
|||
|
query = secret
|
|||
|
for key in keys:
|
|||
|
value = params[key]
|
|||
|
if isinstance(value, bool):
|
|||
|
value = json.dumps(value)
|
|||
|
if key and str(key).strip() and value and str(value).strip() and key != "sign":
|
|||
|
query += key + str(value)
|
|||
|
query += secret
|
|||
|
# 第三步:使用MD5加密
|
|||
|
return hashlib.md5(query.encode('utf-8')).hexdigest()
|
|||
|
|
|||
|
def gen_short_link(
|
|||
|
self,
|
|||
|
link,
|
|||
|
appkey=None,
|
|||
|
response_format='json',
|
|||
|
callback=None,
|
|||
|
expire=None,
|
|||
|
domain=None,
|
|||
|
use_domain_pool=None,
|
|||
|
):
|
|||
|
link = urllib.parse.quote(link)
|
|||
|
params = {
|
|||
|
'appKey': appkey or self.appkey,
|
|||
|
'link': link,
|
|||
|
'format': response_format,
|
|||
|
'callback': callback,
|
|||
|
'expire': expire,
|
|||
|
'domain': domain,
|
|||
|
'useDomainPool': use_domain_pool,
|
|||
|
}
|
|||
|
sign = self.sign_top_request(params, secret=self.secret)
|
|||
|
params['sign'] = sign
|
|||
|
url = f'{self.base_url}/v1/km/genShortLink'
|
|||
|
res = requests.get(url, params)
|
|||
|
data = res.json()
|
|||
|
if data.get('code') == 0:
|
|||
|
return True, data.get('url')
|
|||
|
loger.error(f'获取快码失败---->{data}')
|
|||
|
return False, data
|
|||
|
|
|||
|
def change_domain_https_forward(self, site_id=8081085619, https_forward=True, domain='elmbwc.kuaizhan.com'):
|
|||
|
"""
|
|||
|
API-开启域名Https跳转
|
|||
|
"""
|
|||
|
data = {
|
|||
|
'appKey': self.appkey,
|
|||
|
'siteId': site_id,
|
|||
|
'httpsForward': https_forward,
|
|||
|
'domain': domain
|
|||
|
}
|
|||
|
sign = self.sign_top_request(data)
|
|||
|
data['sign'] = sign
|
|||
|
url = f'{self.base_url}/v1/tbk/changeDomainHttpsForward'
|
|||
|
res = requests.post(url, data=data)
|
|||
|
print(res.json())
|
|||
|
|