本帖最后由 8192Bit 于 2024-10-31 22:45 编辑
试着自己实现了一下av转bv算法,希望可以加入av号跳转功能
另外视频搜索等功能应该是在远程服务器上执行的,感谢大佬的付出
- long power(int a, int b) {
- long result = 1L;
- for (int i = 0; i < b; i++)
- result *= a;
- return result;
- }
- // 修改自 https://www.zhihu.com/question/381784377/answer/1099438784
- String avidToBvid(String avid) { //不带av两个字母
- try {
- String table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
- long xor = 177451812L;
- long add = 8728348608L;
- int[] s = { 11, 10, 3, 8, 4, 6 };
- long av = Long.parseLong(avid);
- av = (av ^ xor) + add;
- char[] r = { 'B', 'V', '1', ' ', ' ', '4', ' ', '1', ' ', '7', ' ', ' ' };
- for (int i = 0; i < 6; i++) {
- r[s[i]] = table.charAt((int) (Math.floor(av / power(58, i)) % 58));
- }
- return String.valueOf(r);
- } catch (NumberFormatException e) {
- e.printStackTrace();
- return "";
- }
- }
复制代码
|