twitter-openapi-typescript 0.0.22 → 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 -17
- package/dist/src/api.js.map +1 -1
- package/package.json +1 -2
- package/src/api.ts +10 -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,21 +77,12 @@ 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;
|
|
94
|
-
var _c = __read(b.split('='), 2), key = _c[0], value = _c[1];
|
|
85
|
+
var _c = __read(b.split('; ')[0].split('='), 2), key = _c[0], value = _c[1];
|
|
95
86
|
return __assign(__assign({}, a), (_b = {}, _b[key] = value, _b));
|
|
96
87
|
}, {});
|
|
97
88
|
};
|
|
@@ -117,15 +108,15 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
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
|
-
cookies = __assign(__assign({}, cookies), this.cookie_normalize(response.headers.
|
|
128
|
-
return [4 /*yield*/,
|
|
118
|
+
cookies = __assign(__assign({}, cookies), this.cookie_normalize(response.headers.getSetCookie()));
|
|
119
|
+
return [4 /*yield*/, _a.fetchApi(_a.twitter, {
|
|
129
120
|
method: 'GET',
|
|
130
121
|
headers: { Cookie: this.cookieEncode(cookies) },
|
|
131
122
|
}).then(function (response) { return response.text(); })];
|
|
@@ -146,7 +137,7 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
146
137
|
}, {});
|
|
147
138
|
if (!!cookies['gt']) return [3 /*break*/, 4];
|
|
148
139
|
activate_headers = __assign(__assign({}, _a.api_key), { authorization: "Bearer ".concat(_a.bearer) });
|
|
149
|
-
return [4 /*yield*/,
|
|
140
|
+
return [4 /*yield*/, _a.fetchApi('https://api.twitter.com/1.1/guest/activate.json', {
|
|
150
141
|
method: 'POST',
|
|
151
142
|
headers: activate_headers,
|
|
152
143
|
}).then(function (response) { return response.json(); })];
|
|
@@ -177,7 +168,7 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
177
168
|
api_key['x-guest-token'] = cookies['gt'];
|
|
178
169
|
}
|
|
179
170
|
config = {
|
|
180
|
-
fetchApi:
|
|
171
|
+
fetchApi: _a.fetchApi,
|
|
181
172
|
middleware: [{ pre: function (context) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_b) {
|
|
182
173
|
return [2 /*return*/, this.setCookies(context, cookies)];
|
|
183
174
|
}); }); } }],
|
|
@@ -193,7 +184,9 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
193
184
|
var flag;
|
|
194
185
|
return __generator(this, function (_b) {
|
|
195
186
|
switch (_b.label) {
|
|
196
|
-
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
|
+
})];
|
|
197
190
|
case 1:
|
|
198
191
|
flag = (_b.sent());
|
|
199
192
|
return [2 /*return*/, new TwitterOpenApiClient(api, flag)];
|
|
@@ -223,6 +216,7 @@ var TwitterOpenApi = /** @class */ (function () {
|
|
|
223
216
|
'user-agent': _a.userAgent,
|
|
224
217
|
};
|
|
225
218
|
TwitterOpenApi.api_key = __assign({ 'x-twitter-client-language': 'en', 'x-twitter-active-user': 'yes' }, _a.browser_headers);
|
|
219
|
+
TwitterOpenApi.fetchApi = fetch;
|
|
226
220
|
return TwitterOpenApi;
|
|
227
221
|
}());
|
|
228
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,19 +44,11 @@ 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) => {
|
|
63
|
-
const [key, value] = b.split('=');
|
|
51
|
+
const [key, value] = b.split('; ')[0].split('=');
|
|
64
52
|
return { ...a, [key]: value };
|
|
65
53
|
}, {});
|
|
66
54
|
}
|
|
@@ -82,14 +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
|
-
cookies = { ...cookies, ...this.cookie_normalize(response.headers.
|
|
78
|
+
cookies = { ...cookies, ...this.cookie_normalize(response.headers.getSetCookie()) };
|
|
91
79
|
|
|
92
|
-
const html = await
|
|
80
|
+
const html = await TwitterOpenApi.fetchApi(TwitterOpenApi.twitter, {
|
|
93
81
|
method: 'GET',
|
|
94
82
|
headers: { Cookie: this.cookieEncode(cookies) },
|
|
95
83
|
}).then((response) => response.text());
|
|
@@ -108,7 +96,7 @@ export class TwitterOpenApi {
|
|
|
108
96
|
...TwitterOpenApi.api_key,
|
|
109
97
|
authorization: `Bearer ${TwitterOpenApi.bearer}`,
|
|
110
98
|
};
|
|
111
|
-
const { guest_token } = await
|
|
99
|
+
const { guest_token } = await TwitterOpenApi.fetchApi('https://api.twitter.com/1.1/guest/activate.json', {
|
|
112
100
|
method: 'POST',
|
|
113
101
|
headers: activate_headers,
|
|
114
102
|
}).then((response) => response.json());
|
|
@@ -133,7 +121,7 @@ export class TwitterOpenApi {
|
|
|
133
121
|
}
|
|
134
122
|
|
|
135
123
|
const config: i.ConfigurationParameters = {
|
|
136
|
-
fetchApi:
|
|
124
|
+
fetchApi: TwitterOpenApi.fetchApi,
|
|
137
125
|
middleware: [{ pre: async (context) => this.setCookies(context, cookies) }],
|
|
138
126
|
apiKey: (key) => api_key[key.toLowerCase()],
|
|
139
127
|
accessToken: TwitterOpenApi.bearer,
|
|
@@ -142,7 +130,9 @@ export class TwitterOpenApi {
|
|
|
142
130
|
}
|
|
143
131
|
|
|
144
132
|
async getClient(api: i.Configuration): Promise<TwitterOpenApiClient> {
|
|
145
|
-
const flag = (await
|
|
133
|
+
const flag = (await TwitterOpenApi.fetchApi(TwitterOpenApi.url, { method: 'GET' }).then((res) =>
|
|
134
|
+
res.json(),
|
|
135
|
+
)) as DefaultFlag;
|
|
146
136
|
return new TwitterOpenApiClient(api, flag);
|
|
147
137
|
}
|
|
148
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
|
};
|