XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

Update bvid_desc.md (#824)

python code

08e41c7
Mango Jelly Pudding <74277414+EvanHsieh0415@users.noreply.github.com>
提交于

代码差异

1 个文件 +24 -29
Modified docs/misc/bvid_desc.md +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