twitter-openapi-typescript 0.0.35 → 0.0.37
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/.vscode/settings.json +12 -4
- package/README.md +24 -10
- package/cookies.json +208 -475
- package/dist/src/api.d.ts +12 -4
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +37 -36
- package/dist/src/api.js.map +1 -1
- package/dist/src/apis/defaultApi.js +2 -2
- package/dist/src/apis/postApi.d.ts +3 -0
- package/dist/src/apis/postApi.d.ts.map +1 -1
- package/dist/src/apis/postApi.js +29 -17
- package/dist/src/apis/postApi.js.map +1 -1
- package/dist/src/apis/tweetApi.d.ts.map +1 -1
- package/dist/src/apis/tweetApi.js +15 -15
- package/dist/src/apis/tweetApi.js.map +1 -1
- package/dist/src/apis/userApi.js +2 -2
- package/dist/src/apis/userListApi.d.ts.map +1 -1
- package/dist/src/apis/userListApi.js +4 -4
- package/dist/src/apis/userListApi.js.map +1 -1
- package/dist/src/apis/usersApi.js +2 -2
- package/dist/src/apis/v11PostApi.js +2 -2
- package/dist/src/utils/api.d.ts +1 -0
- package/dist/src/utils/api.d.ts.map +1 -1
- package/dist/src/utils/api.js +8 -1
- package/dist/src/utils/api.js.map +1 -1
- package/package.json +4 -4
- package/src/api.ts +39 -36
- package/src/apis/postApi.ts +19 -4
- package/src/apis/tweetApi.ts +5 -4
- package/src/apis/userListApi.ts +3 -2
- package/src/utils/api.ts +7 -0
- package/test/api/auth.test.ts +14 -0
- package/test/api/postApi.test.ts +1 -1
- package/test/init.ts +8 -5
- package/dist/a.d.ts +0 -2
- package/dist/a.d.ts.map +0 -1
- package/dist/a.js +0 -57
- package/dist/a.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userListApi.js","sourceRoot":"","sources":["../../../src/apis/userListApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"userListApi.js","sourceRoot":"","sources":["../../../src/apis/userListApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g =
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g =
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
package/dist/src/utils/api.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApiUtilsHeader, CursorApiUtilsResponse, TweetApiUtilsData, UserApiUtilsData } from '../models';
|
|
2
2
|
import * as i from 'twitter-openapi-typescript-generated';
|
|
3
|
+
export declare const nonNullable: <T>(x: T | undefined) => T;
|
|
3
4
|
export declare const getKwargs: (flag: {
|
|
4
5
|
[key: string]: any;
|
|
5
6
|
}, additional: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvG,OAAO,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAE1D,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvG,OAAO,KAAK,CAAC,MAAM,sCAAsC,CAAC;AAE1D,eAAO,MAAM,WAAW,GAAI,CAAC,KAAK,CAAC,GAAG,SAAS,KAAG,CAKjD,CAAC;AAEF,eAAO,MAAM,SAAS,SAAU;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,cAAc;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KAAG,GAY5F,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,KAAG,CAQlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,CAAC,CAAC,gBAAgB,EAAE,KAAG,CAAC,CAAC,gBAAgB,EAWjF,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,CAAC,CAAC,gBAAgB,EAAE,KAAG,iBAAiB,EAelF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,CAAC,CAAC,gBAAgB,EAAE,KAAG,iBAAiB,EAqBnF,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,CAAC,CAAC,UAAU,EAAE,KAAG,iBAAiB,EAyBvE,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;CAC3B,CAAC;AACF,eAAO,MAAM,kBAAkB,SAAU,sBAAsB,KAAG,iBAAiB,GAAG,SAsBrF,CAAC;AAEF,eAAO,MAAM,qBAAqB,iBAAkB,CAAC,CAAC,UAAU,KAAG,CAAC,CAAC,KAAK,GAAG,SAU5E,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAAiB,CAAC,CAAC,SAAS,KAAG,CAAC,CAAC,IAAI,GAAG,SAIvE,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,CAAC,CAAC,gBAAgB,EAAE,KAAG,CAAC,CAAC,WAAW,EAW9E,CAAC;AAMF,eAAO,MAAM,mBAAmB,SAAU,CAAC,CAAC,WAAW,EAAE,KAAG,gBAAgB,EAW3E,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,CAAC,CAAC,gBAAgB,EAAE,KAAG,sBAc1D,CAAC;AAEF,eAAO,MAAM,WAAW,eAAgB,CAAC,CAAC,sBAAsB,EAAE,KAAG,sBAKpE,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,OAAO,KAAG,cAe9C,CAAC"}
|
package/dist/src/utils/api.js
CHANGED
|
@@ -11,8 +11,15 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.buildHeader = exports.buildCursor = exports.entriesCursor = exports.userResultConverter = exports.userEntriesConverter = exports.userOrNullConverter = exports.tweetResultsConverter = exports.buildTweetApiUtils = exports.moduleConverter = exports.tweetEntriesConverter = exports.instructionConverter = exports.instructionToEntry = exports.errorCheck = exports.getKwargs = void 0;
|
|
14
|
+
exports.buildHeader = exports.buildCursor = exports.entriesCursor = exports.userResultConverter = exports.userEntriesConverter = exports.userOrNullConverter = exports.tweetResultsConverter = exports.buildTweetApiUtils = exports.moduleConverter = exports.tweetEntriesConverter = exports.instructionConverter = exports.instructionToEntry = exports.errorCheck = exports.getKwargs = exports.nonNullable = void 0;
|
|
15
15
|
var i = require("twitter-openapi-typescript-generated");
|
|
16
|
+
var nonNullable = function (x) {
|
|
17
|
+
if (x == undefined) {
|
|
18
|
+
throw Error('No data');
|
|
19
|
+
}
|
|
20
|
+
return x;
|
|
21
|
+
};
|
|
22
|
+
exports.nonNullable = nonNullable;
|
|
16
23
|
var getKwargs = function (flag, additional) {
|
|
17
24
|
var kwargs = { pathQueryId: flag.queryId };
|
|
18
25
|
if (flag.variables != undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/utils/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,wDAA0D;AAEnD,IAAM,SAAS,GAAG,UAAC,IAA4B,EAAE,UAAkC;IACxF,IAAM,MAAM,GAA2B,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACrE,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/utils/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.37",
|
|
4
4
|
"description": "Implementation of Twitter internal API in TypeScript",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -21,7 +21,7 @@
|
|
|
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.25"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/jest": "*",
|
|
@@ -36,6 +36,6 @@
|
|
|
36
36
|
"jest": "^29.7.0",
|
|
37
37
|
"log4js": "^6.9.0",
|
|
38
38
|
"ts-jest": "*",
|
|
39
|
-
"typescript": "^5.
|
|
39
|
+
"typescript": "^5.6.0"
|
|
40
40
|
}
|
|
41
|
-
}
|
|
41
|
+
}
|
package/src/api.ts
CHANGED
|
@@ -14,38 +14,47 @@ 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 = '0c64eebbfb93b3ed69c3aba923ec8d6894a39902';
|
|
18
18
|
static url = `https://raw.githubusercontent.com/fa0311/twitter-openapi/${this.hash}/src/config/placeholder.json`;
|
|
19
|
-
static header =
|
|
20
|
-
static twitter = 'https://
|
|
19
|
+
static header = 'https://raw.githubusercontent.com/fa0311/latest-user-agent/refs/heads/main/header.json';
|
|
20
|
+
static twitter = 'https://x.com/home';
|
|
21
21
|
static bearer =
|
|
22
22
|
'AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA';
|
|
23
|
+
static additionalBrowserHeaders: { [key: string]: string } = {};
|
|
24
|
+
static additionalApiHeaders: { [key: string]: string } = {};
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
async get_browser_headers(): Promise<{ [key: string]: string }> {
|
|
26
|
+
async getHeaders(): Promise<{ api: { [key: string]: string }; browser: { [key: string]: string } }> {
|
|
26
27
|
const raw = await TwitterOpenApi.fetchApi(TwitterOpenApi.header);
|
|
27
28
|
const json = await raw.json();
|
|
29
|
+
const ignore = ['host', 'connection'];
|
|
28
30
|
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'accept-encoding': 'identity',
|
|
36
|
-
"priority": "u=1, i",
|
|
37
|
-
"referer":"https://twitter.com/home",
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
31
|
+
const getHader = (name: string): { [key: string]: string } => {
|
|
32
|
+
return Object.entries(json[name]).reduce((a, [key, value]) => {
|
|
33
|
+
if (ignore.includes(key)) return a;
|
|
34
|
+
return { ...a, [key]: value };
|
|
35
|
+
}, {});
|
|
36
|
+
};
|
|
41
37
|
|
|
42
|
-
async get_api_key(): Promise<{ [key: string]: string }> {
|
|
43
|
-
const data = await this.get_browser_headers();
|
|
44
38
|
return {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
api: {
|
|
40
|
+
...getHader('chrome-fetch'),
|
|
41
|
+
pragma: 'no-cache',
|
|
42
|
+
referer: TwitterOpenApi.twitter,
|
|
43
|
+
priority: 'u=1, i',
|
|
44
|
+
'client-language': 'en',
|
|
45
|
+
'active-user': 'yes',
|
|
46
|
+
'x-twitter-client-language': 'en',
|
|
47
|
+
'x-twitter-active-user': 'yes',
|
|
48
|
+
// 'x-twitter-auth-type': 'xxxx'
|
|
49
|
+
// 'x-csrf-token': 'xxxx',
|
|
50
|
+
// 'x-guest-token': 'xxxx',
|
|
51
|
+
authorization: `Bearer ${TwitterOpenApi.bearer}`,
|
|
52
|
+
...TwitterOpenApi.additionalApiHeaders,
|
|
53
|
+
},
|
|
54
|
+
browser: {
|
|
55
|
+
...getHader('chrome'),
|
|
56
|
+
...TwitterOpenApi.additionalBrowserHeaders,
|
|
57
|
+
},
|
|
49
58
|
};
|
|
50
59
|
}
|
|
51
60
|
|
|
@@ -57,7 +66,7 @@ export class TwitterOpenApi {
|
|
|
57
66
|
this.initOverrides = initOverrides;
|
|
58
67
|
}
|
|
59
68
|
|
|
60
|
-
|
|
69
|
+
cookieNormalize(cookie: string[]): { [key: string]: string } {
|
|
61
70
|
return cookie.reduce((a, b) => {
|
|
62
71
|
const [key, value] = b.split('; ')[0].split('=');
|
|
63
72
|
return { ...a, [key]: value };
|
|
@@ -89,30 +98,24 @@ export class TwitterOpenApi {
|
|
|
89
98
|
});
|
|
90
99
|
|
|
91
100
|
if (response.headers.getSetCookie) {
|
|
92
|
-
cookies = { ...cookies, ...this.
|
|
101
|
+
cookies = { ...cookies, ...this.cookieNormalize(response.headers.getSetCookie()) };
|
|
93
102
|
} else {
|
|
94
|
-
cookies = { ...cookies, ...this.
|
|
103
|
+
cookies = { ...cookies, ...this.cookieNormalize(response.headers.get('set-cookie')?.split(', ') || []) };
|
|
95
104
|
}
|
|
96
105
|
const html = await response.text();
|
|
97
106
|
|
|
98
|
-
// const html = await TwitterOpenApi.fetchApi(TwitterOpenApi.twitter, {
|
|
99
|
-
// method: 'GET',
|
|
100
|
-
// headers: { Cookie: this.cookieEncode(cookies) },
|
|
101
|
-
// ...this.initOverrides,
|
|
102
|
-
// }).then((response) => response.text());
|
|
103
|
-
|
|
104
107
|
const re = new RegExp('document.cookie="(.*?)";', 'g');
|
|
105
108
|
|
|
106
109
|
const find = [...html.matchAll(re)].map((e) => e[1]);
|
|
107
|
-
cookies = { ...cookies, ...this.
|
|
110
|
+
cookies = { ...cookies, ...this.cookieNormalize(find) };
|
|
108
111
|
|
|
109
112
|
cookies = Object.entries(cookies)
|
|
110
113
|
.filter(([key, value]) => key != 'ct0')
|
|
111
114
|
.reduce((a, [key, value]) => ({ ...a, [key]: value }), {});
|
|
112
115
|
|
|
113
116
|
if (!cookies['gt']) {
|
|
114
|
-
const activate_headers = await this.
|
|
115
|
-
const { guest_token } = await TwitterOpenApi.fetchApi('https://api.
|
|
117
|
+
const activate_headers = (await this.getHeaders()).api;
|
|
118
|
+
const { guest_token } = await TwitterOpenApi.fetchApi('https://api.x.com/1.1/guest/activate.json', {
|
|
116
119
|
method: 'POST',
|
|
117
120
|
headers: activate_headers,
|
|
118
121
|
...this.initOverrides,
|
|
@@ -128,7 +131,7 @@ export class TwitterOpenApi {
|
|
|
128
131
|
}
|
|
129
132
|
|
|
130
133
|
async getClientFromCookies(cookies: { [key: string]: string }): Promise<TwitterOpenApiClient> {
|
|
131
|
-
const api_key = await this.
|
|
134
|
+
const api_key = (await this.getHeaders()).api;
|
|
132
135
|
if (cookies['ct0']) {
|
|
133
136
|
api_key['x-twitter-auth-type'] = 'OAuth2Session';
|
|
134
137
|
api_key['x-csrf-token'] = cookies['ct0'];
|
package/src/apis/postApi.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { DefaultFlag, TwitterApiUtilsResponse, initOverrides } from '@/models';
|
|
2
2
|
import { buildHeader, errorCheck } from '@/utils';
|
|
3
3
|
import * as i from 'twitter-openapi-typescript-generated';
|
|
4
|
+
import { PostCreateTweetRequestVariablesToJSON } from 'twitter-openapi-typescript-generated';
|
|
4
5
|
|
|
5
6
|
type PostCreateTweetParam = {
|
|
6
7
|
tweetText: string;
|
|
7
8
|
mediaIds?: string[];
|
|
9
|
+
taggedUsers?: string[][];
|
|
8
10
|
inReplyToTweetId?: string;
|
|
11
|
+
attachmentUrl?: string;
|
|
12
|
+
conversationControl?: string;
|
|
9
13
|
extraParam?: { [key: string]: any };
|
|
10
14
|
};
|
|
11
15
|
|
|
@@ -54,11 +58,19 @@ export class PostApiUtils {
|
|
|
54
58
|
const queryId = 'CreateTweet';
|
|
55
59
|
const features = i.PostCreateTweetRequestFeaturesFromJSON(this.flag[queryId]['features']);
|
|
56
60
|
const variables = i.PostCreateTweetRequestVariablesFromJSON(this.flag[queryId]['variables']);
|
|
57
|
-
|
|
58
|
-
param.mediaIds
|
|
61
|
+
if (param.taggedUsers) {
|
|
62
|
+
variables.media.mediaEntities = param.mediaIds!.map((mediaId, index) => ({
|
|
59
63
|
mediaId: mediaId,
|
|
60
|
-
taggedUsers: [],
|
|
61
|
-
}))
|
|
64
|
+
taggedUsers: param.taggedUsers?.[index] || [],
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
variables.attachmentUrl = param.attachmentUrl;
|
|
69
|
+
if (param.conversationControl) {
|
|
70
|
+
variables.conversationControl = {
|
|
71
|
+
mode: param.conversationControl,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
62
74
|
|
|
63
75
|
if (param.inReplyToTweetId) {
|
|
64
76
|
variables.reply = {
|
|
@@ -67,6 +79,8 @@ export class PostApiUtils {
|
|
|
67
79
|
};
|
|
68
80
|
}
|
|
69
81
|
|
|
82
|
+
variables.disallowedReplyOptions = null as any;
|
|
83
|
+
|
|
70
84
|
const response = await this.api.postCreateTweetRaw({
|
|
71
85
|
pathQueryId: this.flag[queryId]['queryId'],
|
|
72
86
|
postCreateTweetRequest: {
|
|
@@ -75,6 +89,7 @@ export class PostApiUtils {
|
|
|
75
89
|
variables: { ...variables, ...args },
|
|
76
90
|
},
|
|
77
91
|
});
|
|
92
|
+
const a = PostCreateTweetRequestVariablesToJSON(variables);
|
|
78
93
|
|
|
79
94
|
return {
|
|
80
95
|
raw: { response: response.raw },
|
package/src/apis/tweetApi.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
getKwargs,
|
|
14
14
|
instructionConverter,
|
|
15
15
|
instructionToEntry,
|
|
16
|
+
nonNullable,
|
|
16
17
|
tweetEntriesConverter,
|
|
17
18
|
} from '@/utils';
|
|
18
19
|
import * as i from 'twitter-openapi-typescript-generated';
|
|
@@ -214,7 +215,7 @@ export class TweetApiUtils {
|
|
|
214
215
|
|
|
215
216
|
const response = await this.request({
|
|
216
217
|
apiFn: this.api.getUserTweetsRaw,
|
|
217
|
-
convertFn: (e) => e.data.user.result.timelineV2.timeline.instructions,
|
|
218
|
+
convertFn: (e) => nonNullable(e.data.user.result.timelineV2.timeline).instructions,
|
|
218
219
|
key: 'UserTweets',
|
|
219
220
|
param: args,
|
|
220
221
|
});
|
|
@@ -231,7 +232,7 @@ export class TweetApiUtils {
|
|
|
231
232
|
|
|
232
233
|
const response = await this.request({
|
|
233
234
|
apiFn: this.api.getUserTweetsAndRepliesRaw,
|
|
234
|
-
convertFn: (e) => e.data.user.result.timelineV2.timeline.instructions,
|
|
235
|
+
convertFn: (e) => nonNullable(e.data.user.result.timelineV2.timeline).instructions,
|
|
235
236
|
key: 'UserTweetsAndReplies',
|
|
236
237
|
param: args,
|
|
237
238
|
});
|
|
@@ -248,7 +249,7 @@ export class TweetApiUtils {
|
|
|
248
249
|
|
|
249
250
|
const response = await this.request({
|
|
250
251
|
apiFn: this.api.getUserMediaRaw,
|
|
251
|
-
convertFn: (e) => e.data.user.result.timelineV2.timeline.instructions,
|
|
252
|
+
convertFn: (e) => nonNullable(e.data.user.result.timelineV2.timeline).instructions,
|
|
252
253
|
key: 'UserMedia',
|
|
253
254
|
param: args,
|
|
254
255
|
});
|
|
@@ -264,7 +265,7 @@ export class TweetApiUtils {
|
|
|
264
265
|
|
|
265
266
|
const response = await this.request({
|
|
266
267
|
apiFn: this.api.getLikesRaw,
|
|
267
|
-
convertFn: (e) => e.data.user.result.timelineV2.timeline.instructions,
|
|
268
|
+
convertFn: (e) => nonNullable(e.data.user.result.timelineV2.timeline).instructions,
|
|
268
269
|
key: 'Likes',
|
|
269
270
|
param: args,
|
|
270
271
|
});
|
package/src/apis/userListApi.ts
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
errorCheck,
|
|
13
13
|
getKwargs,
|
|
14
14
|
instructionToEntry,
|
|
15
|
+
nonNullable,
|
|
15
16
|
userEntriesConverter,
|
|
16
17
|
userResultConverter,
|
|
17
18
|
} from '@/utils';
|
|
@@ -147,7 +148,7 @@ export class UserListApiUtils {
|
|
|
147
148
|
};
|
|
148
149
|
const response = await this.request({
|
|
149
150
|
apiFn: this.api.getFavoritersRaw,
|
|
150
|
-
convertFn: (e) => e.data.favoritersTimeline.timeline.instructions,
|
|
151
|
+
convertFn: (e) => nonNullable(e.data.favoritersTimeline.timeline).instructions,
|
|
151
152
|
key: 'Favoriters',
|
|
152
153
|
param: args,
|
|
153
154
|
});
|
|
@@ -163,7 +164,7 @@ export class UserListApiUtils {
|
|
|
163
164
|
};
|
|
164
165
|
const response = await this.request({
|
|
165
166
|
apiFn: this.api.getRetweetersRaw,
|
|
166
|
-
convertFn: (e) => e.data.retweetersTimeline.timeline.instructions,
|
|
167
|
+
convertFn: (e) => nonNullable(e.data.retweetersTimeline.timeline).instructions,
|
|
167
168
|
key: 'Retweeters',
|
|
168
169
|
param: args,
|
|
169
170
|
});
|
package/src/utils/api.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { ApiUtilsHeader, CursorApiUtilsResponse, TweetApiUtilsData, UserApiUtilsData } from '@/models';
|
|
2
2
|
import * as i from 'twitter-openapi-typescript-generated';
|
|
3
3
|
|
|
4
|
+
export const nonNullable = <T>(x: T | undefined): T => {
|
|
5
|
+
if (x == undefined) {
|
|
6
|
+
throw Error('No data');
|
|
7
|
+
}
|
|
8
|
+
return x;
|
|
9
|
+
};
|
|
10
|
+
|
|
4
11
|
export const getKwargs = (flag: { [key: string]: any }, additional: { [key: string]: any }): any => {
|
|
5
12
|
const kwargs: { [key: string]: any } = { pathQueryId: flag.queryId };
|
|
6
13
|
if (flag.variables != undefined) {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getClient } from '@test/init';
|
|
2
|
+
import { DefaultApi } from 'twitter-openapi-typescript-generated';
|
|
3
|
+
|
|
4
|
+
test('test auth', async () => {
|
|
5
|
+
const client = await getClient();
|
|
6
|
+
const that = client.getDefaultApi();
|
|
7
|
+
const fn = DefaultApi.prototype['request'].bind(that.api);
|
|
8
|
+
|
|
9
|
+
DefaultApi.prototype['request'] = (...args) => {
|
|
10
|
+
console.log('request', args);
|
|
11
|
+
return fn(...args);
|
|
12
|
+
};
|
|
13
|
+
const response = that.getProfileSpotlightsQuery({ screenName: 'elonmusk' });
|
|
14
|
+
});
|
package/test/api/postApi.test.ts
CHANGED
|
@@ -14,7 +14,7 @@ test('postCreateReplyTweet', async () => {
|
|
|
14
14
|
const time = new Date().toISOString();
|
|
15
15
|
const response = await client.getPostApi().postCreateTweet({
|
|
16
16
|
tweetText: `Test[${time}]`,
|
|
17
|
-
inReplyToTweetId: '
|
|
17
|
+
inReplyToTweetId: '1788174612037320809',
|
|
18
18
|
});
|
|
19
19
|
expect(response.raw.response.ok).toBe(true);
|
|
20
20
|
});
|
package/test/init.ts
CHANGED
|
@@ -2,8 +2,6 @@ import { TwitterOpenApi } from '@/api';
|
|
|
2
2
|
import { promises as fs } from 'fs';
|
|
3
3
|
import * as log4js from 'log4js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
5
|
export const logger = log4js
|
|
8
6
|
.configure({
|
|
9
7
|
appenders: {
|
|
@@ -29,11 +27,16 @@ export type Cookie = {
|
|
|
29
27
|
};
|
|
30
28
|
|
|
31
29
|
export const getClient = async () => {
|
|
30
|
+
TwitterOpenApi.additionalApiHeaders = {
|
|
31
|
+
'sec-ch-ua-platform': '"Windows"',
|
|
32
|
+
};
|
|
32
33
|
const api = new TwitterOpenApi();
|
|
33
34
|
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(
|
|
35
|
+
const parsed = JSON.parse(data);
|
|
36
|
+
const cookies = parsed as Cookie[];
|
|
37
|
+
const json = Object.fromEntries(
|
|
38
|
+
cookies.filter((e) => ['.twitter.com', '.x.com'].includes(e.domain)).map((e) => [e.name, e.value]),
|
|
39
|
+
);
|
|
37
40
|
const client = await api.getClientFromCookies(json);
|
|
38
41
|
return client;
|
|
39
42
|
};
|
package/dist/a.d.ts
DELETED
package/dist/a.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"a.d.ts","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":""}
|
package/dist/a.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var api_1 = require("./src/api");
|
|
40
|
-
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
-
var api, client, res;
|
|
42
|
-
return __generator(this, function (_a) {
|
|
43
|
-
switch (_a.label) {
|
|
44
|
-
case 0:
|
|
45
|
-
api = new api_1.TwitterOpenApi();
|
|
46
|
-
return [4 /*yield*/, api.getGuestClient()];
|
|
47
|
-
case 1:
|
|
48
|
-
client = _a.sent();
|
|
49
|
-
return [4 /*yield*/, client.getDefaultApi().getTweetResultByRestId({ tweetId: "1771078537694601545" })];
|
|
50
|
-
case 2:
|
|
51
|
-
res = _a.sent();
|
|
52
|
-
console.log(res.data);
|
|
53
|
-
return [2 /*return*/];
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
}); })();
|
|
57
|
-
//# sourceMappingURL=a.js.map
|
package/dist/a.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"a.js","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAuC;AAEvC,CAAC;;;;;gBACS,GAAG,GAAG,IAAI,oBAAc,EAAE,CAAC;gBAClB,qBAAM,GAAG,CAAC,cAAc,EAAE,EAAA;;gBAAnC,MAAM,GAAG,SAA0B;gBAC7B,qBAAM,MAAM,CAAC,aAAa,EAAE,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,EAAA;;gBAA7F,GAAG,GAAG,SAAuF;gBACnG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;;;KACzB,CAAC,EAAE,CAAA"}
|