返回提交历史
Modified
docs/misc/bvid_desc.md
+24
-29
XFEstudio/bilibili-API-collect
Update bvid_desc.md (#824)
python code
08e41c7
代码差异
1 个文件
+24
-29
@@ -83,47 +83,42 @@
83
83
XOR = 177451812
84
84
ADD = 100618342136696320
85
85
TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
86
MAP = {
87
0:9,
88
1:8,
89
2:1,
90
3:6,
91
4:2,
92
5:4,
93
6:0,
94
7:7,
95
8:3,
96
9:5
97
}
98
def av2bv(av):
86
MAP = 9, 8, 1, 6, 2, 4, 0, 7, 3, 5
87
88
89
def av2bv(av: int) -> int:
99
90
av = (av ^ XOR) + ADD
100
bv = [""]*10
91
bv = [""] * 10
101
92
for i in range(10):
102
bv[MAP[i]] = TABLE[(av//58**i)%58]
103
return "".join(bv)
93
bv[MAP[i]] = TABLE[(av // 58**i) % 58]
94
return int("".join(bv))
104
95
105
def bv2av(bv):
106
av = [""]*10
96
97
def bv2av(bv: int) -> int:
98
av = [""] * 10
107
99
s = 0
108
100
for i in range(10):
109
s += TABLE.find(bv[MAP[i]])*58**i
110
av=(s-ADD)^XOR
101
s += TABLE.find(bv[MAP[i]]) * 58**i
102
av = (s - ADD) ^ XOR
103
104
return av
111
105
112
return(av)
113
106
114
107
def main():
115
while True:
116
mod = input("1.AV2BV\n2.BV2AV\n3.Exit\n你的选择:")
117
if mod == "1":
118
print("BV号是: BV"+av2bv(int(input("AV号是:"))))
119
elif mod == "2":
120
print("AV号是 AV"+str(bv2av(input("BV号是"))))
121
elif mod == "3":
108
while 1:
109
mode = input("1. AV to BV\n2. BV to AV\n3. Exit\n你的选择:")
110
if mode == "1":
111
print(f"BV号是:BV {av2bv(int(input('AV号是:')))}")
112
elif mode == "2":
113
print(f"AV号是:AV {bv2av(input('BV号是:'))}")
114
elif mode == "3":
122
115
break
123
116
else:
124
117
print("输入错误请重新输入")
125
118
126
main()
119
120
if __name__ == "__main__":
121
main()
127
122
```
128
123
129
124