Fix parameter switching and tests
This commit is contained in:
@@ -52,33 +52,18 @@ def _nval(val):
|
|||||||
buf += val.to_bytes(1,'big')
|
buf += val.to_bytes(1,'big')
|
||||||
return buf
|
return buf
|
||||||
|
|
||||||
|
|
||||||
def _tzparity(video_id,times):
|
|
||||||
t=0
|
|
||||||
for i,s in enumerate(video_id):
|
|
||||||
ss = ord(s)
|
|
||||||
if(ss % 2 == 0):
|
|
||||||
t += ss*(12-i)
|
|
||||||
else:
|
|
||||||
t ^= ss*i
|
|
||||||
|
|
||||||
return ((times^t) % 2).to_bytes(1,'big')
|
|
||||||
|
|
||||||
|
|
||||||
def _build(video_id, seektime, topchatonly = False):
|
def _build(video_id, seektime, topchatonly = False):
|
||||||
switch_01 = b'\x04' if topchatonly else b'\x01'
|
switch_01 = b'\x04' if topchatonly else b'\x01'
|
||||||
|
|
||||||
|
|
||||||
if seektime < 0:
|
if seektime < 0:
|
||||||
times =_nval(0)
|
times =_nval(0)
|
||||||
switch = b'\x04'
|
switch = b'\x04'
|
||||||
if seektime == 0:
|
elif seektime == 0:
|
||||||
times =_nval(1)
|
times =_nval(1)
|
||||||
switch = b'\x03'
|
switch = b'\x03'
|
||||||
else:
|
else:
|
||||||
times =_nval(int(seektime*1000000))
|
times =_nval(int(seektime*1000000))
|
||||||
switch = b'\x03'
|
switch = b'\x03'
|
||||||
parity = _tzparity(video_id, seektime)
|
parity = b'\x00'
|
||||||
|
|
||||||
header_magic= b'\xA2\x9D\xB0\xD3\x04'
|
header_magic= b'\xA2\x9D\xB0\xD3\x04'
|
||||||
sep_0 = b'\x1A'
|
sep_0 = b'\x1A'
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import requests, json
|
|||||||
from pytchat.paramgen import arcparam
|
from pytchat.paramgen import arcparam
|
||||||
|
|
||||||
def test_arcparam_0(mocker):
|
def test_arcparam_0(mocker):
|
||||||
param = arcparam.getparam("01234567890")
|
param = arcparam.getparam("01234567890",-1)
|
||||||
assert "op2w0wRyGjxDZzhhRFFvTE1ERXlNelExTmpjNE9UQWFFLXFvM2JrQkRRb0xNREV5TXpRMU5qYzRPVEFnQVElM0QlM0QoATAAOABAAEgEUhwIABAAGAAgACoOc3RhdGljY2hlY2tzdW1AAFgDYAFoAXIECAEQAXgA" == param
|
assert "op2w0wRyGjxDZzhhRFFvTE1ERXlNelExTmpjNE9UQWFFLXFvM2JrQkRRb0xNREV5TXpRMU5qYzRPVEFnQVElM0QlM0QoADAAOABAAEgEUhwIABAAGAAgACoOc3RhdGljY2hlY2tzdW1AAFgDYAFoAHIECAEQAHgA" == param
|
||||||
|
|
||||||
|
|
||||||
def test_arcparam_1(mocker):
|
def test_arcparam_1(mocker):
|
||||||
param = arcparam.getparam("01234567890", seektime = 100000)
|
param = arcparam.getparam("01234567890", seektime = 100000)
|
||||||
assert "op2w0wR3GjxDZzhhRFFvTE1ERXlNelExTmpjNE9UQWFFLXFvM2JrQkRRb0xNREV5TXpRMU5qYzRPVEFnQVElM0QlM0QogNDbw_QCMAA4AEAASANSHAgAEAAYACAAKg5zdGF0aWNjaGVja3N1bUAAWANgAWgBcgQIARABeAA%3D" == param
|
assert "op2w0wR3GjxDZzhhRFFvTE1ERXlNelExTmpjNE9UQWFFLXFvM2JrQkRRb0xNREV5TXpRMU5qYzRPVEFnQVElM0QlM0QogNDbw_QCMAA4AEAASANSHAgAEAAYACAAKg5zdGF0aWNjaGVja3N1bUAAWANgAWgAcgQIARAAeAA%3D" == param
|
||||||
|
|
||||||
def test_arcparam_2(mocker):
|
def test_arcparam_2(mocker):
|
||||||
param = arcparam.getparam("SsjCnHOk-Sk")
|
param = arcparam.getparam("SsjCnHOk-Sk")
|
||||||
@@ -23,4 +23,7 @@ def test_arcparam_2(mocker):
|
|||||||
test_id = chatdata[0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["id"]
|
test_id = chatdata[0]["addChatItemAction"]["item"]["liveChatTextMessageRenderer"]["id"]
|
||||||
print(test_id)
|
print(test_id)
|
||||||
assert "CjoKGkNMYXBzZTdudHVVQ0Zjc0IxZ0FkTnFnQjVREhxDSnlBNHV2bnR1VUNGV0dnd2dvZDd3NE5aZy0w" == test_id
|
assert "CjoKGkNMYXBzZTdudHVVQ0Zjc0IxZ0FkTnFnQjVREhxDSnlBNHV2bnR1VUNGV0dnd2dvZDd3NE5aZy0w" == test_id
|
||||||
|
|
||||||
|
def test_arcparam_3(mocker):
|
||||||
|
param = arcparam.getparam("01234567890")
|
||||||
|
assert "op2w0wRyGjxDZzhhRFFvTE1ERXlNelExTmpjNE9UQWFFLXFvM2JrQkRRb0xNREV5TXpRMU5qYzRPVEFnQVElM0QlM0QoATAAOABAAEgDUhwIABAAGAAgACoOc3RhdGljY2hlY2tzdW1AAFgDYAFoAHIECAEQAHgA" == param
|
||||||
|
|||||||
Reference in New Issue
Block a user