Добавлена возможность подписи запросов и коневертации форматов 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)
|
読み込み中…
新しいイシューから参照