@the-convocation/twitter-scraper 0.1.4 → 0.2.0

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.
Files changed (49) hide show
  1. package/README.md +4 -1
  2. package/dist/api.d.ts +2 -2
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +39 -43
  5. package/dist/api.js.map +1 -1
  6. package/dist/auth-user.d.ts +14 -0
  7. package/dist/auth-user.d.ts.map +1 -0
  8. package/dist/auth-user.js +204 -0
  9. package/dist/auth-user.js.map +1 -0
  10. package/dist/auth.d.ts +45 -28
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +62 -81
  13. package/dist/auth.js.map +1 -1
  14. package/dist/errors.d.ts +5 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +11 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/profile.d.ts +3 -3
  19. package/dist/profile.d.ts.map +1 -1
  20. package/dist/profile.js +56 -67
  21. package/dist/profile.js.map +1 -1
  22. package/dist/requests.d.ts +9 -0
  23. package/dist/requests.d.ts.map +1 -0
  24. package/dist/requests.js +26 -0
  25. package/dist/requests.js.map +1 -0
  26. package/dist/scraper.d.ts +50 -4
  27. package/dist/scraper.d.ts.map +1 -1
  28. package/dist/scraper.js +88 -27
  29. package/dist/scraper.js.map +1 -1
  30. package/dist/search.d.ts +5 -5
  31. package/dist/search.d.ts.map +1 -1
  32. package/dist/search.js +46 -58
  33. package/dist/search.js.map +1 -1
  34. package/dist/timeline-async.d.ts.map +1 -1
  35. package/dist/timeline-async.js +34 -56
  36. package/dist/timeline-async.js.map +1 -1
  37. package/dist/timeline.d.ts +19 -1
  38. package/dist/timeline.d.ts.map +1 -1
  39. package/dist/timeline.js +157 -116
  40. package/dist/timeline.js.map +1 -1
  41. package/dist/trends.d.ts +2 -2
  42. package/dist/trends.d.ts.map +1 -1
  43. package/dist/trends.js +31 -42
  44. package/dist/trends.js.map +1 -1
  45. package/dist/tweets.d.ts +19 -5
  46. package/dist/tweets.d.ts.map +1 -1
  47. package/dist/tweets.js +54 -46
  48. package/dist/tweets.js.map +1 -1
  49. package/package.json +21 -13
package/dist/scraper.js CHANGED
@@ -1,21 +1,14 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.Scraper = void 0;
13
4
  const api_1 = require("./api");
14
5
  const auth_1 = require("./auth");
6
+ const auth_user_1 = require("./auth-user");
15
7
  const profile_1 = require("./profile");
16
8
  const search_1 = require("./search");
17
9
  const trends_1 = require("./trends");
18
10
  const tweets_1 = require("./tweets");
11
+ const twUrl = 'https://twitter.com';
19
12
  /**
20
13
  * An interface to Twitter's undocumented API.
21
14
  * Reusing Scraper objects is recommended to minimize the time spent authenticating unnecessarily.
@@ -34,22 +27,18 @@ class Scraper {
34
27
  * @param username The Twitter username of the profile to fetch, without an `@` at the beginning.
35
28
  * @returns The requested profile.
36
29
  */
37
- getProfile(username) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- const res = yield (0, profile_1.getProfile)(username, this.auth);
40
- return this.handleResponse(res);
41
- });
30
+ async getProfile(username) {
31
+ const res = await (0, profile_1.getProfile)(username, this.auth);
32
+ return this.handleResponse(res);
42
33
  }
43
34
  /**
44
35
  * Fetches the user ID corresponding to the provided screen name.
45
36
  * @param screenName The Twitter screen name of the profile to fetch.
46
37
  * @returns The ID of the corresponding account.
47
38
  */
48
- getUserIdByScreenName(screenName) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const res = yield (0, profile_1.getUserIdByScreenName)(screenName, this.auth);
51
- return this.handleResponse(res);
52
- });
39
+ async getUserIdByScreenName(screenName) {
40
+ const res = await (0, profile_1.getUserIdByScreenName)(screenName, this.auth);
41
+ return this.handleResponse(res);
53
42
  }
54
43
  /**
55
44
  * Fetches tweets from Twitter.
@@ -110,6 +99,26 @@ class Scraper {
110
99
  getTweets(user, maxTweets, includeReplies) {
111
100
  return (0, tweets_1.getTweets)(user, maxTweets, includeReplies, this.auth);
112
101
  }
102
+ /**
103
+ * Fetches tweets from a Twitter user using their ID.
104
+ * @param userId The user whose tweets should be returned.
105
+ * @param maxTweets The maximum number of tweets to return.
106
+ * @param includeReplies Whether or not to include tweet replies.
107
+ * @returns An async generator of tweets from the provided user.
108
+ */
109
+ getTweetsByUserId(userId, maxTweets, includeReplies) {
110
+ return (0, tweets_1.getTweetsByUserId)(userId, maxTweets, includeReplies, this.auth);
111
+ }
112
+ /**
113
+ * Fetches the most recent tweet from a Twitter user.
114
+ * @param user The user whose latest tweet should be returned.
115
+ * @param includeReplies Whether or not to include tweet replies.
116
+ * @param includeRetweets Whether or not to include retweets.
117
+ * @returns The {@link Tweet} object or `null` if it couldn't be fetched.
118
+ */
119
+ getLatestTweet(user, includeReplies, includeRetweets) {
120
+ return (0, tweets_1.getLatestTweet)(user, includeReplies, includeRetweets, this.auth);
121
+ }
113
122
  /**
114
123
  * Fetches a single tweet.
115
124
  * @param id The ID of the tweet to fetch.
@@ -126,24 +135,76 @@ class Scraper {
126
135
  hasGuestToken() {
127
136
  return this.auth.hasToken() || this.authTrends.hasToken();
128
137
  }
138
+ /**
139
+ * Returns if the scraper is logged in as a real user.
140
+ * @returns `true` if the scraper is logged in with a real user account; otherwise `false`.
141
+ */
142
+ async isLoggedIn() {
143
+ return ((await this.auth.isLoggedIn()) && (await this.authTrends.isLoggedIn()));
144
+ }
145
+ /**
146
+ * Login to Twitter as a real Twitter account. This enables running
147
+ * searches.
148
+ * @param username The username of the Twitter account to login with.
149
+ * @param password The password of the Twitter account to login with.
150
+ * @param email The password to log in with, if you have email confirmation enabled.
151
+ */
152
+ async login(username, password, email) {
153
+ // Swap in a real authorizer for all requests
154
+ const userAuth = new auth_user_1.TwitterUserAuth(api_1.bearerToken2);
155
+ await userAuth.login(username, password, email);
156
+ this.auth = userAuth;
157
+ this.authTrends = userAuth;
158
+ }
159
+ /**
160
+ * Log out of Twitter.
161
+ */
162
+ async logout() {
163
+ await this.auth.logout();
164
+ await this.authTrends.logout();
165
+ // Swap in guest authorizers for all requests
166
+ this.auth = new auth_1.TwitterGuestAuth(api_1.bearerToken);
167
+ this.authTrends = new auth_1.TwitterGuestAuth(api_1.bearerToken2);
168
+ }
169
+ /**
170
+ * Retrieves all cookies for the current session.
171
+ * @returns All cookies for the current session.
172
+ */
173
+ async getCookies() {
174
+ return await this.authTrends.cookieJar().getCookies(twUrl);
175
+ }
176
+ /**
177
+ * Set cookies for the current session.
178
+ * @param cookies The cookies to set for the current session.
179
+ */
180
+ async setCookies(cookies) {
181
+ const userAuth = new auth_user_1.TwitterUserAuth(api_1.bearerToken2);
182
+ for (const cookie of cookies) {
183
+ await userAuth.cookieJar().setCookie(cookie, twUrl);
184
+ }
185
+ this.auth = userAuth;
186
+ this.authTrends = userAuth;
187
+ }
129
188
  /**
130
189
  * Sets the optional cookie to be used in requests.
131
- * @param cookie The cookie to be used in requests.
190
+ * @param _cookie The cookie to be used in requests.
191
+ * @deprecated This function no longer represents any part of Twitter's auth flow.
132
192
  * @returns This scraper instance.
133
193
  */
134
- withCookie(cookie) {
135
- this.auth.useCookie(cookie);
136
- this.authTrends.useCookie(cookie);
194
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
195
+ withCookie(_cookie) {
196
+ console.warn('Warning: Scraper#withCookie is deprecated and will be removed in a later version. Use Scraper#login or Scraper#setCookies instead.');
137
197
  return this;
138
198
  }
139
199
  /**
140
200
  * Sets the optional CSRF token to be used in requests.
141
- * @param token The CSRF token to be used in requests.
201
+ * @param _token The CSRF token to be used in requests.
202
+ * @deprecated This function no longer represents any part of Twitter's auth flow.
142
203
  * @returns This scraper instance.
143
204
  */
144
- withXCsrfToken(token) {
145
- this.auth.useCsrfToken(token);
146
- this.authTrends.useCsrfToken(token);
205
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
206
+ withXCsrfToken(_token) {
207
+ console.warn('Warning: Scraper#withXCsrfToken is deprecated and will be removed in a later version.');
147
208
  return this;
148
209
  }
149
210
  handleResponse(res) {
@@ -1 +1 @@
1
- {"version":3,"file":"scraper.js","sourceRoot":"","sources":["../src/scraper.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAAoE;AACpE,iCAA0C;AAC1C,uCAAuE;AACvE,qCAMkB;AAElB,qCAAqC;AACrC,qCAAsD;AAEtD;;;GAGG;AACH,MAAa,OAAO;IAIlB;;;OAGG;IACH;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAgB,CAAC,iBAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAgB,CAAC,kBAAY,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACU,UAAU,CAAC,QAAgB;;YACtC,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;KAAA;IAED;;;;OAIG;IACU,qBAAqB,CAAC,UAAkB;;YACnD,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAqB,EAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;KAAA;IAED;;;;;;;OAOG;IACI,YAAY,CACjB,KAAa,EACb,SAAiB,EACjB,cAAuB,EACvB,aAAyB,mBAAU,CAAC,GAAG;QAEvC,OAAO,IAAA,qBAAY,EACjB,KAAK,EACL,SAAS,EACT,cAAc,EACd,UAAU,EACV,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,cAAc,CACnB,KAAa,EACb,WAAmB;QAEnB,OAAO,IAAA,uBAAc,EAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;OAQG;IACI,iBAAiB,CACtB,KAAa,EACb,SAAiB,EACjB,cAAuB,EACvB,UAAsB,EACtB,MAAe;QAEf,OAAO,IAAA,0BAAiB,EACtB,KAAK,EACL,SAAS,EACT,cAAc,EACd,UAAU,EACV,IAAI,CAAC,IAAI,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,mBAAmB,CACxB,KAAa,EACb,WAAmB,EACnB,MAAe;QAEf,OAAO,IAAA,4BAAmB,EAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACI,SAAS;QACd,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CACd,IAAY,EACZ,SAAiB,EACjB,cAAuB;QAEvB,OAAO,IAAA,kBAAS,EAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACI,QAAQ,CAAC,EAAU,EAAE,cAAuB;QACjD,OAAO,IAAA,iBAAQ,EAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAc;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAa;QACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAI,GAAwB;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,MAAM,GAAG,CAAC,GAAG,CAAC;SACf;QAED,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;CACF;AApLD,0BAoLC"}
1
+ {"version":3,"file":"scraper.js","sourceRoot":"","sources":["../src/scraper.ts"],"names":[],"mappings":"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"}
package/dist/search.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TwitterGuestAuth } from './auth';
1
+ import { TwitterAuth } from './auth';
2
2
  import { Profile } from './profile';
3
3
  import { QueryProfilesResponse, QueryTweetsResponse } from './timeline';
4
4
  import { Tweet } from './tweets';
@@ -12,8 +12,8 @@ export declare enum SearchMode {
12
12
  Videos = 3,
13
13
  Users = 4
14
14
  }
15
- export declare function searchTweets(query: string, maxTweets: number, includeReplies: boolean, searchMode: SearchMode, auth: TwitterGuestAuth): AsyncGenerator<Tweet>;
16
- export declare function searchProfiles(query: string, maxProfiles: number, auth: TwitterGuestAuth): AsyncGenerator<Profile>;
17
- export declare function fetchSearchTweets(query: string, maxTweets: number, includeReplies: boolean, searchMode: SearchMode, auth: TwitterGuestAuth, cursor?: string): Promise<QueryTweetsResponse>;
18
- export declare function fetchSearchProfiles(query: string, maxProfiles: number, auth: TwitterGuestAuth, cursor?: string): Promise<QueryProfilesResponse>;
15
+ export declare function searchTweets(query: string, maxTweets: number, includeReplies: boolean, searchMode: SearchMode, auth: TwitterAuth): AsyncGenerator<Tweet>;
16
+ export declare function searchProfiles(query: string, maxProfiles: number, auth: TwitterAuth): AsyncGenerator<Profile>;
17
+ export declare function fetchSearchTweets(query: string, maxTweets: number, includeReplies: boolean, searchMode: SearchMode, auth: TwitterAuth, cursor?: string): Promise<QueryTweetsResponse>;
18
+ export declare function fetchSearchProfiles(query: string, maxProfiles: number, auth: TwitterAuth, cursor?: string): Promise<QueryProfilesResponse>;
19
19
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,IAAA;IACH,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;CACN;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,gBAAgB,GACrB,cAAc,CAAC,KAAK,CAAC,CAIvB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,cAAc,CAAC,OAAO,CAAC,CAIzB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,gBAAgB,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,IAAA;IACH,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;CACN;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,WAAW,GAChB,cAAc,CAAC,KAAK,CAAC,CAIvB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,cAAc,CAAC,OAAO,CAAC,CAIzB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
package/dist/search.js CHANGED
@@ -1,13 +1,4 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.fetchSearchProfiles = exports.fetchSearchTweets = exports.searchProfiles = exports.searchTweets = exports.SearchMode = void 0;
13
4
  const api_1 = require("./api");
@@ -36,58 +27,55 @@ function searchProfiles(query, maxProfiles, auth) {
36
27
  });
37
28
  }
38
29
  exports.searchProfiles = searchProfiles;
39
- function fetchSearchTweets(query, maxTweets, includeReplies, searchMode, auth, cursor) {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- const timeline = yield getSearchTimeline(query, maxTweets, includeReplies, searchMode, auth, cursor);
42
- return (0, timeline_1.parseTweets)(timeline);
43
- });
30
+ async function fetchSearchTweets(query, maxTweets, includeReplies, searchMode, auth, cursor) {
31
+ const timeline = await getSearchTimeline(query, maxTweets, includeReplies, searchMode, auth, cursor);
32
+ return (0, timeline_1.parseTweets)(timeline);
44
33
  }
45
34
  exports.fetchSearchTweets = fetchSearchTweets;
46
- function fetchSearchProfiles(query, maxProfiles, auth, cursor) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const timeline = yield getSearchTimeline(query, maxProfiles, false, SearchMode.Users, auth, cursor);
49
- return (0, timeline_1.parseUsers)(timeline);
50
- });
35
+ async function fetchSearchProfiles(query, maxProfiles, auth, cursor) {
36
+ const timeline = await getSearchTimeline(query, maxProfiles, false, SearchMode.Users, auth, cursor);
37
+ return (0, timeline_1.parseUsers)(timeline);
51
38
  }
52
39
  exports.fetchSearchProfiles = fetchSearchProfiles;
53
- function getSearchTimeline(query, maxItems, includeReplies, searchMode, auth, cursor) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- if (maxItems > 50) {
56
- maxItems = 50;
57
- }
58
- const params = new URLSearchParams();
59
- (0, api_1.addApiParams)(params, includeReplies);
60
- params.set('q', query);
61
- params.set('count', `${maxItems}`);
62
- params.set('query_source', 'typed_query');
63
- params.set('pc', '1');
64
- params.set('requestContext', 'launch');
65
- params.set('spelling_corrections', '1');
66
- params.set('include_ext_edit_control', 'true');
67
- if (cursor != null && cursor != '') {
68
- params.set('cursor', cursor);
69
- }
70
- switch (searchMode) {
71
- case SearchMode.Latest:
72
- params.set('f', 'live');
73
- break;
74
- case SearchMode.Photos:
75
- params.set('result_filter', 'image');
76
- break;
77
- case SearchMode.Videos:
78
- params.set('result_filter', 'video');
79
- break;
80
- case SearchMode.Users:
81
- params.set('result_filter', 'user');
82
- break;
83
- default:
84
- break;
85
- }
86
- const res = yield (0, api_1.requestApi)(`https://twitter.com/i/api/2/search/adaptive.json?${params.toString()}`, auth);
87
- if (!res.success) {
88
- throw res.err;
89
- }
90
- return res.value;
91
- });
40
+ async function getSearchTimeline(query, maxItems, includeReplies, searchMode, auth, cursor) {
41
+ if (!auth.isLoggedIn()) {
42
+ throw new Error('Scraper is not logged-in for search.');
43
+ }
44
+ if (maxItems > 50) {
45
+ maxItems = 50;
46
+ }
47
+ const params = new URLSearchParams();
48
+ (0, api_1.addApiParams)(params, includeReplies);
49
+ params.set('q', query);
50
+ params.set('count', `${maxItems}`);
51
+ params.set('query_source', 'typed_query');
52
+ params.set('pc', '1');
53
+ params.set('requestContext', 'launch');
54
+ params.set('spelling_corrections', '1');
55
+ params.set('include_ext_edit_control', 'true');
56
+ if (cursor != null && cursor != '') {
57
+ params.set('cursor', cursor);
58
+ }
59
+ switch (searchMode) {
60
+ case SearchMode.Latest:
61
+ params.set('tweet_search_mode', 'live');
62
+ break;
63
+ case SearchMode.Photos:
64
+ params.set('result_filter', 'image');
65
+ break;
66
+ case SearchMode.Videos:
67
+ params.set('result_filter', 'video');
68
+ break;
69
+ case SearchMode.Users:
70
+ params.set('result_filter', 'user');
71
+ break;
72
+ default:
73
+ break;
74
+ }
75
+ const res = await (0, api_1.requestApi)(`https://twitter.com/i/api/2/search/adaptive.json?${params.toString()}`, auth);
76
+ if (!res.success) {
77
+ throw res.err;
78
+ }
79
+ return res.value;
92
80
  }
93
81
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-async.d.ts","sourceRoot":"","sources":["../src/timeline-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC,wBAAuB,eAAe,CACpC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,aAAa,GACvB,cAAc,CAAC,OAAO,CAAC,CA+BzB;AAED,wBAAuB,gBAAgB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,GACrB,cAAc,CAAC,KAAK,CAAC,CA+BvB"}
1
+ {"version":3,"file":"timeline-async.d.ts","sourceRoot":"","sources":["../src/timeline-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC,wBAAuB,eAAe,CACpC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,aAAa,GACvB,cAAc,CAAC,OAAO,CAAC,CA2BzB;AAED,wBAAuB,gBAAgB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,GACrB,cAAc,CAAC,KAAK,CAAC,CA2BvB"}
@@ -1,70 +1,48 @@
1
1
  "use strict";
2
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
3
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
4
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
5
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
6
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
7
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
8
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
9
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
10
- function fulfill(value) { resume("next", value); }
11
- function reject(value) { resume("throw", value); }
12
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
13
- };
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.getTweetTimeline = exports.getUserTimeline = void 0;
16
- function getUserTimeline(query, maxProfiles, fetchFunc) {
17
- return __asyncGenerator(this, arguments, function* getUserTimeline_1() {
18
- let nProfiles = 0;
19
- let cursor = undefined;
20
- while (nProfiles < maxProfiles) {
21
- const batch = yield __await(fetchFunc(query, maxProfiles, cursor));
22
- const { profiles, next } = batch;
23
- if (profiles.length === 0) {
24
- break;
25
- }
26
- if (next === null || next === void 0 ? void 0 : next.startsWith('scroll:')) {
27
- continue;
4
+ async function* getUserTimeline(query, maxProfiles, fetchFunc) {
5
+ let nProfiles = 0;
6
+ let cursor = undefined;
7
+ while (nProfiles < maxProfiles) {
8
+ const batch = await fetchFunc(query, maxProfiles, cursor);
9
+ const { profiles, next } = batch;
10
+ if (profiles.length === 0) {
11
+ break;
12
+ }
13
+ for (const profile of profiles) {
14
+ if (nProfiles < maxProfiles) {
15
+ cursor = next;
16
+ yield profile;
28
17
  }
29
- for (const profile of profiles) {
30
- if (nProfiles < maxProfiles) {
31
- cursor = next;
32
- yield yield __await(profile);
33
- }
34
- else {
35
- break;
36
- }
37
- nProfiles++;
18
+ else {
19
+ break;
38
20
  }
21
+ nProfiles++;
39
22
  }
40
- });
23
+ }
41
24
  }
42
25
  exports.getUserTimeline = getUserTimeline;
43
- function getTweetTimeline(query, maxTweets, fetchFunc) {
44
- return __asyncGenerator(this, arguments, function* getTweetTimeline_1() {
45
- let nTweets = 0;
46
- let cursor = undefined;
47
- while (nTweets < maxTweets) {
48
- const batch = yield __await(fetchFunc(query, maxTweets, cursor));
49
- const { tweets, next } = batch;
50
- if (tweets.length === 0) {
51
- break;
52
- }
53
- if (next === null || next === void 0 ? void 0 : next.startsWith('scroll:')) {
54
- continue;
26
+ async function* getTweetTimeline(query, maxTweets, fetchFunc) {
27
+ let nTweets = 0;
28
+ let cursor = undefined;
29
+ while (nTweets < maxTweets) {
30
+ const batch = await fetchFunc(query, maxTweets, cursor);
31
+ const { tweets, next } = batch;
32
+ if (tweets.length === 0) {
33
+ break;
34
+ }
35
+ for (const tweet of tweets) {
36
+ if (nTweets < maxTweets) {
37
+ cursor = next;
38
+ yield tweet;
55
39
  }
56
- for (const tweet of tweets) {
57
- if (nTweets < maxTweets) {
58
- cursor = next;
59
- yield yield __await(tweet);
60
- }
61
- else {
62
- break;
63
- }
64
- nTweets++;
40
+ else {
41
+ break;
65
42
  }
43
+ nTweets++;
66
44
  }
67
- });
45
+ }
68
46
  }
69
47
  exports.getTweetTimeline = getTweetTimeline;
70
48
  //# sourceMappingURL=timeline-async.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-async.js","sourceRoot":"","sources":["../src/timeline-async.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyBA,SAAuB,eAAe,CACpC,KAAa,EACb,WAAmB,EACnB,SAAwB;;QAExB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAuB,SAAS,CAAC;QAC3C,OAAO,SAAS,GAAG,WAAW,EAAE;YAC9B,MAAM,KAAK,GAA0B,cAAM,SAAS,CAClD,KAAK,EACL,WAAW,EACX,MAAM,CACP,CAAA,CAAC;YAEF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,MAAM;aACP;YAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,SAAS,CAAC,EAAE;gBAC/B,SAAS;aACV;YAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,SAAS,GAAG,WAAW,EAAE;oBAC3B,MAAM,GAAG,IAAI,CAAC;oBACd,oBAAM,OAAO,CAAA,CAAC;iBACf;qBAAM;oBACL,MAAM;iBACP;gBAED,SAAS,EAAE,CAAC;aACb;SACF;IACH,CAAC;CAAA;AAnCD,0CAmCC;AAED,SAAuB,gBAAgB,CACrC,KAAa,EACb,SAAiB,EACjB,SAAsB;;QAEtB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAAM,GAAuB,SAAS,CAAC;QAC3C,OAAO,OAAO,GAAG,SAAS,EAAE;YAC1B,MAAM,KAAK,GAAwB,cAAM,SAAS,CAChD,KAAK,EACL,SAAS,EACT,MAAM,CACP,CAAA,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,MAAM;aACP;YAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,SAAS,CAAC,EAAE;gBAC/B,SAAS;aACV;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,IAAI,OAAO,GAAG,SAAS,EAAE;oBACvB,MAAM,GAAG,IAAI,CAAC;oBACd,oBAAM,KAAK,CAAA,CAAC;iBACb;qBAAM;oBACL,MAAM;iBACP;gBAED,OAAO,EAAE,CAAC;aACX;SACF;IACH,CAAC;CAAA;AAnCD,4CAmCC"}
1
+ {"version":3,"file":"timeline-async.js","sourceRoot":"","sources":["../src/timeline-async.ts"],"names":[],"mappings":";;;AAyBO,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,KAAa,EACb,WAAmB,EACnB,SAAwB;IAExB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,GAAuB,SAAS,CAAC;IAC3C,OAAO,SAAS,GAAG,WAAW,EAAE;QAC9B,MAAM,KAAK,GAA0B,MAAM,SAAS,CAClD,KAAK,EACL,WAAW,EACX,MAAM,CACP,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM;SACP;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,SAAS,GAAG,WAAW,EAAE;gBAC3B,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,OAAO,CAAC;aACf;iBAAM;gBACL,MAAM;aACP;YAED,SAAS,EAAE,CAAC;SACb;KACF;AACH,CAAC;AA/BD,0CA+BC;AAEM,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACrC,KAAa,EACb,SAAiB,EACjB,SAAsB;IAEtB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAuB,SAAS,CAAC;IAC3C,OAAO,OAAO,GAAG,SAAS,EAAE;QAC1B,MAAM,KAAK,GAAwB,MAAM,SAAS,CAChD,KAAK,EACL,SAAS,EACT,MAAM,CACP,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM;SACP;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,OAAO,GAAG,SAAS,EAAE;gBACvB,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,KAAK,CAAC;aACb;iBAAM;gBACL,MAAM;aACP;YAED,OAAO,EAAE,CAAC;SACX;KACF;AACH,CAAC;AA/BD,4CA+BC"}
@@ -3,6 +3,11 @@ import { PlaceRaw, Tweet } from './tweets';
3
3
  export interface Hashtag {
4
4
  text?: string;
5
5
  }
6
+ export interface TimelineUserMentionBasicRaw {
7
+ id_str?: string;
8
+ name?: string;
9
+ screen_name?: string;
10
+ }
6
11
  export interface TimelineMediaBasicRaw {
7
12
  media_url_https?: string;
8
13
  type?: string;
@@ -41,6 +46,7 @@ export interface TimelineTweetRaw {
41
46
  hashtags?: Hashtag[];
42
47
  media?: TimelineMediaBasicRaw[];
43
48
  urls?: TimelineUrlBasicRaw[];
49
+ user_mentions?: TimelineUserMentionBasicRaw[];
44
50
  };
45
51
  extended_entities?: {
46
52
  media?: TimelineMediaExtendedRaw[];
@@ -53,6 +59,10 @@ export interface TimelineTweetRaw {
53
59
  quoted_status_id_str?: string;
54
60
  time?: string;
55
61
  user_id_str?: string;
62
+ ext_views?: {
63
+ state?: string;
64
+ count?: string;
65
+ };
56
66
  }
57
67
  export interface TimelineGlobalObjectsRaw {
58
68
  tweets?: {
@@ -134,7 +144,14 @@ export interface TimelineRaw {
134
144
  globalObjects?: TimelineGlobalObjectsRaw;
135
145
  timeline?: TimelineDataRaw;
136
146
  }
137
- export declare function parseTweet(timeline: TimelineRaw, id: string): Tweet | null;
147
+ type ParseTweetResult = {
148
+ success: true;
149
+ tweet: Tweet;
150
+ } | {
151
+ success: false;
152
+ err: Error;
153
+ };
154
+ export declare function parseTweet(timeline: TimelineRaw, id: string): ParseTweetResult;
138
155
  /**
139
156
  * A paginated tweets API response. The `next` field can be used to fetch the next page of results.
140
157
  */
@@ -151,4 +168,5 @@ export interface QueryProfilesResponse {
151
168
  next?: string;
152
169
  }
153
170
  export declare function parseUsers(timeline: TimelineRaw): QueryProfilesResponse;
171
+ export {};
154
172
  //# sourceMappingURL=timeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}