twitter-openapi-typescript 0.0.32 → 0.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cookies.json +476 -0
- package/dist/src/api.d.ts +7 -31
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +63 -38
- package/dist/src/api.js.map +1 -1
- package/package.json +2 -3
- package/src/api.ts +29 -27
- package/test/init.ts +12 -8
package/cookies.json
ADDED
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"domain": ".google.com",
|
|
4
|
+
"expirationDate": 1730989729.258904,
|
|
5
|
+
"hostOnly": false,
|
|
6
|
+
"httpOnly": true,
|
|
7
|
+
"name": "SNID",
|
|
8
|
+
"path": "/verify",
|
|
9
|
+
"sameSite": "lax",
|
|
10
|
+
"secure": true,
|
|
11
|
+
"session": false,
|
|
12
|
+
"storeId": "0",
|
|
13
|
+
"value": "AKzhCTYyIMYe7SbobB_LljR4gHI-KwuIOih2Xg3KM-V0OPWSrGvZI27NPJlCYhnWSeElXjY12a0IbUJRS6yb8ztATWQTzPi3F4o"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"domain": ".t.co",
|
|
17
|
+
"expirationDate": 1749717719.285658,
|
|
18
|
+
"hostOnly": false,
|
|
19
|
+
"httpOnly": false,
|
|
20
|
+
"name": "muc_ads",
|
|
21
|
+
"path": "/",
|
|
22
|
+
"sameSite": "no_restriction",
|
|
23
|
+
"secure": true,
|
|
24
|
+
"session": false,
|
|
25
|
+
"storeId": "0",
|
|
26
|
+
"value": "57dbafb7-cbdb-450d-b7e7-ef2f921e85d4"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"domain": ".twitter.com",
|
|
30
|
+
"expirationDate": 1749740881.722929,
|
|
31
|
+
"hostOnly": false,
|
|
32
|
+
"httpOnly": false,
|
|
33
|
+
"name": "_ga",
|
|
34
|
+
"path": "/",
|
|
35
|
+
"sameSite": "unspecified",
|
|
36
|
+
"secure": false,
|
|
37
|
+
"session": false,
|
|
38
|
+
"storeId": "0",
|
|
39
|
+
"value": "GA1.2.1888940076.1715157719"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"domain": ".twitter.com",
|
|
43
|
+
"expirationDate": 1715267281,
|
|
44
|
+
"hostOnly": false,
|
|
45
|
+
"httpOnly": false,
|
|
46
|
+
"name": "_gid",
|
|
47
|
+
"path": "/",
|
|
48
|
+
"sameSite": "unspecified",
|
|
49
|
+
"secure": false,
|
|
50
|
+
"session": false,
|
|
51
|
+
"storeId": "0",
|
|
52
|
+
"value": "GA1.2.841993924.1715157719"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"domain": ".twitter.com",
|
|
56
|
+
"expirationDate": 1749740874.292342,
|
|
57
|
+
"hostOnly": false,
|
|
58
|
+
"httpOnly": true,
|
|
59
|
+
"name": "kdt",
|
|
60
|
+
"path": "/",
|
|
61
|
+
"sameSite": "unspecified",
|
|
62
|
+
"secure": true,
|
|
63
|
+
"session": false,
|
|
64
|
+
"storeId": "0",
|
|
65
|
+
"value": "HQjxS82XjlGh9mbbxhVJFGfIQfgo0FZIRFpiSyHF"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"domain": ".doubleclick.net",
|
|
69
|
+
"expirationDate": 1749717741.057308,
|
|
70
|
+
"hostOnly": false,
|
|
71
|
+
"httpOnly": true,
|
|
72
|
+
"name": "IDE",
|
|
73
|
+
"path": "/",
|
|
74
|
+
"sameSite": "no_restriction",
|
|
75
|
+
"secure": true,
|
|
76
|
+
"session": false,
|
|
77
|
+
"storeId": "0",
|
|
78
|
+
"value": "AHWqTUnJtDNNT-s3IJWz3J8OcQVpEWmRj96dbGlDKGgtWWMQ6WP1siaabdKy2_uOJnc"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"domain": ".proxsee.pscp.tv",
|
|
82
|
+
"expirationDate": 1716367546.646592,
|
|
83
|
+
"hostOnly": false,
|
|
84
|
+
"httpOnly": false,
|
|
85
|
+
"name": "user_id",
|
|
86
|
+
"path": "/",
|
|
87
|
+
"sameSite": "no_restriction",
|
|
88
|
+
"secure": true,
|
|
89
|
+
"session": false,
|
|
90
|
+
"storeId": "0",
|
|
91
|
+
"value": "Zk2wumVjNDM5MTBlLTNjNDQtNDRjNC01MTQzLTc4MzM5OTdiOTMwMlnsBtFtOLfGy02YawTKD_Sl3JYNM6hCNgUmcxESOQ91"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"domain": ".google.com",
|
|
95
|
+
"expirationDate": 1730720735.760436,
|
|
96
|
+
"hostOnly": false,
|
|
97
|
+
"httpOnly": true,
|
|
98
|
+
"name": "AEC",
|
|
99
|
+
"path": "/",
|
|
100
|
+
"sameSite": "lax",
|
|
101
|
+
"secure": true,
|
|
102
|
+
"session": false,
|
|
103
|
+
"storeId": "0",
|
|
104
|
+
"value": "AQTF6HzXYhwWOXbgORPML1mL_gv6wGW7yzV300Omog5SKvXNzSZXkoYDrA"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"domain": ".chromewebstore.google.com",
|
|
108
|
+
"expirationDate": 1749728739.487012,
|
|
109
|
+
"hostOnly": false,
|
|
110
|
+
"httpOnly": false,
|
|
111
|
+
"name": "_ga",
|
|
112
|
+
"path": "/",
|
|
113
|
+
"sameSite": "unspecified",
|
|
114
|
+
"secure": false,
|
|
115
|
+
"session": false,
|
|
116
|
+
"storeId": "0",
|
|
117
|
+
"value": "GA1.1.105733270.1715168739"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"domain": "chromewebstore.google.com",
|
|
121
|
+
"expirationDate": 1717760739,
|
|
122
|
+
"hostOnly": true,
|
|
123
|
+
"httpOnly": false,
|
|
124
|
+
"name": "OTZ",
|
|
125
|
+
"path": "/",
|
|
126
|
+
"sameSite": "unspecified",
|
|
127
|
+
"secure": true,
|
|
128
|
+
"session": false,
|
|
129
|
+
"storeId": "0",
|
|
130
|
+
"value": "7547746_20_20__20_"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"domain": ".chromewebstore.google.com",
|
|
134
|
+
"expirationDate": 1749728742.694508,
|
|
135
|
+
"hostOnly": false,
|
|
136
|
+
"httpOnly": false,
|
|
137
|
+
"name": "_ga_KHZNC1Q6K0",
|
|
138
|
+
"path": "/",
|
|
139
|
+
"sameSite": "unspecified",
|
|
140
|
+
"secure": false,
|
|
141
|
+
"session": false,
|
|
142
|
+
"storeId": "0",
|
|
143
|
+
"value": "GS1.1.1715168739.1.0.1715168742.0.0.0"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"domain": "accounts.google.com",
|
|
147
|
+
"expirationDate": 1749728744.797473,
|
|
148
|
+
"hostOnly": true,
|
|
149
|
+
"httpOnly": true,
|
|
150
|
+
"name": "__Host-GAPS",
|
|
151
|
+
"path": "/",
|
|
152
|
+
"sameSite": "unspecified",
|
|
153
|
+
"secure": true,
|
|
154
|
+
"session": false,
|
|
155
|
+
"storeId": "0",
|
|
156
|
+
"value": "1:_kfyStmFghYA9E4BEKuFXyjD3zchiw:kawa_k6xUMmo7rnc"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"domain": "accounts.google.com",
|
|
160
|
+
"expirationDate": 1717760746,
|
|
161
|
+
"hostOnly": true,
|
|
162
|
+
"httpOnly": false,
|
|
163
|
+
"name": "OTZ",
|
|
164
|
+
"path": "/",
|
|
165
|
+
"sameSite": "unspecified",
|
|
166
|
+
"secure": true,
|
|
167
|
+
"session": false,
|
|
168
|
+
"storeId": "0",
|
|
169
|
+
"value": "7547746_20_20__20_"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"domain": ".twitter.com",
|
|
173
|
+
"expirationDate": 1749740880.325536,
|
|
174
|
+
"hostOnly": false,
|
|
175
|
+
"httpOnly": false,
|
|
176
|
+
"name": "dnt",
|
|
177
|
+
"path": "/",
|
|
178
|
+
"sameSite": "no_restriction",
|
|
179
|
+
"secure": true,
|
|
180
|
+
"session": false,
|
|
181
|
+
"storeId": "0",
|
|
182
|
+
"value": "1"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"domain": ".twitter.com",
|
|
186
|
+
"expirationDate": 1715188388.606841,
|
|
187
|
+
"hostOnly": false,
|
|
188
|
+
"httpOnly": false,
|
|
189
|
+
"name": "gt",
|
|
190
|
+
"path": "/",
|
|
191
|
+
"sameSite": "unspecified",
|
|
192
|
+
"secure": true,
|
|
193
|
+
"session": false,
|
|
194
|
+
"storeId": "0",
|
|
195
|
+
"value": "1788218082475082129"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"domain": ".arkoselabs.com",
|
|
199
|
+
"hostOnly": false,
|
|
200
|
+
"httpOnly": true,
|
|
201
|
+
"name": "_cfuvid",
|
|
202
|
+
"path": "/",
|
|
203
|
+
"sameSite": "no_restriction",
|
|
204
|
+
"secure": true,
|
|
205
|
+
"session": true,
|
|
206
|
+
"storeId": "0",
|
|
207
|
+
"value": "sa1u2OEMX_vq48reMXmy3ZpAhImp1V47zo3kfHYx2u4-1715179412267-0.0.1.1-604800000"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"domain": "twitter.com",
|
|
211
|
+
"hostOnly": true,
|
|
212
|
+
"httpOnly": false,
|
|
213
|
+
"name": "lang",
|
|
214
|
+
"path": "/",
|
|
215
|
+
"sameSite": "unspecified",
|
|
216
|
+
"secure": false,
|
|
217
|
+
"session": true,
|
|
218
|
+
"storeId": "0",
|
|
219
|
+
"value": "en"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"domain": ".google.com",
|
|
223
|
+
"expirationDate": 1717772336.393113,
|
|
224
|
+
"hostOnly": false,
|
|
225
|
+
"httpOnly": false,
|
|
226
|
+
"name": "1P_JAR",
|
|
227
|
+
"path": "/",
|
|
228
|
+
"sameSite": "no_restriction",
|
|
229
|
+
"secure": true,
|
|
230
|
+
"session": false,
|
|
231
|
+
"storeId": "0",
|
|
232
|
+
"value": "2024-05-08-14"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"domain": "github.com",
|
|
236
|
+
"hostOnly": true,
|
|
237
|
+
"httpOnly": true,
|
|
238
|
+
"name": "_gh_sess",
|
|
239
|
+
"path": "/",
|
|
240
|
+
"sameSite": "lax",
|
|
241
|
+
"secure": true,
|
|
242
|
+
"session": true,
|
|
243
|
+
"storeId": "0",
|
|
244
|
+
"value": "RvbyRH2ZkCKkTqoEuovwu3aQzq7H2FLbvEHB5KuZIASQ9wlFnIcV5q3TbVXZ3eUTDCL%2B2bsXu%2BMbb6ykHX36cBu%2Blk92vcDgxs8Jgwl67ZwZgv82b1Y%2BJYAXHU0g10eziwWFAoeK4IN27MyuZrGwSaspJSzCkXwv2UXl%2Fx8kYPhz56A4rGcroXCyKMKgz3h%2BoBGDBmHHcgqOp1sqh%2Bzn7NI%2Bcm8fXL9jpagDl7qj1v6req8fsF27kngO6ad14w7fXlBhPx3nQdYGi1UVpXmdkA%3D%3D--zYGIVtNEp1EaZJLG--rNGvMkHreT%2Fml43wpOZ4Lg%3D%3D"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"domain": ".github.com",
|
|
248
|
+
"expirationDate": 1746715800.140105,
|
|
249
|
+
"hostOnly": false,
|
|
250
|
+
"httpOnly": false,
|
|
251
|
+
"name": "_octo",
|
|
252
|
+
"path": "/",
|
|
253
|
+
"sameSite": "lax",
|
|
254
|
+
"secure": true,
|
|
255
|
+
"session": false,
|
|
256
|
+
"storeId": "0",
|
|
257
|
+
"value": "GH1.1.270146096.1715179800"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"domain": ".github.com",
|
|
261
|
+
"expirationDate": 1746715800.140129,
|
|
262
|
+
"hostOnly": false,
|
|
263
|
+
"httpOnly": true,
|
|
264
|
+
"name": "logged_in",
|
|
265
|
+
"path": "/",
|
|
266
|
+
"sameSite": "lax",
|
|
267
|
+
"secure": true,
|
|
268
|
+
"session": false,
|
|
269
|
+
"storeId": "0",
|
|
270
|
+
"value": "no"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"domain": ".github.com",
|
|
274
|
+
"hostOnly": false,
|
|
275
|
+
"httpOnly": false,
|
|
276
|
+
"name": "preferred_color_mode",
|
|
277
|
+
"path": "/",
|
|
278
|
+
"sameSite": "lax",
|
|
279
|
+
"secure": true,
|
|
280
|
+
"session": true,
|
|
281
|
+
"storeId": "0",
|
|
282
|
+
"value": "light"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"domain": ".github.com",
|
|
286
|
+
"hostOnly": false,
|
|
287
|
+
"httpOnly": false,
|
|
288
|
+
"name": "tz",
|
|
289
|
+
"path": "/",
|
|
290
|
+
"sameSite": "lax",
|
|
291
|
+
"secure": true,
|
|
292
|
+
"session": true,
|
|
293
|
+
"storeId": "0",
|
|
294
|
+
"value": "Asia%2FTokyo"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"domain": ".google.com",
|
|
298
|
+
"expirationDate": 1730991097.991571,
|
|
299
|
+
"hostOnly": false,
|
|
300
|
+
"httpOnly": true,
|
|
301
|
+
"name": "NID",
|
|
302
|
+
"path": "/",
|
|
303
|
+
"sameSite": "no_restriction",
|
|
304
|
+
"secure": true,
|
|
305
|
+
"session": false,
|
|
306
|
+
"storeId": "0",
|
|
307
|
+
"value": "514=wlqOMEBJfcOEe_Gi5vEp3VtvuDXBNpXxqIA9ubXaw-jUVPVzJwfhWVKii9EEP6PxujoMtl9XLabDHfAAB1rna47igcW6jUCrAKT3L1Mv60PjCMzJx0cwXqvbtHeV_3_5vtXiLERTVTl8Nw06JGcStlCi6fwecrRve9T8K5QHsL4WzTLTRW2JX1NfhKVd-4-xdmy60_BGSA"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"domain": "api.twitter.com",
|
|
311
|
+
"hostOnly": true,
|
|
312
|
+
"httpOnly": false,
|
|
313
|
+
"name": "lang",
|
|
314
|
+
"path": "/",
|
|
315
|
+
"sameSite": "unspecified",
|
|
316
|
+
"secure": false,
|
|
317
|
+
"session": true,
|
|
318
|
+
"storeId": "0",
|
|
319
|
+
"value": "en"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"domain": ".twitter.com",
|
|
323
|
+
"expirationDate": 1730948351.955283,
|
|
324
|
+
"hostOnly": false,
|
|
325
|
+
"httpOnly": false,
|
|
326
|
+
"name": "tweetdeck_version",
|
|
327
|
+
"path": "/",
|
|
328
|
+
"sameSite": "no_restriction",
|
|
329
|
+
"secure": true,
|
|
330
|
+
"session": false,
|
|
331
|
+
"storeId": "0",
|
|
332
|
+
"value": "legacy"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"domain": "pro.twitter.com",
|
|
336
|
+
"hostOnly": true,
|
|
337
|
+
"httpOnly": false,
|
|
338
|
+
"name": "lang",
|
|
339
|
+
"path": "/",
|
|
340
|
+
"sameSite": "unspecified",
|
|
341
|
+
"secure": false,
|
|
342
|
+
"session": true,
|
|
343
|
+
"storeId": "0",
|
|
344
|
+
"value": "en"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"domain": "www.google.com",
|
|
348
|
+
"expirationDate": 1715180936,
|
|
349
|
+
"hostOnly": true,
|
|
350
|
+
"httpOnly": false,
|
|
351
|
+
"name": "DV",
|
|
352
|
+
"path": "/",
|
|
353
|
+
"sameSite": "unspecified",
|
|
354
|
+
"secure": false,
|
|
355
|
+
"session": false,
|
|
356
|
+
"storeId": "0",
|
|
357
|
+
"value": "4yeQIqAzwgEeMMNiN6YW-gYkVm-L9Rg"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"domain": ".twitter.com",
|
|
361
|
+
"expirationDate": 1749740880.325569,
|
|
362
|
+
"hostOnly": false,
|
|
363
|
+
"httpOnly": false,
|
|
364
|
+
"name": "ads_prefs",
|
|
365
|
+
"path": "/",
|
|
366
|
+
"sameSite": "no_restriction",
|
|
367
|
+
"secure": true,
|
|
368
|
+
"session": false,
|
|
369
|
+
"storeId": "0",
|
|
370
|
+
"value": "\"HBESAAA=\""
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"domain": ".twitter.com",
|
|
374
|
+
"expirationDate": 1749740881.852635,
|
|
375
|
+
"hostOnly": false,
|
|
376
|
+
"httpOnly": true,
|
|
377
|
+
"name": "auth_multi",
|
|
378
|
+
"path": "/",
|
|
379
|
+
"sameSite": "lax",
|
|
380
|
+
"secure": true,
|
|
381
|
+
"session": false,
|
|
382
|
+
"storeId": "0",
|
|
383
|
+
"value": "\"1788218252742823936:bbc205f6bd8b3bfd1cc849b866ea19d0f701f458\""
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"domain": ".twitter.com",
|
|
387
|
+
"expirationDate": 1749740880.32569,
|
|
388
|
+
"hostOnly": false,
|
|
389
|
+
"httpOnly": true,
|
|
390
|
+
"name": "auth_token",
|
|
391
|
+
"path": "/",
|
|
392
|
+
"sameSite": "no_restriction",
|
|
393
|
+
"secure": true,
|
|
394
|
+
"session": false,
|
|
395
|
+
"storeId": "0",
|
|
396
|
+
"value": "567887642cac128d436f1669838eff8634ed636c"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"domain": ".twitter.com",
|
|
400
|
+
"expirationDate": 1749740880.533348,
|
|
401
|
+
"hostOnly": false,
|
|
402
|
+
"httpOnly": false,
|
|
403
|
+
"name": "guest_id_ads",
|
|
404
|
+
"path": "/",
|
|
405
|
+
"sameSite": "no_restriction",
|
|
406
|
+
"secure": true,
|
|
407
|
+
"session": false,
|
|
408
|
+
"storeId": "0",
|
|
409
|
+
"value": "v1%3A171518088096909817"
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"domain": ".twitter.com",
|
|
413
|
+
"expirationDate": 1749740880.533414,
|
|
414
|
+
"hostOnly": false,
|
|
415
|
+
"httpOnly": false,
|
|
416
|
+
"name": "guest_id_marketing",
|
|
417
|
+
"path": "/",
|
|
418
|
+
"sameSite": "no_restriction",
|
|
419
|
+
"secure": true,
|
|
420
|
+
"session": false,
|
|
421
|
+
"storeId": "0",
|
|
422
|
+
"value": "v1%3A171518088096909817"
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"domain": ".twitter.com",
|
|
426
|
+
"expirationDate": 1749740880.533452,
|
|
427
|
+
"hostOnly": false,
|
|
428
|
+
"httpOnly": false,
|
|
429
|
+
"name": "personalization_id",
|
|
430
|
+
"path": "/",
|
|
431
|
+
"sameSite": "no_restriction",
|
|
432
|
+
"secure": true,
|
|
433
|
+
"session": false,
|
|
434
|
+
"storeId": "0",
|
|
435
|
+
"value": "\"v1_ispLgIrF3rIBtScCPEXUiQ==\""
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"domain": ".twitter.com",
|
|
439
|
+
"expirationDate": 1749740880.533465,
|
|
440
|
+
"hostOnly": false,
|
|
441
|
+
"httpOnly": false,
|
|
442
|
+
"name": "guest_id",
|
|
443
|
+
"path": "/",
|
|
444
|
+
"sameSite": "no_restriction",
|
|
445
|
+
"secure": true,
|
|
446
|
+
"session": false,
|
|
447
|
+
"storeId": "0",
|
|
448
|
+
"value": "v1%3A171518088096909817"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"domain": ".twitter.com",
|
|
452
|
+
"expirationDate": 1746716881.146142,
|
|
453
|
+
"hostOnly": false,
|
|
454
|
+
"httpOnly": false,
|
|
455
|
+
"name": "twid",
|
|
456
|
+
"path": "/",
|
|
457
|
+
"sameSite": "no_restriction",
|
|
458
|
+
"secure": true,
|
|
459
|
+
"session": false,
|
|
460
|
+
"storeId": "0",
|
|
461
|
+
"value": "u%3D1788224200639160320"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"domain": ".twitter.com",
|
|
465
|
+
"expirationDate": 1749740880.533493,
|
|
466
|
+
"hostOnly": false,
|
|
467
|
+
"httpOnly": false,
|
|
468
|
+
"name": "ct0",
|
|
469
|
+
"path": "/",
|
|
470
|
+
"sameSite": "lax",
|
|
471
|
+
"secure": true,
|
|
472
|
+
"session": false,
|
|
473
|
+
"storeId": "0",
|
|
474
|
+
"value": "939d1bf1a7a33aaed8e1b6353f83d86432dd22c670cbfee39f2321272fd2944b5fddb9f71ea396e2866870cbc6f4c4a54a759afb3ef3798a3ac5033e65eb64e631e8193ab48cdcc07069978c3b407eea"
|
|
475
|
+
}
|
|
476
|
+
]
|
package/dist/src/api.d.ts
CHANGED
|
@@ -5,39 +5,15 @@ import { UsersApiUtils } from './apis/usersApi';
|
|
|
5
5
|
export declare class TwitterOpenApi {
|
|
6
6
|
static hash: string;
|
|
7
7
|
static url: string;
|
|
8
|
+
static header: string;
|
|
8
9
|
static twitter: string;
|
|
9
|
-
static userAgent: string;
|
|
10
10
|
static bearer: string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
'sec-ch-ua': string;
|
|
18
|
-
'sec-ch-ua-mobile': string;
|
|
19
|
-
'sec-ch-ua-platform': string;
|
|
20
|
-
'sec-fetch-dest': string;
|
|
21
|
-
'sec-fetch-mode': string;
|
|
22
|
-
'sec-fetch-site': string;
|
|
23
|
-
'user-agent': string;
|
|
24
|
-
};
|
|
25
|
-
static api_key: {
|
|
26
|
-
accept: string;
|
|
27
|
-
'accept-encoding': string;
|
|
28
|
-
'accept-language': string;
|
|
29
|
-
'cache-control': string;
|
|
30
|
-
pragma: string;
|
|
31
|
-
'sec-ch-ua': string;
|
|
32
|
-
'sec-ch-ua-mobile': string;
|
|
33
|
-
'sec-ch-ua-platform': string;
|
|
34
|
-
'sec-fetch-dest': string;
|
|
35
|
-
'sec-fetch-mode': string;
|
|
36
|
-
'sec-fetch-site': string;
|
|
37
|
-
'user-agent': string;
|
|
38
|
-
'x-twitter-client-language': string;
|
|
39
|
-
'x-twitter-active-user': string;
|
|
40
|
-
};
|
|
11
|
+
get_browser_headers(): Promise<{
|
|
12
|
+
[key: string]: string;
|
|
13
|
+
}>;
|
|
14
|
+
get_api_key(): Promise<{
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
}>;
|
|
41
17
|
static fetchApi: i.FetchAPI;
|
|
42
18
|
initOverrides: initOverrides;
|
|
43
19
|
setInitOverrides(initOverrides: initOverrides): void;
|
package/dist/src/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,cAAc;IACzB,MAAM,CAAC,IAAI,SAA8C;IACzD,MAAM,CAAC,GAAG,SAAuG;IACjH,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,cAAc;IACzB,MAAM,CAAC,IAAI,SAA8C;IACzD,MAAM,CAAC,GAAG,SAAuG;IACjH,MAAM,CAAC,MAAM,SAAgF;IAC7F,MAAM,CAAC,OAAO,SAA8B;IAC5C,MAAM,CAAC,MAAM,SACgG;IAGvG,mBAAmB,IAAI,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAiBzD,WAAW,IAAI,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAUvD,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAA0B;IAErD,aAAa,EAAE,aAAa,CAAM;IAElC,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAO7D,YAAY,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IAMvD,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,cAAc;IAQrF,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAiD/C,oBAAoB,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBvF,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAOrE;AAED,qBAAa,oBAAoB;IAC/B,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;gBAEjB,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa;IAMpF,aAAa,IAAI,eAAe;IAIhC,WAAW,IAAI,aAAa;IAI5B,UAAU,IAAI,YAAY;IAI1B,WAAW,IAAI,aAAa;IAI5B,cAAc,IAAI,gBAAgB;IAIlC,UAAU,IAAI,YAAY;IAI1B,YAAY,IAAI,cAAc;IAI9B,aAAa,IAAI,eAAe;IAIhC,YAAY,IAAI,cAAc;IAI9B,kBAAkB,IAAI,oBAAoB;CAG3C"}
|
package/dist/src/api.js
CHANGED
|
@@ -80,6 +80,40 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
80
80
|
function TwitterOpenApi() {
|
|
81
81
|
this.initOverrides = {};
|
|
82
82
|
}
|
|
83
|
+
TwitterOpenApi.prototype.get_browser_headers = function () {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
85
|
+
var raw, json, ignore, keys;
|
|
86
|
+
return __generator(this, function (_b) {
|
|
87
|
+
switch (_b.label) {
|
|
88
|
+
case 0: return [4 /*yield*/, _a.fetchApi(_a.header)];
|
|
89
|
+
case 1:
|
|
90
|
+
raw = _b.sent();
|
|
91
|
+
return [4 /*yield*/, raw.json()];
|
|
92
|
+
case 2:
|
|
93
|
+
json = _b.sent();
|
|
94
|
+
ignore = ["host", "connection"];
|
|
95
|
+
keys = Object.keys(json["chrome-fetch"]).filter(function (key) { return !ignore.includes(key); });
|
|
96
|
+
return [2 /*return*/, __assign(__assign({}, keys.reduce(function (a, b) {
|
|
97
|
+
var _b;
|
|
98
|
+
return (__assign(__assign({}, a), (_b = {}, _b[b] = json["chrome-fetch"][b], _b)));
|
|
99
|
+
}, {})), { 'accept-encoding': 'identity', "priority": "u=1, i", "referer": "https://twitter.com/home" })];
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
TwitterOpenApi.prototype.get_api_key = function () {
|
|
105
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
106
|
+
var data;
|
|
107
|
+
return __generator(this, function (_b) {
|
|
108
|
+
switch (_b.label) {
|
|
109
|
+
case 0: return [4 /*yield*/, this.get_browser_headers()];
|
|
110
|
+
case 1:
|
|
111
|
+
data = _b.sent();
|
|
112
|
+
return [2 /*return*/, __assign(__assign({}, data), { 'x-twitter-client-language': 'en', 'x-twitter-active-user': 'yes', authorization: "Bearer ".concat(_a.bearer) })];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
};
|
|
83
117
|
TwitterOpenApi.prototype.setInitOverrides = function (initOverrides) {
|
|
84
118
|
this.initOverrides = initOverrides;
|
|
85
119
|
};
|
|
@@ -138,14 +172,16 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
138
172
|
var _d = __read(_b, 2), key = _d[0], value = _d[1];
|
|
139
173
|
return (__assign(__assign({}, a), (_c = {}, _c[key] = value, _c)));
|
|
140
174
|
}, {});
|
|
141
|
-
if (!!cookies['gt']) return [3 /*break*/,
|
|
142
|
-
|
|
143
|
-
return [4 /*yield*/, _a.fetchApi('https://api.twitter.com/1.1/guest/activate.json', __assign({ method: 'POST', headers: activate_headers }, this.initOverrides)).then(function (response) { return response.json(); })];
|
|
175
|
+
if (!!cookies['gt']) return [3 /*break*/, 5];
|
|
176
|
+
return [4 /*yield*/, this.get_api_key()];
|
|
144
177
|
case 3:
|
|
178
|
+
activate_headers = _c.sent();
|
|
179
|
+
return [4 /*yield*/, _a.fetchApi('https://api.twitter.com/1.1/guest/activate.json', __assign({ method: 'POST', headers: activate_headers }, this.initOverrides)).then(function (response) { return response.json(); })];
|
|
180
|
+
case 4:
|
|
145
181
|
guest_token = (_c.sent()).guest_token;
|
|
146
182
|
cookies['gt'] = guest_token;
|
|
147
|
-
_c.label =
|
|
148
|
-
case
|
|
183
|
+
_c.label = 5;
|
|
184
|
+
case 5:
|
|
149
185
|
// const chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
|
|
150
186
|
// const csrfToken = [...Array(32)].reduce((a) => a + chars[Math.floor(Math.random() * chars.length)], '');
|
|
151
187
|
// cookies.push({ name: 'ct0', value: csrfToken });
|
|
@@ -159,23 +195,27 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
159
195
|
var api_key, config;
|
|
160
196
|
var _this = this;
|
|
161
197
|
return __generator(this, function (_b) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
198
|
+
switch (_b.label) {
|
|
199
|
+
case 0: return [4 /*yield*/, this.get_api_key()];
|
|
200
|
+
case 1:
|
|
201
|
+
api_key = _b.sent();
|
|
202
|
+
if (cookies['ct0']) {
|
|
203
|
+
api_key['x-twitter-auth-type'] = 'OAuth2Session';
|
|
204
|
+
api_key['x-csrf-token'] = cookies['ct0'];
|
|
205
|
+
}
|
|
206
|
+
if (cookies['gt']) {
|
|
207
|
+
api_key['x-guest-token'] = cookies['gt'];
|
|
208
|
+
}
|
|
209
|
+
config = {
|
|
210
|
+
fetchApi: _a.fetchApi,
|
|
211
|
+
middleware: [{ pre: function (context) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_b) {
|
|
212
|
+
return [2 /*return*/, this.setCookies(context, cookies)];
|
|
213
|
+
}); }); } }],
|
|
214
|
+
apiKey: function (key) { return api_key[key.toLowerCase()]; },
|
|
215
|
+
accessToken: _a.bearer,
|
|
216
|
+
};
|
|
217
|
+
return [2 /*return*/, this.getClient(new i.Configuration(config))];
|
|
169
218
|
}
|
|
170
|
-
config = {
|
|
171
|
-
fetchApi: _a.fetchApi,
|
|
172
|
-
middleware: [{ pre: function (context) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_b) {
|
|
173
|
-
return [2 /*return*/, this.setCookies(context, cookies)];
|
|
174
|
-
}); }); } }],
|
|
175
|
-
apiKey: function (key) { return api_key[key.toLowerCase()]; },
|
|
176
|
-
accessToken: _a.bearer,
|
|
177
|
-
};
|
|
178
|
-
return [2 /*return*/, this.getClient(new i.Configuration(config))];
|
|
179
219
|
});
|
|
180
220
|
});
|
|
181
221
|
};
|
|
@@ -194,26 +234,11 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
194
234
|
};
|
|
195
235
|
var _a;
|
|
196
236
|
_a = TwitterOpenApi;
|
|
197
|
-
TwitterOpenApi.hash = '
|
|
237
|
+
TwitterOpenApi.hash = 'fbfe847e9b3f11e2b25e294827f3637e316d41f0';
|
|
198
238
|
TwitterOpenApi.url = "https://raw.githubusercontent.com/fa0311/twitter-openapi/".concat(_a.hash, "/src/config/placeholder.json");
|
|
239
|
+
TwitterOpenApi.header = "https://raw.githubusercontent.com/fa0311/latest-user-agent/main/header.json";
|
|
199
240
|
TwitterOpenApi.twitter = 'https://twitter.com/home';
|
|
200
|
-
TwitterOpenApi.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36';
|
|
201
241
|
TwitterOpenApi.bearer = 'AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA';
|
|
202
|
-
TwitterOpenApi.browser_headers = {
|
|
203
|
-
accept: 'text/plain, */*; q=0.01',
|
|
204
|
-
'accept-encoding': 'gzip, deflate, br',
|
|
205
|
-
'accept-language': 'en-US,en;q=0.9',
|
|
206
|
-
'cache-control': 'no-cache',
|
|
207
|
-
pragma: 'no-cache',
|
|
208
|
-
'sec-ch-ua': '"Chromium";v="116", "Not)A;Brand";v="24", "Google Chrome";v="116"',
|
|
209
|
-
'sec-ch-ua-mobile': '?0',
|
|
210
|
-
'sec-ch-ua-platform': '"Windows"',
|
|
211
|
-
'sec-fetch-dest': 'empty',
|
|
212
|
-
'sec-fetch-mode': 'cors',
|
|
213
|
-
'sec-fetch-site': 'same-site',
|
|
214
|
-
'user-agent': _a.userAgent,
|
|
215
|
-
};
|
|
216
|
-
TwitterOpenApi.api_key = __assign({ 'x-twitter-client-language': 'en', 'x-twitter-active-user': 'yes' }, _a.browser_headers);
|
|
217
242
|
TwitterOpenApi.fetchApi = fetch.bind(globalThis);
|
|
218
243
|
return TwitterOpenApi;
|
|
219
244
|
}());
|
package/dist/src/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAUgB;AAEhB,wDAA0D;AAC1D,4CAAgD;AAEhD;IAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "twitter-openapi-typescript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
4
4
|
"description": "Implementation of Twitter internal API in TypeScript",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -21,14 +21,13 @@
|
|
|
21
21
|
"main": "./dist/src/index.js",
|
|
22
22
|
"typings": "./dist/src/index.d.ts",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"twitter-openapi-typescript-generated": "^0.0.
|
|
24
|
+
"twitter-openapi-typescript-generated": "^0.0.21"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/jest": "*",
|
|
28
28
|
"@types/node": "*",
|
|
29
29
|
"@typescript-eslint/eslint-plugin": "*",
|
|
30
30
|
"@typescript-eslint/parser": "*",
|
|
31
|
-
"dotenv": "^16.3.0",
|
|
32
31
|
"eslint": "^8.50.0",
|
|
33
32
|
"eslint-config-standard-with-typescript": "*",
|
|
34
33
|
"eslint-plugin-import": "*",
|
package/src/api.ts
CHANGED
|
@@ -14,35 +14,40 @@ import * as i from 'twitter-openapi-typescript-generated';
|
|
|
14
14
|
import { UsersApiUtils } from './apis/usersApi';
|
|
15
15
|
|
|
16
16
|
export class TwitterOpenApi {
|
|
17
|
-
static hash = '
|
|
17
|
+
static hash = 'fbfe847e9b3f11e2b25e294827f3637e316d41f0';
|
|
18
18
|
static url = `https://raw.githubusercontent.com/fa0311/twitter-openapi/${this.hash}/src/config/placeholder.json`;
|
|
19
|
+
static header = "https://raw.githubusercontent.com/fa0311/latest-user-agent/main/header.json"
|
|
19
20
|
static twitter = 'https://twitter.com/home';
|
|
20
|
-
|
|
21
|
-
static userAgent =
|
|
22
|
-
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36';
|
|
23
21
|
static bearer =
|
|
24
22
|
'AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA';
|
|
25
23
|
|
|
26
|
-
static browser_headers = {
|
|
27
|
-
accept: 'text/plain, */*; q=0.01',
|
|
28
|
-
'accept-encoding': 'gzip, deflate, br',
|
|
29
|
-
'accept-language': 'en-US,en;q=0.9',
|
|
30
|
-
'cache-control': 'no-cache',
|
|
31
|
-
pragma: 'no-cache',
|
|
32
|
-
'sec-ch-ua': '"Chromium";v="116", "Not)A;Brand";v="24", "Google Chrome";v="116"',
|
|
33
|
-
'sec-ch-ua-mobile': '?0',
|
|
34
|
-
'sec-ch-ua-platform': '"Windows"',
|
|
35
|
-
'sec-fetch-dest': 'empty',
|
|
36
|
-
'sec-fetch-mode': 'cors',
|
|
37
|
-
'sec-fetch-site': 'same-site',
|
|
38
|
-
'user-agent': TwitterOpenApi.userAgent,
|
|
39
|
-
};
|
|
40
24
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
async get_browser_headers(): Promise<{ [key: string]: string }> {
|
|
26
|
+
const raw = await TwitterOpenApi.fetchApi(TwitterOpenApi.header);
|
|
27
|
+
const json = await raw.json();
|
|
28
|
+
|
|
29
|
+
const ignore = ["host", "connection"];
|
|
30
|
+
const keys = Object.keys(json["chrome-fetch"]).filter((key) => !ignore.includes(key));
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
...keys.reduce((a, b) => ({ ...a, [b]: json["chrome-fetch"][b] }), {}),
|
|
35
|
+
'accept-encoding': 'identity',
|
|
36
|
+
"priority": "u=1, i",
|
|
37
|
+
"referer":"https://twitter.com/home",
|
|
45
38
|
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
async get_api_key(): Promise<{ [key: string]: string }> {
|
|
43
|
+
const data = await this.get_browser_headers();
|
|
44
|
+
return {
|
|
45
|
+
...data,
|
|
46
|
+
'x-twitter-client-language': 'en',
|
|
47
|
+
'x-twitter-active-user': 'yes',
|
|
48
|
+
authorization: `Bearer ${TwitterOpenApi.bearer}`
|
|
49
|
+
};
|
|
50
|
+
}
|
|
46
51
|
|
|
47
52
|
static fetchApi: i.FetchAPI = fetch.bind(globalThis);
|
|
48
53
|
|
|
@@ -106,10 +111,7 @@ export class TwitterOpenApi {
|
|
|
106
111
|
.reduce((a, [key, value]) => ({ ...a, [key]: value }), {});
|
|
107
112
|
|
|
108
113
|
if (!cookies['gt']) {
|
|
109
|
-
const activate_headers =
|
|
110
|
-
...TwitterOpenApi.api_key,
|
|
111
|
-
authorization: `Bearer ${TwitterOpenApi.bearer}`,
|
|
112
|
-
};
|
|
114
|
+
const activate_headers = await this.get_api_key();
|
|
113
115
|
const { guest_token } = await TwitterOpenApi.fetchApi('https://api.twitter.com/1.1/guest/activate.json', {
|
|
114
116
|
method: 'POST',
|
|
115
117
|
headers: activate_headers,
|
|
@@ -126,7 +128,7 @@ export class TwitterOpenApi {
|
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
async getClientFromCookies(cookies: { [key: string]: string }): Promise<TwitterOpenApiClient> {
|
|
129
|
-
|
|
131
|
+
const api_key = await this.get_api_key();
|
|
130
132
|
if (cookies['ct0']) {
|
|
131
133
|
api_key['x-twitter-auth-type'] = 'OAuth2Session';
|
|
132
134
|
api_key['x-csrf-token'] = cookies['ct0'];
|
package/test/init.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { TwitterOpenApi } from '@/api';
|
|
2
|
-
import
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
3
|
import * as log4js from 'log4js';
|
|
4
4
|
|
|
5
|
-
dotenv.config();
|
|
6
5
|
|
|
7
|
-
const authToken = process.env.AUTH_TOKEN as string;
|
|
8
|
-
const CsrfToken = process.env.CSRF_TOKEN as string;
|
|
9
6
|
|
|
10
7
|
export const logger = log4js
|
|
11
8
|
.configure({
|
|
@@ -25,12 +22,19 @@ export const logger = log4js
|
|
|
25
22
|
})
|
|
26
23
|
.getLogger('Test');
|
|
27
24
|
|
|
25
|
+
export type Cookie = {
|
|
26
|
+
name: string;
|
|
27
|
+
domain: string;
|
|
28
|
+
value: string;
|
|
29
|
+
};
|
|
30
|
+
|
|
28
31
|
export const getClient = async () => {
|
|
29
32
|
const api = new TwitterOpenApi();
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
const data = await fs.readFile('cookies.json', 'utf-8');
|
|
34
|
+
const parsed = JSON.parse(data)
|
|
35
|
+
const cookies = parsed as Cookie[]
|
|
36
|
+
const json = Object.fromEntries(cookies.filter((e) => e.domain === '.twitter.com').map((e) => [e.name, e.value]));
|
|
37
|
+
const client = await api.getClientFromCookies(json);
|
|
34
38
|
return client;
|
|
35
39
|
};
|
|
36
40
|
export const getGuestClient = async () => {
|