ryu-js / lib /twitter /util.js
randydev's picture
Create twitter/util.js
619e592 verified
raw
history blame
1.73 kB
export function stringifyCookies(cookies) {
return cookies.map(cookie => cookie.split(';')[0]).join('; ');
}
const LOOKUP = [
"12nDjlVB", "1136148EijDiJ", "length", "3833564PCTrBF",
"125036Fmaqlb", "424BQwERO", "2222cxvJYR", "toBase64",
"min", "15459928mOwUKl", "65CjoIor", "6884325aeKsEh",
"8VQEOyR", "5186520rNJujb", "pow"
];
function look(a) {
if (a < 136 || a >= 136 + LOOKUP.length) return undefined;
return LOOKUP[a - 136];
}
const C_NUMBER = 562586;
export function generateTokenId(id) {
let f = 255, g = 0, h = 0, i = 0;
let buffer = new Uint8Array(46), l = "";
buffer[36] = id.length;
function k(a, b, c) {
for (let i = 0; i < Math.min(c, a.length); ++i) {
h = parseInt(a[i]);
buffer[i + b] = h;
g += Math.pow(h, 8);
}
}
k(id, 4, 32 - buffer[36]);
for (i = id.length - 1; i >= 0; l += id[i--]);
k(l, 36 - l.length, l.length);
g >>>= 0;
function m(a, b) {
buffer[b] = a & 255;
buffer[b + 1] = (a >> 8) & 255;
buffer[b + 2] = (a >> 16) & 255;
buffer[b + 3] = (a >> 24) & 255;
}
m(g, 0);
for (i = 4; i < 36; ++i) {
buffer[i] += g % (f - 10);
}
let n = f * 4, o = f * 4;
for (i = 0; i < 32; ++i) {
let p = buffer[i];
n ^= p;
n += (n << 1) + (n << 4) + (n << 7) + (n << 8) + (n << 24);
o = (o << 5) - o + p;
}
m(n >>> 0, 37);
m(o >>> 0, 39);
buffer[buffer.length - 1] = 1;
return toBase64(buffer);
}
function toBase64(buffer) {
return Buffer.from(buffer).toString('base64');
}
function _btoa(input) {
return Buffer.from(input, 'binary').toString('base64');
}