rettiwt-api 4.1.1 → 4.1.2

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.
@@ -42,6 +42,22 @@ export declare class Tweet {
42
42
  * @param tweet - The raw tweet details.
43
43
  */
44
44
  constructor(tweet: IRawTweet);
45
+ /**
46
+ * Extract and deserialize the original quoted tweet from the given raw tweet.
47
+ *
48
+ * @param tweet - The raw tweet.
49
+ *
50
+ * @returns - The deserialized original quoted tweet.
51
+ */
52
+ private getQuotedTweet;
53
+ /**
54
+ * Extract and deserialize the original retweeted tweet from the given raw tweet.
55
+ *
56
+ * @param tweet - The raw tweet.
57
+ *
58
+ * @returns - The deserialized original retweeted tweet.
59
+ */
60
+ private getRetweetedTweet;
45
61
  /**
46
62
  * Extracts and deserializes the list of tweets from the given raw response data.
47
63
  *
@@ -16,13 +16,13 @@ var Tweet = /** @class */ (function () {
16
16
  * @param tweet - The raw tweet details.
17
17
  */
18
18
  function Tweet(tweet) {
19
- var _a, _b, _c, _d;
19
+ var _a, _b;
20
20
  this.id = tweet.rest_id;
21
21
  this.createdAt = tweet.legacy.created_at;
22
22
  this.tweetBy = new User_1.User(tweet.core.user_results.result);
23
23
  this.entities = new TweetEntities(tweet.legacy.entities);
24
24
  this.media = (_b = (_a = tweet.legacy.extended_entities) === null || _a === void 0 ? void 0 : _a.media) === null || _b === void 0 ? void 0 : _b.map(function (media) { return new TweetMedia(media); });
25
- this.quoted = tweet.quoted_status_result ? new Tweet(tweet.quoted_status_result.result) : undefined;
25
+ this.quoted = this.getQuotedTweet(tweet);
26
26
  this.fullText = tweet.note_tweet ? tweet.note_tweet.note_tweet_results.result.text : tweet.legacy.full_text;
27
27
  this.replyTo = tweet.legacy.in_reply_to_status_id_str;
28
28
  this.lang = tweet.legacy.lang;
@@ -32,10 +32,59 @@ var Tweet = /** @class */ (function () {
32
32
  this.likeCount = tweet.legacy.favorite_count;
33
33
  this.viewCount = tweet.views.count ? parseInt(tweet.views.count) : 0;
34
34
  this.bookmarkCount = tweet.legacy.bookmark_count;
35
- this.retweetedTweet = ((_d = (_c = tweet.legacy.retweeted_status_result) === null || _c === void 0 ? void 0 : _c.result) === null || _d === void 0 ? void 0 : _d.rest_id)
36
- ? new Tweet(tweet.legacy.retweeted_status_result.result)
37
- : undefined;
35
+ this.retweetedTweet = this.getRetweetedTweet(tweet);
38
36
  }
37
+ /**
38
+ * Extract and deserialize the original quoted tweet from the given raw tweet.
39
+ *
40
+ * @param tweet - The raw tweet.
41
+ *
42
+ * @returns - The deserialized original quoted tweet.
43
+ */
44
+ Tweet.prototype.getQuotedTweet = function (tweet) {
45
+ // If tweet with limited visibility
46
+ if (tweet.quoted_status_result &&
47
+ Object.entries(tweet.quoted_status_result).length &&
48
+ tweet.quoted_status_result.result.__typename == 'TweetWithVisibilityResults') {
49
+ return new Tweet(tweet.quoted_status_result.result.tweet);
50
+ }
51
+ // If normal tweet
52
+ else if (tweet.quoted_status_result && Object.entries(tweet.quoted_status_result).length) {
53
+ return new Tweet(tweet);
54
+ }
55
+ // Else, skip
56
+ else {
57
+ // Logging
58
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, {
59
+ action: Logging_1.ELogActions.DESERIALIZE,
60
+ message: 'Quoted tweet not found, skipping',
61
+ });
62
+ return undefined;
63
+ }
64
+ };
65
+ /**
66
+ * Extract and deserialize the original retweeted tweet from the given raw tweet.
67
+ *
68
+ * @param tweet - The raw tweet.
69
+ *
70
+ * @returns - The deserialized original retweeted tweet.
71
+ */
72
+ Tweet.prototype.getRetweetedTweet = function (tweet) {
73
+ var _a, _b;
74
+ // If valid retweeted tweet
75
+ if ((_b = (_a = tweet.legacy.retweeted_status_result) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.rest_id) {
76
+ return new Tweet(tweet.legacy.retweeted_status_result.result);
77
+ }
78
+ // Else, skip
79
+ else {
80
+ // Logging
81
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, {
82
+ action: Logging_1.ELogActions.DESERIALIZE,
83
+ message: 'Retweeted tweet not found, skipping',
84
+ });
85
+ return undefined;
86
+ }
87
+ };
39
88
  /**
40
89
  * Extracts and deserializes the list of tweets from the given raw response data.
41
90
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../../src/models/data/Tweet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../../src/models/data/Tweet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rettiwt-api",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "An API for fetching data from TwitterAPI, without any rate limits!",
@@ -36,7 +36,7 @@
36
36
  "commander": "11.1.0",
37
37
  "https-proxy-agent": "7.0.2",
38
38
  "rettiwt-auth": "2.1.0",
39
- "rettiwt-core": "4.3.0"
39
+ "rettiwt-core": "4.3.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "20.4.1",
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  EMediaType,
3
+ ILimitedVisibilityTweet,
3
4
  IExtendedMedia as IRawExtendedMedia,
4
5
  ITweet as IRawTweet,
5
6
  IEntities as IRawTweetEntities,
@@ -77,7 +78,7 @@ export class Tweet {
77
78
  this.tweetBy = new User(tweet.core.user_results.result);
78
79
  this.entities = new TweetEntities(tweet.legacy.entities);
79
80
  this.media = tweet.legacy.extended_entities?.media?.map((media) => new TweetMedia(media));
80
- this.quoted = tweet.quoted_status_result ? new Tweet(tweet.quoted_status_result.result) : undefined;
81
+ this.quoted = this.getQuotedTweet(tweet);
81
82
  this.fullText = tweet.note_tweet ? tweet.note_tweet.note_tweet_results.result.text : tweet.legacy.full_text;
82
83
  this.replyTo = tweet.legacy.in_reply_to_status_id_str;
83
84
  this.lang = tweet.legacy.lang;
@@ -87,9 +88,63 @@ export class Tweet {
87
88
  this.likeCount = tweet.legacy.favorite_count;
88
89
  this.viewCount = tweet.views.count ? parseInt(tweet.views.count) : 0;
89
90
  this.bookmarkCount = tweet.legacy.bookmark_count;
90
- this.retweetedTweet = tweet.legacy.retweeted_status_result?.result?.rest_id
91
- ? new Tweet(tweet.legacy.retweeted_status_result.result)
92
- : undefined;
91
+ this.retweetedTweet = this.getRetweetedTweet(tweet);
92
+ }
93
+
94
+ /**
95
+ * Extract and deserialize the original quoted tweet from the given raw tweet.
96
+ *
97
+ * @param tweet - The raw tweet.
98
+ *
99
+ * @returns - The deserialized original quoted tweet.
100
+ */
101
+ private getQuotedTweet(tweet: IRawTweet): Tweet | undefined {
102
+ // If tweet with limited visibility
103
+ if (
104
+ tweet.quoted_status_result &&
105
+ Object.entries(tweet.quoted_status_result).length &&
106
+ tweet.quoted_status_result.result.__typename == 'TweetWithVisibilityResults'
107
+ ) {
108
+ return new Tweet((tweet.quoted_status_result.result as ILimitedVisibilityTweet).tweet);
109
+ }
110
+ // If normal tweet
111
+ else if (tweet.quoted_status_result && Object.entries(tweet.quoted_status_result).length) {
112
+ return new Tweet(tweet);
113
+ }
114
+ // Else, skip
115
+ else {
116
+ // Logging
117
+ LogService.log(ELogActions.WARNING, {
118
+ action: ELogActions.DESERIALIZE,
119
+ message: 'Quoted tweet not found, skipping',
120
+ });
121
+
122
+ return undefined;
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Extract and deserialize the original retweeted tweet from the given raw tweet.
128
+ *
129
+ * @param tweet - The raw tweet.
130
+ *
131
+ * @returns - The deserialized original retweeted tweet.
132
+ */
133
+ private getRetweetedTweet(tweet: IRawTweet): Tweet | undefined {
134
+ // If valid retweeted tweet
135
+ if (tweet.legacy.retweeted_status_result?.result?.rest_id) {
136
+ return new Tweet(tweet.legacy.retweeted_status_result.result);
137
+ }
138
+ // Else, skip
139
+ else {
140
+ // Logging
141
+ LogService.log(ELogActions.WARNING, {
142
+ action: ELogActions.DESERIALIZE,
143
+ message: 'Retweeted tweet not found, skipping',
144
+ });
145
+
146
+ return undefined;
147
+ }
93
148
  }
94
149
 
95
150
  /**