@the-convocation/twitter-scraper 0.1.5 → 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.
package/dist/tweets.js CHANGED
@@ -1,55 +1,37 @@
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
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
2
  Object.defineProperty(exports, "__esModule", { value: true });
19
3
  exports.getTweet = exports.getLatestTweet = exports.getTweetsByUserId = exports.getTweets = exports.fetchTweets = void 0;
20
4
  const api_1 = require("./api");
21
5
  const profile_1 = require("./profile");
22
6
  const timeline_1 = require("./timeline");
23
7
  const timeline_async_1 = require("./timeline-async");
24
- function fetchTweets(userId, maxTweets, includeReplies, cursor, auth) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (maxTweets > 200) {
27
- maxTweets = 200;
28
- }
29
- const params = new URLSearchParams();
30
- (0, api_1.addApiParams)(params, includeReplies);
31
- params.set('count', `${maxTweets}`);
32
- params.set('userId', userId);
33
- if (cursor != null && cursor != '') {
34
- params.set('cursor', cursor);
35
- }
36
- const res = yield (0, api_1.requestApi)(`https://api.twitter.com/2/timeline/profile/${userId}.json?${params.toString()}`, auth);
37
- if (!res.success) {
38
- throw res.err;
39
- }
40
- return (0, timeline_1.parseTweets)(res.value);
41
- });
8
+ async function fetchTweets(userId, maxTweets, includeReplies, cursor, auth) {
9
+ if (maxTweets > 200) {
10
+ maxTweets = 200;
11
+ }
12
+ const params = new URLSearchParams();
13
+ (0, api_1.addApiParams)(params, includeReplies);
14
+ params.set('count', `${maxTweets}`);
15
+ params.set('userId', userId);
16
+ if (cursor != null && cursor != '') {
17
+ params.set('cursor', cursor);
18
+ }
19
+ const res = await (0, api_1.requestApi)(`https://api.twitter.com/2/timeline/profile/${userId}.json?${params.toString()}`, auth);
20
+ if (!res.success) {
21
+ throw res.err;
22
+ }
23
+ return (0, timeline_1.parseTweets)(res.value);
42
24
  }
43
25
  exports.fetchTweets = fetchTweets;
44
26
  function getTweets(user, maxTweets, includeReplies, auth) {
45
- return (0, timeline_async_1.getTweetTimeline)(user, maxTweets, (q, mt, c) => __awaiter(this, void 0, void 0, function* () {
46
- const userIdRes = yield (0, profile_1.getUserIdByScreenName)(q, auth);
27
+ return (0, timeline_async_1.getTweetTimeline)(user, maxTweets, async (q, mt, c) => {
28
+ const userIdRes = await (0, profile_1.getUserIdByScreenName)(q, auth);
47
29
  if (!userIdRes.success) {
48
30
  throw userIdRes.err;
49
31
  }
50
32
  const { value: userId } = userIdRes;
51
33
  return fetchTweets(userId, mt, includeReplies, c, auth);
52
- }));
34
+ });
53
35
  }
54
36
  exports.getTweets = getTweets;
55
37
  function getTweetsByUserId(userId, maxTweets, includeReplies, auth) {
@@ -58,56 +40,34 @@ function getTweetsByUserId(userId, maxTweets, includeReplies, auth) {
58
40
  });
59
41
  }
60
42
  exports.getTweetsByUserId = getTweetsByUserId;
61
- function getLatestTweet(user, includeReplies, includeRetweets, auth) {
62
- var _a, e_1, _b, _c;
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const max = includeRetweets ? 1 : 200;
65
- const timeline = yield getTweets(user, max, includeReplies, auth);
66
- if (max == 1) {
67
- return (yield timeline.next()).value;
43
+ async function getLatestTweet(user, includeReplies, includeRetweets, auth) {
44
+ const max = includeRetweets ? 1 : 200;
45
+ const timeline = await getTweets(user, max, includeReplies, auth);
46
+ if (max == 1) {
47
+ return (await timeline.next()).value;
48
+ }
49
+ for await (const tweet of timeline) {
50
+ if (!tweet.isRetweet) {
51
+ return tweet;
68
52
  }
69
- try {
70
- for (var _d = true, timeline_2 = __asyncValues(timeline), timeline_2_1; timeline_2_1 = yield timeline_2.next(), _a = timeline_2_1.done, !_a;) {
71
- _c = timeline_2_1.value;
72
- _d = false;
73
- try {
74
- const tweet = _c;
75
- if (!tweet.isRetweet) {
76
- return tweet;
77
- }
78
- }
79
- finally {
80
- _d = true;
81
- }
82
- }
83
- }
84
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
85
- finally {
86
- try {
87
- if (!_d && !_a && (_b = timeline_2.return)) yield _b.call(timeline_2);
88
- }
89
- finally { if (e_1) throw e_1.error; }
90
- }
91
- return null;
92
- });
53
+ }
54
+ return null;
93
55
  }
94
56
  exports.getLatestTweet = getLatestTweet;
95
- function getTweet(id, includeReplies, auth) {
96
- return __awaiter(this, void 0, void 0, function* () {
97
- const params = new URLSearchParams();
98
- (0, api_1.addApiParams)(params, includeReplies);
99
- const res = yield (0, api_1.requestApi)(`https://twitter.com/i/api/2/timeline/conversation/${id}.json?${params.toString()}`, auth);
100
- if (!res.success) {
101
- throw res.err;
57
+ async function getTweet(id, includeReplies, auth) {
58
+ const params = new URLSearchParams();
59
+ (0, api_1.addApiParams)(params, includeReplies);
60
+ const res = await (0, api_1.requestApi)(`https://twitter.com/i/api/2/timeline/conversation/${id}.json?${params.toString()}`, auth);
61
+ if (!res.success) {
62
+ throw res.err;
63
+ }
64
+ const { tweets } = (0, timeline_1.parseTweets)(res.value);
65
+ for (const tweet of tweets) {
66
+ if (tweet.id === id) {
67
+ return tweet;
102
68
  }
103
- const { tweets } = (0, timeline_1.parseTweets)(res.value);
104
- for (const tweet of tweets) {
105
- if (tweet.id === id) {
106
- return tweet;
107
- }
108
- }
109
- return null;
110
- });
69
+ }
70
+ return null;
111
71
  }
112
72
  exports.getTweet = getTweet;
113
73
  //# sourceMappingURL=tweets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tweets.js","sourceRoot":"","sources":["../src/tweets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tweets.js","sourceRoot":"","sources":["../src/tweets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "@the-convocation/twitter-scraper",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "main": "dist/_module.js",
5
5
  "repository": "https://github.com/the-convocation/twitter-scraper.git",
6
6
  "author": "karashiiro <49822414+karashiiro@users.noreply.github.com>",
7
7
  "license": "MIT",
8
+ "engines": {
9
+ "node": ">=16"
10
+ },
8
11
  "scripts": {
9
12
  "build": "tsc",
10
13
  "commit": "cz",
@@ -15,14 +18,18 @@
15
18
  "test": "jest"
16
19
  },
17
20
  "dependencies": {
18
- "got-scraping": "^3.2.13",
21
+ "cross-fetch": "^4.0.0-alpha.5",
22
+ "headers-polyfill": "^3.1.2",
23
+ "set-cookie-parser": "^2.6.0",
19
24
  "tough-cookie": "^4.1.2",
20
25
  "tslib": "^2.5.2"
21
26
  },
22
27
  "devDependencies": {
23
28
  "@commitlint/cli": "^17.6.3",
24
29
  "@commitlint/config-conventional": "^17.6.3",
30
+ "@tsconfig/node16": "^16.1.0",
25
31
  "@types/jest": "^29.5.1",
32
+ "@types/set-cookie-parser": "^2.4.2",
26
33
  "@types/tough-cookie": "^4.0.2",
27
34
  "@typescript-eslint/eslint-plugin": "^5.59.7",
28
35
  "@typescript-eslint/parser": "^5.59.7",