rc-plugin/utils/weibo.js
zhiyu1998 073ff99395 feat: V1.5.4 支持pixivision解析
1. 支持weibo的tv解析(前提要有mid)
2. 支持pixivision解析
2024-03-03 14:25:21 +08:00

32 lines
1.1 KiB
JavaScript

// Base62 encode function in JavaScript
const ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
const base62_encode = (number) => {
if (number === 0) return '0';
let result = '';
while (number > 0) {
result = ALPHABET[number % 62] + result;
number = Math.floor(number / 62);
}
return result;
};
// Convert mid to id
export const mid2id = (mid) => {
mid = mid.toString().split('').reverse().join(''); // Reverse the input string
const size = Math.ceil(mid.length / 7);
let result = [];
for (let i = 0; i < size; i++) {
let s = mid.slice(i * 7, (i + 1) * 7).split('').reverse().join(''); // Chunk and reverse each chunk
s = base62_encode(parseInt(s, 10)); // Encode each chunk using base62
if (i < size - 1 && s.length < 4) {
// Pad with leading zeros if necessary
s = '0'.repeat(4 - s.length) + s;
}
result.push(s);
}
result.reverse(); // Reverse the result array to maintain order
return result.join(''); // Join the array into a single string
};