@irfanshadikrishad/anilist 1.0.6 → 1.0.7

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.
@@ -36,7 +36,7 @@ function storeAccessToken(token) {
36
36
  fs.writeFileSync(save_path, token, { encoding: "utf8" });
37
37
  }
38
38
  catch (error) {
39
- console.error(`Error storing acess-token.`);
39
+ console.error(`\nError storing acess-token. ${error.message}`);
40
40
  }
41
41
  });
42
42
  }
@@ -78,23 +78,21 @@ function anilistUserLogin(clientId, clientSecret) {
78
78
  console.log(`\nWelcome Back, ${name}!`);
79
79
  }
80
80
  else {
81
- console.log(`Logged in successfull!`);
81
+ console.log(`\nLogged in successfull!`);
82
82
  }
83
83
  }
84
84
  else {
85
- console.error("Failed to get access token:", token_Data);
85
+ console.error("\nFailed to get access token:", token_Data);
86
86
  }
87
87
  });
88
88
  }
89
89
  function currentUserInfo() {
90
90
  return __awaiter(this, void 0, void 0, function* () {
91
91
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
92
- const loggedIn = yield isLoggedIn();
93
- if (loggedIn) {
94
- const sToken = yield retriveAccessToken();
92
+ if (yield isLoggedIn()) {
95
93
  const headers = {
96
94
  "Content-Type": "application/json",
97
- Authorization: `Bearer ${sToken}`,
95
+ Authorization: `Bearer ${yield retriveAccessToken()}`,
98
96
  };
99
97
  const request = yield fetch(aniListEndpoint, {
100
98
  method: "POST",
@@ -110,26 +108,35 @@ function currentUserInfo() {
110
108
  perPage: 10,
111
109
  });
112
110
  const activities = (_b = (_a = activiResponse === null || activiResponse === void 0 ? void 0 : activiResponse.data) === null || _a === void 0 ? void 0 : _a.Page) === null || _b === void 0 ? void 0 : _b.activities;
113
- console.log(`\nID:\t\t\t${user === null || user === void 0 ? void 0 : user.id}`);
114
- console.log(`Name:\t\t\t${user === null || user === void 0 ? void 0 : user.name}`);
115
- console.log(`siteUrl:\t\t${user === null || user === void 0 ? void 0 : user.siteUrl}`);
116
- console.log(`profileColor:\t\t${(_c = user === null || user === void 0 ? void 0 : user.options) === null || _c === void 0 ? void 0 : _c.profileColor}`);
117
- console.log(`timeZone:\t\t${(_d = user === null || user === void 0 ? void 0 : user.options) === null || _d === void 0 ? void 0 : _d.timezone}`);
118
- console.log(`activityMergeTime:\t${(_e = user === null || user === void 0 ? void 0 : user.options) === null || _e === void 0 ? void 0 : _e.activityMergeTime}`);
119
- console.log(`donatorTier:\t\t${user === null || user === void 0 ? void 0 : user.donatorTier}`);
120
- console.log(`donatorBadge:\t\t${user === null || user === void 0 ? void 0 : user.donatorBadge}`);
121
- console.log(`unreadNotificationCount:${user === null || user === void 0 ? void 0 : user.unreadNotificationCount}`);
122
- console.log(`Account Created:\t${new Date((user === null || user === void 0 ? void 0 : user.createdAt) * 1000).toUTCString()}`);
123
- console.log(`Account Updated:\t${new Date((user === null || user === void 0 ? void 0 : user.updatedAt) * 1000).toUTCString()}`);
124
- console.log(`\nStatistics (Anime)\nCount: ${(_g = (_f = user === null || user === void 0 ? void 0 : user.statistics) === null || _f === void 0 ? void 0 : _f.anime) === null || _g === void 0 ? void 0 : _g.count} meanScore: ${(_j = (_h = user === null || user === void 0 ? void 0 : user.statistics) === null || _h === void 0 ? void 0 : _h.anime) === null || _j === void 0 ? void 0 : _j.meanScore} minutesWatched: ${(_l = (_k = user === null || user === void 0 ? void 0 : user.statistics) === null || _k === void 0 ? void 0 : _k.anime) === null || _l === void 0 ? void 0 : _l.minutesWatched}`);
125
- console.log(`Statistics (Manga)\nCount: ${(_o = (_m = user === null || user === void 0 ? void 0 : user.statistics) === null || _m === void 0 ? void 0 : _m.manga) === null || _o === void 0 ? void 0 : _o.count} Chapter Read: ${(_q = (_p = user === null || user === void 0 ? void 0 : user.statistics) === null || _p === void 0 ? void 0 : _p.manga) === null || _q === void 0 ? void 0 : _q.chaptersRead} Volumes Read: ${(_s = (_r = user === null || user === void 0 ? void 0 : user.statistics) === null || _r === void 0 ? void 0 : _r.manga) === null || _s === void 0 ? void 0 : _s.volumesRead}`);
111
+ console.log(`
112
+ ID: ${user === null || user === void 0 ? void 0 : user.id}
113
+ Name: ${user === null || user === void 0 ? void 0 : user.name}
114
+ siteUrl: ${user === null || user === void 0 ? void 0 : user.siteUrl}
115
+ profileColor: ${(_c = user === null || user === void 0 ? void 0 : user.options) === null || _c === void 0 ? void 0 : _c.profileColor}
116
+ timeZone: ${(_d = user === null || user === void 0 ? void 0 : user.options) === null || _d === void 0 ? void 0 : _d.timezone}
117
+ activityMergeTime: ${(_e = user === null || user === void 0 ? void 0 : user.options) === null || _e === void 0 ? void 0 : _e.activityMergeTime}
118
+ donatorTier: ${user === null || user === void 0 ? void 0 : user.donatorTier}
119
+ donatorBadge: ${user === null || user === void 0 ? void 0 : user.donatorBadge}
120
+ unreadNotificationCount:${user === null || user === void 0 ? void 0 : user.unreadNotificationCount}
121
+ Account Created: ${new Date((user === null || user === void 0 ? void 0 : user.createdAt) * 1000).toUTCString()}
122
+ Account Updated: ${new Date((user === null || user === void 0 ? void 0 : user.updatedAt) * 1000).toUTCString()}
123
+
124
+ Statistics (Anime):
125
+ Count: ${(_g = (_f = user === null || user === void 0 ? void 0 : user.statistics) === null || _f === void 0 ? void 0 : _f.anime) === null || _g === void 0 ? void 0 : _g.count}
126
+ Mean Score: ${(_j = (_h = user === null || user === void 0 ? void 0 : user.statistics) === null || _h === void 0 ? void 0 : _h.anime) === null || _j === void 0 ? void 0 : _j.meanScore}
127
+ Minutes Watched: ${(_l = (_k = user === null || user === void 0 ? void 0 : user.statistics) === null || _k === void 0 ? void 0 : _k.anime) === null || _l === void 0 ? void 0 : _l.minutesWatched}
128
+
129
+ Statistics (Manga):
130
+ Count: ${(_o = (_m = user === null || user === void 0 ? void 0 : user.statistics) === null || _m === void 0 ? void 0 : _m.manga) === null || _o === void 0 ? void 0 : _o.count}
131
+ Chapters Read: ${(_q = (_p = user === null || user === void 0 ? void 0 : user.statistics) === null || _p === void 0 ? void 0 : _p.manga) === null || _q === void 0 ? void 0 : _q.chaptersRead}
132
+ Volumes Read: ${(_s = (_r = user === null || user === void 0 ? void 0 : user.statistics) === null || _r === void 0 ? void 0 : _r.manga) === null || _s === void 0 ? void 0 : _s.volumesRead}
133
+ `);
126
134
  console.log(`\nRecent Activities:`);
127
- activities.length > 0 &&
128
- activities.map(({ id, status, progress, createdAt, media }, idx) => {
129
- progress
130
- ? console.log(`${status} ${progress} of ${getTitle(media === null || media === void 0 ? void 0 : media.title)}`)
131
- : console.log(`${status} ${getTitle(media === null || media === void 0 ? void 0 : media.title)}`);
135
+ if (activities.length > 0) {
136
+ activities.map(({ status, progress, media }) => {
137
+ console.log(`${status} ${progress ? `${progress} of ` : ""}${getTitle(media === null || media === void 0 ? void 0 : media.title)}`);
132
138
  });
139
+ }
133
140
  return user;
134
141
  }
135
142
  else {
@@ -145,8 +152,7 @@ function currentUserInfo() {
145
152
  }
146
153
  function isLoggedIn() {
147
154
  return __awaiter(this, void 0, void 0, function* () {
148
- const isTokenStored = yield retriveAccessToken();
149
- if (isTokenStored !== null) {
155
+ if ((yield retriveAccessToken()) !== null) {
150
156
  return true;
151
157
  }
152
158
  else {
@@ -158,9 +164,8 @@ function logoutUser() {
158
164
  return __awaiter(this, void 0, void 0, function* () {
159
165
  if (fs.existsSync(save_path)) {
160
166
  try {
161
- const username = yield currentUsersName();
162
167
  fs.unlinkSync(save_path);
163
- console.log(`\nLogout successful. See you soon, ${username}.`);
168
+ console.log(`\nLogout successful. See you soon, ${yield currentUsersName()}.`);
164
169
  }
165
170
  catch (error) {
166
171
  console.error("\nError logging out:", error);
@@ -174,6 +179,10 @@ function logoutUser() {
174
179
  function currentUsersId() {
175
180
  return __awaiter(this, void 0, void 0, function* () {
176
181
  var _a;
182
+ if (!(yield isLoggedIn())) {
183
+ console.log(`\nUser not logged in.`);
184
+ return null;
185
+ }
177
186
  const request = yield fetch(aniListEndpoint, {
178
187
  method: "POST",
179
188
  headers: {
@@ -194,6 +203,10 @@ function currentUsersId() {
194
203
  function currentUsersName() {
195
204
  return __awaiter(this, void 0, void 0, function* () {
196
205
  var _a;
206
+ if (!(yield isLoggedIn())) {
207
+ console.log(`\nUser not logged in.`);
208
+ return null;
209
+ }
197
210
  const request = yield fetch(aniListEndpoint, {
198
211
  method: "POST",
199
212
  headers: {
@@ -24,11 +24,10 @@ function fetcher(query, variables) {
24
24
  return __awaiter(this, void 0, void 0, function* () {
25
25
  var _a;
26
26
  try {
27
- const LOGGEDIN = yield isLoggedIn();
28
27
  const headers = {
29
28
  "content-type": "application/json",
30
29
  };
31
- if (LOGGEDIN) {
30
+ if (yield isLoggedIn()) {
32
31
  headers["Authorization"] = `Bearer ${yield retriveAccessToken()}`;
33
32
  }
34
33
  const request = yield fetch(aniListEndpoint, {
@@ -61,8 +61,7 @@ function getTrending(count) {
61
61
  },
62
62
  ]);
63
63
  // Lets save to the list now
64
- const ISLOGGEDIN = yield isLoggedIn();
65
- if (ISLOGGEDIN) {
64
+ if (yield isLoggedIn()) {
66
65
  const query = addAnimeToListMutation;
67
66
  const variables = {
68
67
  mediaId: selectedAnime,
@@ -137,8 +136,7 @@ function getPopular(count) {
137
136
  },
138
137
  ]);
139
138
  // Lets save to the list now
140
- const ISLOGGEDIN = yield isLoggedIn();
141
- if (ISLOGGEDIN) {
139
+ if (yield isLoggedIn()) {
142
140
  const query = addAnimeToListMutation;
143
141
  const variables = {
144
142
  mediaId: selectedAnime,
@@ -171,10 +169,8 @@ function loggedInUsersAnimeLists() {
171
169
  return __awaiter(this, void 0, void 0, function* () {
172
170
  var _a, _b, _c, _d, _e;
173
171
  try {
174
- const loggedIn = yield isLoggedIn();
175
- if (loggedIn) {
176
- const userID = yield currentUsersId();
177
- if (userID) {
172
+ if (yield isLoggedIn()) {
173
+ if (yield currentUsersId()) {
178
174
  const request = yield fetch(aniListEndpoint, {
179
175
  method: "POST",
180
176
  headers: {
@@ -183,7 +179,7 @@ function loggedInUsersAnimeLists() {
183
179
  },
184
180
  body: JSON.stringify({
185
181
  query: currentUserAnimeList,
186
- variables: { id: userID },
182
+ variables: { id: yield currentUsersId() },
187
183
  }),
188
184
  });
189
185
  const response = yield request.json();
@@ -233,8 +229,7 @@ function loggedInUsersAnimeLists() {
233
229
  },
234
230
  ]);
235
231
  // Lets save to the list now
236
- const ISLOGGEDIN = yield isLoggedIn();
237
- if (ISLOGGEDIN) {
232
+ if (yield isLoggedIn()) {
238
233
  const query = addAnimeToListMutation;
239
234
  const variables = {
240
235
  mediaId: selectedAnime,
@@ -283,8 +278,7 @@ function loggedInUsersMangaLists() {
283
278
  return __awaiter(this, void 0, void 0, function* () {
284
279
  var _a, _b, _c, _d, _e, _f;
285
280
  try {
286
- const loggedIn = yield isLoggedIn();
287
- if (loggedIn) {
281
+ if (yield isLoggedIn()) {
288
282
  const userID = yield currentUsersId();
289
283
  if (userID) {
290
284
  const request = yield fetch(aniListEndpoint, {
@@ -344,8 +338,7 @@ function loggedInUsersMangaLists() {
344
338
  },
345
339
  ]);
346
340
  // Save the selected manga to the selected list type
347
- const ISLOGGEDIN = yield isLoggedIn();
348
- if (ISLOGGEDIN) {
341
+ if (yield isLoggedIn()) {
349
342
  const query = addMangaToListMutation;
350
343
  const variables = {
351
344
  mediaId: selectedManga,
@@ -400,8 +393,7 @@ function loggedInUsersMangaLists() {
400
393
  function deleteAnimeCollection() {
401
394
  return __awaiter(this, void 0, void 0, function* () {
402
395
  var _a, _b, _c, _d;
403
- const loggedIn = yield isLoggedIn();
404
- if (loggedIn) {
396
+ if (yield isLoggedIn()) {
405
397
  const userID = yield currentUsersId();
406
398
  if (userID) {
407
399
  const request = yield fetch(aniListEndpoint, {
@@ -431,7 +423,7 @@ function deleteAnimeCollection() {
431
423
  const selectedEntries = lists.find((list) => list.name === selectedList);
432
424
  if (selectedEntries) {
433
425
  console.log(`\nDeleting entries of '${selectedEntries.name}':`);
434
- for (const [idx, entry] of selectedEntries.entries.entries()) {
426
+ for (const [_, entry] of selectedEntries.entries.entries()) {
435
427
  if (entry === null || entry === void 0 ? void 0 : entry.id) {
436
428
  yield deleteAnimeByAnimeId(entry === null || entry === void 0 ? void 0 : entry.id, (_c = entry === null || entry === void 0 ? void 0 : entry.media) === null || _c === void 0 ? void 0 : _c.title);
437
429
  yield new Promise((resolve) => setTimeout(resolve, 2000));
@@ -496,8 +488,7 @@ function deleteAnimeByAnimeId(id, title) {
496
488
  function deleteMangaCollection() {
497
489
  return __awaiter(this, void 0, void 0, function* () {
498
490
  var _a, _b, _c, _d;
499
- const loggedIn = yield isLoggedIn();
500
- if (loggedIn) {
491
+ if (yield isLoggedIn()) {
501
492
  const userID = yield currentUsersId();
502
493
  if (userID) {
503
494
  const request = yield fetch(aniListEndpoint, {
@@ -527,7 +518,7 @@ function deleteMangaCollection() {
527
518
  const selectedEntries = lists.find((list) => list.name === selectedList);
528
519
  if (selectedEntries) {
529
520
  console.log(`\nDeleting entries of '${selectedEntries.name}':`);
530
- for (const [idx, entry] of selectedEntries.entries.entries()) {
521
+ for (const [_, entry] of selectedEntries.entries.entries()) {
531
522
  if (entry === null || entry === void 0 ? void 0 : entry.id) {
532
523
  yield deleteMangaByMangaId(entry === null || entry === void 0 ? void 0 : entry.id, (_c = entry === null || entry === void 0 ? void 0 : entry.media) === null || _c === void 0 ? void 0 : _c.title);
533
524
  yield new Promise((resolve) => setTimeout(resolve, 2000));
@@ -561,12 +552,12 @@ function deleteMangaCollection() {
561
552
  }
562
553
  function deleteMangaByMangaId(id, title) {
563
554
  return __awaiter(this, void 0, void 0, function* () {
564
- var _a, _b, _c;
555
+ var _a, _b;
565
556
  try {
566
557
  const request = yield fetch(aniListEndpoint, {
567
558
  method: "POST",
568
559
  headers: {
569
- "content-type": "application/json",
560
+ "Content-Type": "application/json",
570
561
  Authorization: `Bearer ${yield retriveAccessToken()}`,
571
562
  },
572
563
  body: JSON.stringify({
@@ -574,18 +565,18 @@ function deleteMangaByMangaId(id, title) {
574
565
  variables: { id },
575
566
  }),
576
567
  });
577
- const response = yield request.json();
578
- if (request.status === 200) {
579
- const deleted = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.DeleteMediaListEntry) === null || _b === void 0 ? void 0 : _b.deleted;
580
- console.log(`del ${title ? getTitle(title) : ""} ${deleted ? "✅" : "❌"}`);
568
+ const { data, errors } = yield request.json();
569
+ const statusMessage = title ? getTitle(title) : "";
570
+ if (request.ok) {
571
+ const deleted = (_a = data === null || data === void 0 ? void 0 : data.DeleteMediaListEntry) === null || _a === void 0 ? void 0 : _a.deleted;
572
+ console.log(`del ${statusMessage} ${deleted ? "✅" : "❌"}`);
581
573
  }
582
574
  else {
583
- console.log(`\nError deleting manga. ${(_c = response === null || response === void 0 ? void 0 : response.errors[0]) === null || _c === void 0 ? void 0 : _c.message}`);
584
- console.log(response);
575
+ console.error(`Error deleting manga. ${(_b = errors === null || errors === void 0 ? void 0 : errors[0]) === null || _b === void 0 ? void 0 : _b.message}`);
585
576
  }
586
577
  }
587
578
  catch (error) {
588
- console.log(`\nError deleting manga. ${id} ${error.message}`);
579
+ console.error(`Error deleting manga. ${id} ${error instanceof Error ? error.message : error}`);
589
580
  }
590
581
  });
591
582
  }
@@ -594,24 +585,13 @@ function getUpcomingAnimes(count) {
594
585
  var _a, _b, _c, _d, _e;
595
586
  try {
596
587
  const { nextSeason, nextYear } = getNextSeasonAndYear();
597
- const loggedIn = yield isLoggedIn();
598
- let headers = {
599
- "content-type": "application/json",
600
- };
601
- if (loggedIn) {
602
- headers["Authorization"] = `Bearer ${yield retriveAccessToken()}`;
603
- }
604
- const request = yield fetch(aniListEndpoint, {
605
- method: "POST",
606
- headers: headers,
607
- body: JSON.stringify({
608
- query: upcomingAnimesQuery,
609
- variables: { nextSeason, nextYear, perPage: count },
610
- }),
588
+ const request = yield fetcher(upcomingAnimesQuery, {
589
+ nextSeason,
590
+ nextYear,
591
+ perPage: count,
611
592
  });
612
- const response = yield request.json();
613
- if (request.status === 200) {
614
- const upcoming = (_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.Page) === null || _b === void 0 ? void 0 : _b.media) !== null && _c !== void 0 ? _c : [];
593
+ if (request) {
594
+ const upcoming = (_c = (_b = (_a = request === null || request === void 0 ? void 0 : request.data) === null || _a === void 0 ? void 0 : _a.Page) === null || _b === void 0 ? void 0 : _b.media) !== null && _c !== void 0 ? _c : [];
615
595
  const { selectedAnime } = yield inquirer.prompt([
616
596
  {
617
597
  type: "list",
@@ -640,8 +620,7 @@ function getUpcomingAnimes(count) {
640
620
  },
641
621
  ]);
642
622
  // Lets save to the list now
643
- const ISLOGGEDIN = yield isLoggedIn();
644
- if (ISLOGGEDIN) {
623
+ if (yield isLoggedIn()) {
645
624
  const query = addAnimeToListMutation;
646
625
  const variables = { mediaId: selectedAnime, status: selectedListType };
647
626
  const response = yield fetcher(query, variables);
@@ -655,7 +634,7 @@ function getUpcomingAnimes(count) {
655
634
  }
656
635
  }
657
636
  else {
658
- console.error(`\nSomething went wrong. ${(_e = response === null || response === void 0 ? void 0 : response.errors[0]) === null || _e === void 0 ? void 0 : _e.message}`);
637
+ console.error(`\nSomething went wrong. ${(_e = request === null || request === void 0 ? void 0 : request.errors[0]) === null || _e === void 0 ? void 0 : _e.message}`);
659
638
  }
660
639
  }
661
640
  catch (error) {
@@ -18,11 +18,10 @@ function getUserInfoByUsername(username) {
18
18
  return __awaiter(this, void 0, void 0, function* () {
19
19
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
20
20
  try {
21
- const loggedIn = yield isLoggedIn();
22
- let headers = {
21
+ const headers = {
23
22
  "content-type": "application/json",
24
23
  };
25
- if (loggedIn) {
24
+ if (yield isLoggedIn()) {
26
25
  headers["Authorization"] = `Bearer ${yield retriveAccessToken()}`;
27
26
  }
28
27
  const request = yield fetch(aniListEndpoint, {
@@ -44,9 +43,8 @@ function getUserInfoByUsername(username) {
44
43
  console.log(`siteUrl:\t${user === null || user === void 0 ? void 0 : user.siteUrl}`);
45
44
  console.log(`Donator Tier:\t${user === null || user === void 0 ? void 0 : user.donatorTier}`);
46
45
  console.log(`Donator Badge:\t${user === null || user === void 0 ? void 0 : user.donatorBadge}`);
47
- {
48
- (user === null || user === void 0 ? void 0 : user.createdAt) &&
49
- console.log(`Account Created:${new Date((user === null || user === void 0 ? void 0 : user.createdAt) * 1000).toUTCString()}`);
46
+ if (user === null || user === void 0 ? void 0 : user.createdAt) {
47
+ console.log(`Account Created: ${new Date(user.createdAt * 1000).toUTCString()}`);
50
48
  }
51
49
  console.log(`Account Updated:${new Date((user === null || user === void 0 ? void 0 : user.updatedAt) * 1000).toUTCString()}`);
52
50
  console.log(`I blocked?\t${user === null || user === void 0 ? void 0 : user.isBlocked}`);
@@ -57,12 +55,11 @@ function getUserInfoByUsername(username) {
57
55
  console.log(`\nStatistics (Anime)\nCount: ${(_g = (_f = user === null || user === void 0 ? void 0 : user.statistics) === null || _f === void 0 ? void 0 : _f.anime) === null || _g === void 0 ? void 0 : _g.count} episodesWatched: ${(_j = (_h = user === null || user === void 0 ? void 0 : user.statistics) === null || _h === void 0 ? void 0 : _h.anime) === null || _j === void 0 ? void 0 : _j.episodesWatched} minutesWatched: ${(_l = (_k = user === null || user === void 0 ? void 0 : user.statistics) === null || _k === void 0 ? void 0 : _k.anime) === null || _l === void 0 ? void 0 : _l.minutesWatched}`);
58
56
  console.log(`Statistics (Manga)\nCount: ${(_o = (_m = user === null || user === void 0 ? void 0 : user.statistics) === null || _m === void 0 ? void 0 : _m.manga) === null || _o === void 0 ? void 0 : _o.count} Chapter Read: ${(_q = (_p = user === null || user === void 0 ? void 0 : user.statistics) === null || _p === void 0 ? void 0 : _p.manga) === null || _q === void 0 ? void 0 : _q.chaptersRead} Volumes Read: ${(_s = (_r = user === null || user === void 0 ? void 0 : user.statistics) === null || _r === void 0 ? void 0 : _r.manga) === null || _s === void 0 ? void 0 : _s.volumesRead}`);
59
57
  console.log(`\nRecent Activities:`);
60
- activities.length > 0 &&
61
- activities.map(({ id, status, progress, createdAt, media }, idx) => {
62
- progress
63
- ? console.log(`${status} ${progress} of ${getTitle(media === null || media === void 0 ? void 0 : media.title)}`)
64
- : console.log(`${status} ${getTitle(media === null || media === void 0 ? void 0 : media.title)}`);
58
+ if (activities.length > 0) {
59
+ activities.map(({ status, progress, media }) => {
60
+ console.log(`${status} ${progress ? `${progress} of ` : ""}${getTitle(media === null || media === void 0 ? void 0 : media.title)}`);
65
61
  });
62
+ }
66
63
  }
67
64
  else {
68
65
  console.error(`\n${request.status} ${(_t = response === null || response === void 0 ? void 0 : response.errors[0]) === null || _t === void 0 ? void 0 : _t.message}`);
@@ -76,11 +73,11 @@ function getUserInfoByUsername(username) {
76
73
  function getAnimeDetailsByID(anilistID) {
77
74
  return __awaiter(this, void 0, void 0, function* () {
78
75
  var _a;
79
- let query = animeDetailsQuery;
80
- let variables = { id: anilistID };
76
+ const query = animeDetailsQuery;
77
+ const variables = { id: anilistID };
81
78
  const details = yield fetcher(query, variables);
82
- if (details) {
83
- const { id, idMal, title, description, episodes, nextAiringEpisode, duration, startDate, endDate, countryOfOrigin, isAdult, status, season, format, genres, siteUrl, stats, } = (_a = details === null || details === void 0 ? void 0 : details.data) === null || _a === void 0 ? void 0 : _a.Media;
79
+ if ((_a = details === null || details === void 0 ? void 0 : details.data) === null || _a === void 0 ? void 0 : _a.Media) {
80
+ const { id, title, description, duration, startDate, endDate, countryOfOrigin, isAdult, status, season, format, genres, siteUrl, } = details.data.Media;
84
81
  console.log(`\nID: ${id}`);
85
82
  console.log(`Title: ${(title === null || title === void 0 ? void 0 : title.userPreffered) || getTitle(title)}`);
86
83
  console.log(`Description: ${removeHtmlAndMarkdown(description)}`);
@@ -134,8 +131,7 @@ function getAnimeSearchResults(search, count) {
134
131
  },
135
132
  ]);
136
133
  // Lets save to the list now
137
- const ISLOGGEDIN = yield isLoggedIn();
138
- if (ISLOGGEDIN) {
134
+ if (yield isLoggedIn()) {
139
135
  const query = addAnimeToListMutation;
140
136
  const variables = { mediaId: selectedList, status: selectedListType };
141
137
  const response = yield fetcher(query, variables);
@@ -194,8 +190,7 @@ function getMangaSearchResults(search, count) {
194
190
  },
195
191
  ]);
196
192
  // If logged in save to the list
197
- const ISLOGGEDIN = yield isLoggedIn();
198
- if (ISLOGGEDIN) {
193
+ if (yield isLoggedIn()) {
199
194
  const mutation = addMangaToListMutation;
200
195
  const variables = { mediaId: selectedMangaId, status: selectedListType };
201
196
  const response = yield fetcher(mutation, variables);
@@ -215,9 +210,8 @@ function getMangaSearchResults(search, count) {
215
210
  }
216
211
  function deleteUserActivities() {
217
212
  return __awaiter(this, void 0, void 0, function* () {
218
- var _a, _b, _c, _d;
219
- const LOGGEDIN = yield isLoggedIn();
220
- if (LOGGEDIN) {
213
+ var _a, _b, _c, _d, _e, _f;
214
+ if (yield isLoggedIn()) {
221
215
  const { activityType } = yield inquirer.prompt([
222
216
  {
223
217
  type: "list",
@@ -233,51 +227,52 @@ function deleteUserActivities() {
233
227
  ],
234
228
  },
235
229
  ]);
236
- let query = ``;
237
230
  const userId = yield currentUsersId();
238
- let variables = { page: 1, perPage: 100, userId };
239
- switch (activityType) {
240
- case 0:
241
- query = activityAllQuery;
242
- break;
243
- case 1:
244
- query = activityTextQuery;
245
- break;
246
- case 2:
247
- query = activityMediaList;
248
- break;
249
- case 3:
250
- query = activityAnimeListQuery;
251
- break;
252
- case 4:
253
- query = activityMangaListQuery;
254
- break;
255
- case 5:
256
- query = activityMessageQuery;
257
- break;
258
- }
259
- const response = yield fetcher(query, variables);
260
- if (response) {
261
- const activities = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.Page) === null || _b === void 0 ? void 0 : _b.activities;
262
- if (activities.length <= 0) {
263
- console.log(`\nNo activities available of this type.`);
264
- }
265
- else {
266
- for (let act of activities) {
267
- // Making sure to have ID
268
- // to avoid unintended errors
269
- if (act === null || act === void 0 ? void 0 : act.id) {
270
- const activityID = act === null || act === void 0 ? void 0 : act.id;
271
- const deleteResponse = yield fetcher(deleteActivityMutation, {
272
- id: activityID,
273
- });
274
- const isDeleted = (_d = (_c = deleteResponse === null || deleteResponse === void 0 ? void 0 : deleteResponse.data) === null || _c === void 0 ? void 0 : _c.DeleteActivity) === null || _d === void 0 ? void 0 : _d.deleted;
275
- console.log(`${activityID} ${isDeleted ? "✅" : "❌"}`);
276
- // avoiding rate-limit
277
- yield new Promise((resolve) => setTimeout(resolve, 2000));
231
+ const variables = { page: 1, perPage: 100, userId };
232
+ const queryMap = {
233
+ 0: activityAllQuery,
234
+ 1: activityTextQuery,
235
+ 2: activityMediaList,
236
+ 3: activityAnimeListQuery,
237
+ 4: activityMangaListQuery,
238
+ 5: activityMessageQuery,
239
+ };
240
+ const query = queryMap[activityType];
241
+ let hasMoreActivities = true;
242
+ while (hasMoreActivities) {
243
+ const response = yield fetcher(query, {
244
+ page: 1,
245
+ perPage: 50,
246
+ userId: yield currentUsersId(),
247
+ });
248
+ if ((_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.Page) === null || _b === void 0 ? void 0 : _b.activities) {
249
+ let count = 0;
250
+ const activities = (_d = (_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.Page) === null || _d === void 0 ? void 0 : _d.activities;
251
+ if (!activities || activities.length === 0) {
252
+ console.log(`\nNo more activities available.`);
253
+ hasMoreActivities = false;
254
+ }
255
+ else {
256
+ for (const act of activities) {
257
+ // Ensure ID is present to avoid unintended errors
258
+ if (act === null || act === void 0 ? void 0 : act.id) {
259
+ const deleteResponse = yield fetcher(deleteActivityMutation, {
260
+ id: act === null || act === void 0 ? void 0 : act.id,
261
+ });
262
+ const isDeleted = (_f = (_e = deleteResponse === null || deleteResponse === void 0 ? void 0 : deleteResponse.data) === null || _e === void 0 ? void 0 : _e.DeleteActivity) === null || _f === void 0 ? void 0 : _f.deleted;
263
+ count++;
264
+ console.log(`[${count}/${activities.length}] ${act === null || act === void 0 ? void 0 : act.id} ${isDeleted ? "✅" : "❌"}`);
265
+ // Avoiding rate-limit
266
+ yield new Promise((resolve) => setTimeout(resolve, 2000));
267
+ }
278
268
  }
279
269
  }
280
270
  }
271
+ else {
272
+ // In case of an unexpected null response, exit the loop
273
+ console.log(`\nProbably deleted all the activities of this type.`);
274
+ hasMoreActivities = false;
275
+ }
281
276
  }
282
277
  }
283
278
  else {
@@ -289,24 +284,23 @@ function writeTextActivity(status) {
289
284
  return __awaiter(this, void 0, void 0, function* () {
290
285
  var _a;
291
286
  try {
292
- if (yield isLoggedIn()) {
293
- const query = saveTextActivityMutation;
294
- const addTagInStatus = status +
295
- `<br><br><br><br>*Written using [@irfanshadikrishad/anilist](https://www.npmjs.com/package/@irfanshadikrishad/anilist).*`;
296
- const variables = { status: addTagInStatus };
297
- const data = yield fetcher(query, variables);
298
- if (data) {
299
- const savedActivity = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.SaveTextActivity;
300
- if (savedActivity === null || savedActivity === void 0 ? void 0 : savedActivity.id) {
301
- console.log(`\n[${savedActivity === null || savedActivity === void 0 ? void 0 : savedActivity.id}] status saved successfully!`);
302
- }
303
- }
304
- else {
305
- console.error(`\nSomething went wrong. ${data}.`);
306
- }
307
- }
308
- else {
287
+ if (!(yield isLoggedIn())) {
309
288
  console.error(`\nPlease login to use this feature.`);
289
+ return;
290
+ }
291
+ const query = saveTextActivityMutation;
292
+ const variables = {
293
+ status: status +
294
+ `<br><br><br><br>*Written using [@irfanshadikrishad/anilist](https://www.npmjs.com/package/@irfanshadikrishad/anilist).*`,
295
+ };
296
+ const data = yield fetcher(query, variables);
297
+ if (!data) {
298
+ console.error(`\nSomething went wrong. ${data}.`);
299
+ return;
300
+ }
301
+ const savedActivity = (_a = data.data) === null || _a === void 0 ? void 0 : _a.SaveTextActivity;
302
+ if (savedActivity === null || savedActivity === void 0 ? void 0 : savedActivity.id) {
303
+ console.log(`\n[${savedActivity.id}] status saved successfully!`);
310
304
  }
311
305
  }
312
306
  catch (error) {
@@ -441,6 +435,9 @@ function importAnimeList() {
441
435
  case 1:
442
436
  yield importAnimeListFromExportedJSON();
443
437
  break;
438
+ default:
439
+ console.log(`\nInvalid Choice.`);
440
+ break;
444
441
  }
445
442
  }
446
443
  catch (error) {
@@ -464,6 +461,9 @@ function importMangaList() {
464
461
  case 1:
465
462
  yield importMangaListFromExportedJSON();
466
463
  break;
464
+ default:
465
+ console.log(`\nInvalid Choice.`);
466
+ break;
467
467
  }
468
468
  }
469
469
  catch (error) {