randydev commited on
Commit
0c6a4ee
·
verified ·
1 Parent(s): cef517f

Update lib/twitter/twitter.js

Browse files
Files changed (1) hide show
  1. lib/twitter/twitter.js +11 -7
lib/twitter/twitter.js CHANGED
@@ -4,12 +4,17 @@ import { TwitterDlArgsSchema, TwitterDLResponseSchema, TwitterDlSchema } from '.
4
  import { DEFAULT_HEADERS } from '../constant.js';
5
  import { stringifyCookies, generateTokenId } from './util.js';
6
 
 
 
 
 
7
 
8
- export async function twitterdl(url) {
9
- TwitterDlArgsSchema.parse({ url });
10
 
11
  const idMatch = url.match(/status\/(\d+)/) || url.match(/(\d+)/);
12
- if (!idMatch) throw new Error("Invalid Twitter URL: Cannot extract tweet ID.");
 
 
13
 
14
  const id = idMatch[1];
15
  const token = generateTokenId(id);
@@ -23,12 +28,11 @@ export async function twitterdl(url) {
23
  }
24
  }).json();
25
 
26
- if (!Array.isArray(data)) {
27
- throw new Error("Unexpected response format: Expected an array.");
28
  }
29
 
30
- const json = TwitterDLResponseSchema.parse({ includes: { media: data } });
31
-
32
  const videos = json.includes.media
33
  .filter((m) => m.type === 'video')
34
  .flatMap((m) => m.variants)
 
4
  import { DEFAULT_HEADERS } from '../constant.js';
5
  import { stringifyCookies, generateTokenId } from './util.js';
6
 
7
+ export default async function twitterdl(url) {
8
+ if (!url || typeof url !== 'string') {
9
+ throw new Error("Invalid or missing URL parameter.");
10
+ }
11
 
12
+ TwitterDlArgsSchema.parse([url]);
 
13
 
14
  const idMatch = url.match(/status\/(\d+)/) || url.match(/(\d+)/);
15
+ if (!idMatch) {
16
+ throw new Error("Invalid Twitter URL: Cannot extract tweet ID.");
17
+ }
18
 
19
  const id = idMatch[1];
20
  const token = generateTokenId(id);
 
28
  }
29
  }).json();
30
 
31
+ if (!data || !data.includes || !data.includes.media) {
32
+ throw new Error("Invalid API response: Missing media data.");
33
  }
34
 
35
+ const json = TwitterDLResponseSchema.parse(data);
 
36
  const videos = json.includes.media
37
  .filter((m) => m.type === 'video')
38
  .flatMap((m) => m.variants)