twitter-openapi-typescript 0.0.23 → 0.0.24
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/README.md +0 -7
- package/dist/src/api.d.ts +1 -6
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +11 -18
- package/dist/src/api.js.map +1 -1
- package/package.json +1 -2
- package/src/api.ts +9 -20
- package/test/init.ts +2 -2
package/README.md
CHANGED
|
@@ -18,13 +18,6 @@ npm i twitter-openapi-typescript
|
|
|
18
18
|
console.log(`followCount: ${response.data.legacy.friendsCount} followersCount: ${response.data.legacy.followersCount}`);
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
### Node.js
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
import fetch from "node-fetch";
|
|
25
|
-
const api = new TwitterOpenApi({ fetchApi: fetch as any });
|
|
26
|
-
```
|
|
27
|
-
|
|
28
21
|
### Login
|
|
29
22
|
|
|
30
23
|
```typescript
|
package/dist/src/api.d.ts
CHANGED
|
@@ -2,9 +2,6 @@ import * as i from 'twitter-openapi-typescript-generated';
|
|
|
2
2
|
import { DefaultApiUtils, InitialStateApiUtils, PostApiUtils, TweetApiUtils, UserApiUtils, UserListApiUtils, V11GetApiUtils, V11PostApiUtils, V20GetApiUtils } from './apis';
|
|
3
3
|
import { DefaultFlag } from './models';
|
|
4
4
|
import { UsersApiUtils } from './apis/usersApi';
|
|
5
|
-
export type TwitterOpenApiParams = {
|
|
6
|
-
fetchApi?: i.FetchAPI;
|
|
7
|
-
};
|
|
8
5
|
export declare class TwitterOpenApi {
|
|
9
6
|
static hash: string;
|
|
10
7
|
static url: string;
|
|
@@ -41,9 +38,7 @@ export declare class TwitterOpenApi {
|
|
|
41
38
|
'x-twitter-client-language': string;
|
|
42
39
|
'x-twitter-active-user': string;
|
|
43
40
|
};
|
|
44
|
-
|
|
45
|
-
constructor(param?: TwitterOpenApiParams);
|
|
46
|
-
get fetchApi(): i.FetchAPI;
|
|
41
|
+
static fetchApi: i.FetchAPI;
|
|
47
42
|
cookie_normalize(cookie: string[]): {
|
|
48
43
|
[key: string]: string;
|
|
49
44
|
};
|
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,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAC1D,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,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAC1D,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,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,cAAc;IACzB,MAAM,CAAC,IAAI,SAA8C;IACzD,MAAM,CAAC,GAAG,SAAuG;IACjH,MAAM,CAAC,OAAO,SAA8B;IAE5C,MAAM,CAAC,SAAS,SACoG;IACpH,MAAM,CAAC,MAAM,SACgG;IAE7G,MAAM,CAAC,eAAe;;;;;;;;;;;;;MAapB;IAEF,MAAM,CAAC,OAAO;;;;;;;;;;;;;;;MAIZ;IAEF,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAS;IAEpC,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;IA2C/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;CAMrE;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IACzB,IAAI,EAAE,WAAW,CAAC;gBAEb,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW;IAKtD,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
|
@@ -77,17 +77,8 @@ var i = require("twitter-openapi-typescript-generated");
|
|
|
77
77
|
var apis_1 = require("./apis");
|
|
78
78
|
var usersApi_1 = require("./apis/usersApi");
|
|
79
79
|
var TwitterOpenApi = /** @class */ (function () {
|
|
80
|
-
function TwitterOpenApi(
|
|
81
|
-
if (param === void 0) { param = {}; }
|
|
82
|
-
this.param = param;
|
|
80
|
+
function TwitterOpenApi() {
|
|
83
81
|
}
|
|
84
|
-
Object.defineProperty(TwitterOpenApi.prototype, "fetchApi", {
|
|
85
|
-
get: function () {
|
|
86
|
-
return this.param.fetchApi || fetch;
|
|
87
|
-
},
|
|
88
|
-
enumerable: false,
|
|
89
|
-
configurable: true
|
|
90
|
-
});
|
|
91
82
|
TwitterOpenApi.prototype.cookie_normalize = function (cookie) {
|
|
92
83
|
return cookie.reduce(function (a, b) {
|
|
93
84
|
var _b;
|
|
@@ -112,21 +103,20 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
112
103
|
};
|
|
113
104
|
TwitterOpenApi.prototype.getGuestClient = function () {
|
|
114
105
|
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
-
var cookies, response,
|
|
106
|
+
var cookies, response, html, re, find, activate_headers, guest_token;
|
|
116
107
|
return __generator(this, function (_b) {
|
|
117
108
|
switch (_b.label) {
|
|
118
109
|
case 0:
|
|
119
110
|
cookies = {};
|
|
120
|
-
return [4 /*yield*/,
|
|
111
|
+
return [4 /*yield*/, _a.fetchApi(_a.twitter, {
|
|
121
112
|
method: 'GET',
|
|
122
113
|
redirect: 'manual',
|
|
123
114
|
headers: { Cookie: this.cookieEncode(cookies) },
|
|
124
115
|
})];
|
|
125
116
|
case 1:
|
|
126
117
|
response = _b.sent();
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return [4 /*yield*/, this.fetchApi(_a.twitter, {
|
|
118
|
+
cookies = __assign(__assign({}, cookies), this.cookie_normalize(response.headers.getSetCookie()));
|
|
119
|
+
return [4 /*yield*/, _a.fetchApi(_a.twitter, {
|
|
130
120
|
method: 'GET',
|
|
131
121
|
headers: { Cookie: this.cookieEncode(cookies) },
|
|
132
122
|
}).then(function (response) { return response.text(); })];
|
|
@@ -147,7 +137,7 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
147
137
|
}, {});
|
|
148
138
|
if (!!cookies['gt']) return [3 /*break*/, 4];
|
|
149
139
|
activate_headers = __assign(__assign({}, _a.api_key), { authorization: "Bearer ".concat(_a.bearer) });
|
|
150
|
-
return [4 /*yield*/,
|
|
140
|
+
return [4 /*yield*/, _a.fetchApi('https://api.twitter.com/1.1/guest/activate.json', {
|
|
151
141
|
method: 'POST',
|
|
152
142
|
headers: activate_headers,
|
|
153
143
|
}).then(function (response) { return response.json(); })];
|
|
@@ -178,7 +168,7 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
178
168
|
api_key['x-guest-token'] = cookies['gt'];
|
|
179
169
|
}
|
|
180
170
|
config = {
|
|
181
|
-
fetchApi:
|
|
171
|
+
fetchApi: _a.fetchApi,
|
|
182
172
|
middleware: [{ pre: function (context) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_b) {
|
|
183
173
|
return [2 /*return*/, this.setCookies(context, cookies)];
|
|
184
174
|
}); }); } }],
|
|
@@ -194,7 +184,9 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
194
184
|
var flag;
|
|
195
185
|
return __generator(this, function (_b) {
|
|
196
186
|
switch (_b.label) {
|
|
197
|
-
case 0: return [4 /*yield*/,
|
|
187
|
+
case 0: return [4 /*yield*/, _a.fetchApi(_a.url, { method: 'GET' }).then(function (res) {
|
|
188
|
+
return res.json();
|
|
189
|
+
})];
|
|
198
190
|
case 1:
|
|
199
191
|
flag = (_b.sent());
|
|
200
192
|
return [2 /*return*/, new TwitterOpenApiClient(api, flag)];
|
|
@@ -224,6 +216,7 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
224
216
|
'user-agent': _a.userAgent,
|
|
225
217
|
};
|
|
226
218
|
TwitterOpenApi.api_key = __assign({ 'x-twitter-client-language': 'en', 'x-twitter-active-user': 'yes' }, _a.browser_headers);
|
|
219
|
+
TwitterOpenApi.fetchApi = fetch;
|
|
227
220
|
return TwitterOpenApi;
|
|
228
221
|
}());
|
|
229
222
|
exports.TwitterOpenApi = TwitterOpenApi;
|
package/dist/src/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0D;AAC1D,+BAUgB;AAEhB,4CAAgD;
|
|
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.24",
|
|
4
4
|
"description": "Implementation of Twitter internal API in TypeScript",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"jest": "^29.7.0",
|
|
39
39
|
"ts-jest": "*",
|
|
40
40
|
"log4js": "^6.9.0",
|
|
41
|
-
"node-fetch": "^2.0.0",
|
|
42
41
|
"typescript": "^5.2.0"
|
|
43
42
|
}
|
|
44
43
|
}
|
package/src/api.ts
CHANGED
|
@@ -13,10 +13,6 @@ import {
|
|
|
13
13
|
import { DefaultFlag } from '@/models';
|
|
14
14
|
import { UsersApiUtils } from './apis/usersApi';
|
|
15
15
|
|
|
16
|
-
export type TwitterOpenApiParams = {
|
|
17
|
-
fetchApi?: i.FetchAPI;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
16
|
export class TwitterOpenApi {
|
|
21
17
|
static hash = '7560ee63488ec9d15f5389e64867f2413701d7dd';
|
|
22
18
|
static url = `https://raw.githubusercontent.com/fa0311/twitter-openapi/${this.hash}/src/config/placeholder.json`;
|
|
@@ -48,15 +44,7 @@ export class TwitterOpenApi {
|
|
|
48
44
|
...TwitterOpenApi.browser_headers,
|
|
49
45
|
};
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
constructor(param: TwitterOpenApiParams = {}) {
|
|
54
|
-
this.param = param;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
get fetchApi(): i.FetchAPI {
|
|
58
|
-
return this.param.fetchApi || fetch;
|
|
59
|
-
}
|
|
47
|
+
static fetchApi: i.FetchAPI = fetch;
|
|
60
48
|
|
|
61
49
|
cookie_normalize(cookie: string[]): { [key: string]: string } {
|
|
62
50
|
return cookie.reduce((a, b) => {
|
|
@@ -82,15 +70,14 @@ export class TwitterOpenApi {
|
|
|
82
70
|
async getGuestClient(): Promise<TwitterOpenApiClient> {
|
|
83
71
|
let cookies: { [key: string]: string } = {};
|
|
84
72
|
|
|
85
|
-
const response = await
|
|
73
|
+
const response = await TwitterOpenApi.fetchApi(TwitterOpenApi.twitter, {
|
|
86
74
|
method: 'GET',
|
|
87
75
|
redirect: 'manual',
|
|
88
76
|
headers: { Cookie: this.cookieEncode(cookies) },
|
|
89
77
|
});
|
|
90
|
-
|
|
91
|
-
cookies = { ...cookies, ...this.cookie_normalize(raw['set-cookie']) };
|
|
78
|
+
cookies = { ...cookies, ...this.cookie_normalize(response.headers.getSetCookie()) };
|
|
92
79
|
|
|
93
|
-
const html = await
|
|
80
|
+
const html = await TwitterOpenApi.fetchApi(TwitterOpenApi.twitter, {
|
|
94
81
|
method: 'GET',
|
|
95
82
|
headers: { Cookie: this.cookieEncode(cookies) },
|
|
96
83
|
}).then((response) => response.text());
|
|
@@ -109,7 +96,7 @@ export class TwitterOpenApi {
|
|
|
109
96
|
...TwitterOpenApi.api_key,
|
|
110
97
|
authorization: `Bearer ${TwitterOpenApi.bearer}`,
|
|
111
98
|
};
|
|
112
|
-
const { guest_token } = await
|
|
99
|
+
const { guest_token } = await TwitterOpenApi.fetchApi('https://api.twitter.com/1.1/guest/activate.json', {
|
|
113
100
|
method: 'POST',
|
|
114
101
|
headers: activate_headers,
|
|
115
102
|
}).then((response) => response.json());
|
|
@@ -134,7 +121,7 @@ export class TwitterOpenApi {
|
|
|
134
121
|
}
|
|
135
122
|
|
|
136
123
|
const config: i.ConfigurationParameters = {
|
|
137
|
-
fetchApi:
|
|
124
|
+
fetchApi: TwitterOpenApi.fetchApi,
|
|
138
125
|
middleware: [{ pre: async (context) => this.setCookies(context, cookies) }],
|
|
139
126
|
apiKey: (key) => api_key[key.toLowerCase()],
|
|
140
127
|
accessToken: TwitterOpenApi.bearer,
|
|
@@ -143,7 +130,9 @@ export class TwitterOpenApi {
|
|
|
143
130
|
}
|
|
144
131
|
|
|
145
132
|
async getClient(api: i.Configuration): Promise<TwitterOpenApiClient> {
|
|
146
|
-
const flag = (await
|
|
133
|
+
const flag = (await TwitterOpenApi.fetchApi(TwitterOpenApi.url, { method: 'GET' }).then((res) =>
|
|
134
|
+
res.json(),
|
|
135
|
+
)) as DefaultFlag;
|
|
147
136
|
return new TwitterOpenApiClient(api, flag);
|
|
148
137
|
}
|
|
149
138
|
}
|
package/test/init.ts
CHANGED
|
@@ -27,7 +27,7 @@ export const logger = log4js
|
|
|
27
27
|
.getLogger('Test');
|
|
28
28
|
|
|
29
29
|
export const getClient = async () => {
|
|
30
|
-
const api = new TwitterOpenApi(
|
|
30
|
+
const api = new TwitterOpenApi();
|
|
31
31
|
const client = await api.getClientFromCookies({
|
|
32
32
|
ct0: CsrfToken,
|
|
33
33
|
auth_token: authToken,
|
|
@@ -35,7 +35,7 @@ export const getClient = async () => {
|
|
|
35
35
|
return client;
|
|
36
36
|
};
|
|
37
37
|
export const getGuestClient = async () => {
|
|
38
|
-
const api = new TwitterOpenApi(
|
|
38
|
+
const api = new TwitterOpenApi();
|
|
39
39
|
const client = await api.getGuestClient();
|
|
40
40
|
return client;
|
|
41
41
|
};
|