Reaperxxxx commited on
Commit
7cfaeca
·
verified ·
1 Parent(s): 9fc9694

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +24 -11
server.js CHANGED
@@ -38,12 +38,12 @@ app.get("/search", async (req, res) => {
38
 
39
  try {
40
  console.log(`Searching for: ${movieName}`);
41
- await page.goto("https://www.fzmovies.net/csearch.php", { waitUntil: "domcontentloaded" });
42
 
43
  await page.fill("#searchname", movieName);
44
  await Promise.all([
45
  page.click('input[type="submit"][name="Search"]'),
46
- page.waitForNavigation({ waitUntil: "domcontentloaded" })
47
  ]);
48
 
49
  // Step 1: Get first movie result (title & page link)
@@ -59,7 +59,7 @@ app.get("/search", async (req, res) => {
59
  }
60
 
61
  console.log(`Movie Found: ${movieData.title}`);
62
- await page.goto(movieData.link, { waitUntil: "domcontentloaded" });
63
 
64
  // Step 2: Extract the LAST download1.php link
65
  const downloadPageLink = await page.evaluate(() => {
@@ -73,7 +73,7 @@ app.get("/search", async (req, res) => {
73
  return res.status(404).json({ error: "Download link not found" });
74
  }
75
 
76
- await page.goto(downloadPageLink, { waitUntil: "domcontentloaded" });
77
 
78
  // Step 3: Extract "download.php" page link (LAST one)
79
  const finalDownloadPage = await page.evaluate(() => {
@@ -87,7 +87,7 @@ app.get("/search", async (req, res) => {
87
  return res.status(404).json({ error: "Final download page not found" });
88
  }
89
 
90
- await page.goto(finalDownloadPage, { waitUntil: "domcontentloaded" });
91
 
92
  // Step 4: Extract LAST redirection link (dlink.php)
93
  const redirectedDownloadLink = await page.evaluate(() => {
@@ -100,13 +100,26 @@ app.get("/search", async (req, res) => {
100
  return res.status(404).json({ error: "Redirected download link not found" });
101
  }
102
 
103
- // Step 5: Follow the redirection and capture final URL
104
- const downloadPage = await context.newPage();
105
- await downloadPage.goto(redirectedDownloadLink, { waitUntil: "domcontentloaded" });
 
 
 
 
 
 
 
 
 
 
 
 
106
 
107
- // Capture the final redirected URL
108
- const finalDownloadURL = downloadPage.url();
109
- await downloadPage.close();
 
110
 
111
  // **Remove everything after .mp4, .mkv, etc.**
112
  const cleanedDownloadURL = finalDownloadURL.match(/(.*\.(mp4|mkv|avi))/i);
 
38
 
39
  try {
40
  console.log(`Searching for: ${movieName}`);
41
+ await page.goto("https://www.fzmovies.net/csearch.php", { waitUntil: "domcontentloaded", timeout: 60000 });
42
 
43
  await page.fill("#searchname", movieName);
44
  await Promise.all([
45
  page.click('input[type="submit"][name="Search"]'),
46
+ page.waitForNavigation({ waitUntil: "domcontentloaded", timeout: 60000 })
47
  ]);
48
 
49
  // Step 1: Get first movie result (title & page link)
 
59
  }
60
 
61
  console.log(`Movie Found: ${movieData.title}`);
62
+ await page.goto(movieData.link, { waitUntil: "domcontentloaded", timeout: 60000 });
63
 
64
  // Step 2: Extract the LAST download1.php link
65
  const downloadPageLink = await page.evaluate(() => {
 
73
  return res.status(404).json({ error: "Download link not found" });
74
  }
75
 
76
+ await page.goto(downloadPageLink, { waitUntil: "domcontentloaded", timeout: 60000 });
77
 
78
  // Step 3: Extract "download.php" page link (LAST one)
79
  const finalDownloadPage = await page.evaluate(() => {
 
87
  return res.status(404).json({ error: "Final download page not found" });
88
  }
89
 
90
+ await page.goto(finalDownloadPage, { waitUntil: "domcontentloaded", timeout: 60000 });
91
 
92
  // Step 4: Extract LAST redirection link (dlink.php)
93
  const redirectedDownloadLink = await page.evaluate(() => {
 
100
  return res.status(404).json({ error: "Redirected download link not found" });
101
  }
102
 
103
+ // Step 5: Follow the redirection with retries
104
+ let finalDownloadURL = null;
105
+ let retryAttempts = 2;
106
+
107
+ while (!finalDownloadURL && retryAttempts > 0) {
108
+ try {
109
+ const downloadPage = await context.newPage();
110
+ await downloadPage.goto(redirectedDownloadLink, { waitUntil: "networkidle", timeout: 60000 });
111
+ finalDownloadURL = downloadPage.url();
112
+ await downloadPage.close();
113
+ } catch (err) {
114
+ console.warn(`Retrying... ${retryAttempts} attempts left`);
115
+ retryAttempts--;
116
+ }
117
+ }
118
 
119
+ if (!finalDownloadURL) {
120
+ await browser.close();
121
+ return res.status(500).json({ error: "Failed to retrieve final download link" });
122
+ }
123
 
124
  // **Remove everything after .mp4, .mkv, etc.**
125
  const cleanedDownloadURL = finalDownloadURL.match(/(.*\.(mp4|mkv|avi))/i);