randydev commited on
Commit
619e592
·
verified ·
1 Parent(s): f0c90e8

Create twitter/util.js

Browse files
Files changed (1) hide show
  1. lib/twitter/util.js +72 -0
lib/twitter/util.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export function stringifyCookies(cookies) {
2
+ return cookies.map(cookie => cookie.split(';')[0]).join('; ');
3
+ }
4
+
5
+ const LOOKUP = [
6
+ "12nDjlVB", "1136148EijDiJ", "length", "3833564PCTrBF",
7
+ "125036Fmaqlb", "424BQwERO", "2222cxvJYR", "toBase64",
8
+ "min", "15459928mOwUKl", "65CjoIor", "6884325aeKsEh",
9
+ "8VQEOyR", "5186520rNJujb", "pow"
10
+ ];
11
+
12
+ function look(a) {
13
+ if (a < 136 || a >= 136 + LOOKUP.length) return undefined;
14
+ return LOOKUP[a - 136];
15
+ }
16
+
17
+ const C_NUMBER = 562586;
18
+
19
+ export function generateTokenId(id) {
20
+ let f = 255, g = 0, h = 0, i = 0;
21
+ let buffer = new Uint8Array(46), l = "";
22
+
23
+ buffer[36] = id.length;
24
+
25
+ function k(a, b, c) {
26
+ for (let i = 0; i < Math.min(c, a.length); ++i) {
27
+ h = parseInt(a[i]);
28
+ buffer[i + b] = h;
29
+ g += Math.pow(h, 8);
30
+ }
31
+ }
32
+
33
+ k(id, 4, 32 - buffer[36]);
34
+
35
+ for (i = id.length - 1; i >= 0; l += id[i--]);
36
+ k(l, 36 - l.length, l.length);
37
+ g >>>= 0;
38
+
39
+ function m(a, b) {
40
+ buffer[b] = a & 255;
41
+ buffer[b + 1] = (a >> 8) & 255;
42
+ buffer[b + 2] = (a >> 16) & 255;
43
+ buffer[b + 3] = (a >> 24) & 255;
44
+ }
45
+
46
+ m(g, 0);
47
+ for (i = 4; i < 36; ++i) {
48
+ buffer[i] += g % (f - 10);
49
+ }
50
+
51
+ let n = f * 4, o = f * 4;
52
+ for (i = 0; i < 32; ++i) {
53
+ let p = buffer[i];
54
+ n ^= p;
55
+ n += (n << 1) + (n << 4) + (n << 7) + (n << 8) + (n << 24);
56
+ o = (o << 5) - o + p;
57
+ }
58
+
59
+ m(n >>> 0, 37);
60
+ m(o >>> 0, 39);
61
+ buffer[buffer.length - 1] = 1;
62
+
63
+ return toBase64(buffer);
64
+ }
65
+
66
+ function toBase64(buffer) {
67
+ return Buffer.from(buffer).toString('base64');
68
+ }
69
+
70
+ function _btoa(input) {
71
+ return Buffer.from(input, 'binary').toString('base64');
72
+ }