mirror of
https://github.com/hyugogirubato/cbz.git
synced 2026-09-26 13:31:00 +00:00
69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
import secrets
|
|
import random
|
|
from datetime import datetime
|
|
|
|
import requests
|
|
|
|
from requests_toolbelt.multipart.encoder import MultipartEncoder
|
|
|
|
|
|
def fields(value: dict) -> dict:
|
|
return {key: str(val) for key, val in value.items()}
|
|
|
|
|
|
def get_id() -> str:
|
|
group1 = '-'.join([f'{random.randint(0, 255):02x}' for _ in range(6)])
|
|
group2 = '-'.join([f'{random.randint(0, 255):02x}' for _ in range(6)])
|
|
return f'{group1}:{group2}'
|
|
|
|
|
|
if __name__ == '__main__':
|
|
database_table = 20 # Amazon
|
|
device_token = secrets.token_hex(16)
|
|
media_key_id = 'ac397b17ffaf4787af545de3035ca77c'
|
|
device_id = get_id()
|
|
user_email = 'example@mail.com'
|
|
user_token = secrets.token_hex(16)
|
|
device_platform = 49
|
|
app_version = 6169
|
|
user_subscription = 'register'
|
|
media_id = 'B0CPPH5WK4'
|
|
date = datetime.now().strftime('%Y-%m-%d')
|
|
|
|
multipart_data = MultipartEncoder(
|
|
fields({
|
|
'IV': 100,
|
|
'CM': 103,
|
|
'TB': database_table,
|
|
'KD': media_key_id,
|
|
'MD': device_id,
|
|
'EM': user_email,
|
|
'PW': user_token,
|
|
'CD': device_platform,
|
|
'AV': app_version,
|
|
'RT': user_subscription,
|
|
'PD': media_id,
|
|
'WD': 2,
|
|
'LT': date
|
|
})
|
|
)
|
|
|
|
# @Info: Cached keys
|
|
r = requests.request(
|
|
method='POST',
|
|
url='https://drm-u1.dvdfab.cn/ak/uc/',
|
|
data=multipart_data,
|
|
headers={
|
|
'Accept': '*/*',
|
|
'Content-Type': multipart_data.content_type,
|
|
'Expect': '100-continue',
|
|
'User-Agent': 'DVDFab'
|
|
}
|
|
)
|
|
r.raise_for_status()
|
|
content = r.json()
|
|
|
|
data = content['d']
|
|
mod_key = content['k']
|
|
unknown = content['u'] # TODO: ??
|