Merge pull request #963 from GalaxySnail/update-bv-python

修复BV号av号转换算法的 python 实现中的类型错误,提高可读性
This commit is contained in:
z0z0r4
2024-02-08 23:28:24 +08:00
committed by GitHub

View File

@@ -162,20 +162,19 @@ BASE = len(ALPHABET)
PREFIX = "BV1" PREFIX = "BV1"
PREFIX_LEN = len(PREFIX) PREFIX_LEN = len(PREFIX)
CODE_LEN = len(ENCODE_MAP) CODE_LEN = len(ENCODE_MAP)
BV_LEN = PREFIX_LEN + CODE_LEN
def av2bv(aid: int) -> str: def av2bv(aid: int) -> str:
bvid = [""] * 9 bvid = [""] * 9
tmp = (MAX_AID | aid) ^ XOR_CODE tmp = (MAX_AID | aid) ^ XOR_CODE
for i in range(CODE_LEN): for i in range(CODE_LEN):
bvid[ENCODE_MAP[i]] = ALPHABET[int(tmp % BASE)] bvid[ENCODE_MAP[i]] = ALPHABET[tmp % BASE]
tmp /= BASE tmp //= BASE
return PREFIX + "".join(bvid) return PREFIX + "".join(bvid)
def bv2av(bvid: str) -> int: def bv2av(bvid: str) -> int:
assert bvid[:3] == PREFIX assert bvid[:3] == PREFIX
bvid = list(bvid[3:]) bvid = bvid[3:]
tmp = 0 tmp = 0
for i in range(CODE_LEN): for i in range(CODE_LEN):
idx = ALPHABET.index(bvid[DECODE_MAP[i]]) idx = ALPHABET.index(bvid[DECODE_MAP[i]])