Добавлена возможность подписи запросов и коневертации форматов track_id
Добавлены функции get_sign_request, convert_track_id_to_number
このコミットが含まれているのは:
コミット
cdaa29a56c
|
@ -0,0 +1,9 @@
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
|
|
||||||
|
def convert_track_id_to_number(track_id: Union[str, int]) -> int:
|
||||||
|
"""TODO"""
|
||||||
|
if isinstance(track_id, str):
|
||||||
|
track_id = int(track_id.split(':')[0])
|
||||||
|
|
||||||
|
return track_id
|
|
@ -0,0 +1,32 @@
|
||||||
|
from typing import Union
|
||||||
|
from dataclasses import dataclass
|
||||||
|
import datetime
|
||||||
|
import hmac
|
||||||
|
import hashlib
|
||||||
|
import base64
|
||||||
|
|
||||||
|
from yandex_music.utils.convert_track_id import convert_track_id_to_number
|
||||||
|
|
||||||
|
|
||||||
|
DEFAULT_SIGN_KEY = 'p93jhgh689SBReK6ghtw62'
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Sign:
|
||||||
|
"""TODO"""
|
||||||
|
|
||||||
|
timestamp: int
|
||||||
|
value: str
|
||||||
|
|
||||||
|
|
||||||
|
def get_sign_request(track_id: Union[int, str], key: str = DEFAULT_SIGN_KEY) -> Sign:
|
||||||
|
"""TODO"""
|
||||||
|
track_id = convert_track_id_to_number(track_id)
|
||||||
|
|
||||||
|
timestamp = int(datetime.datetime.now().timestamp())
|
||||||
|
message = f'{track_id}{timestamp}'
|
||||||
|
|
||||||
|
hmac_sign = hmac.new(key.encode('UTF-8'), message.encode('UTF-8'), hashlib.sha256).digest()
|
||||||
|
sign = base64.b64encode(hmac_sign).decode('UTF-8')
|
||||||
|
|
||||||
|
return Sign(timestamp, sign)
|
読み込み中…
新しいイシューから参照