SteveCelticus commited on
Commit
62d04fa
·
verified ·
1 Parent(s): a56ca3d

Upload streams.js

Browse files
Files changed (1) hide show
  1. streams.js +48 -75
streams.js CHANGED
@@ -65,86 +65,59 @@ async function fetchWithCloudscraper(url, retries = 3) {
65
 
66
  async function getStream(episodeLink) {
67
  let streamUrl = null;
 
68
  try {
69
- const data = await fetchWithCloudscraper(episodeLink);
70
- if (!data) {
71
- console.warn(`Nessun dato ricevuto per ${episodeLink}`);
72
- return null;
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
74
-
75
- const $ = cheerio.load(data);
76
-
77
- // 1. Cerca l'iframe all'interno del div con classe 'episode-player-box'
78
- const episodePlayerBox = $('div.episode-player-box');
79
- if (episodePlayerBox.length > 0) {
80
- const iframe = episodePlayerBox.find('iframe');
81
- if (iframe.length > 0) {
82
- streamUrl = iframe.attr('src') || iframe.attr('data-src');
83
- if (streamUrl) {
84
- streamUrl = encodeURI(streamUrl);
85
- console.log(`Trovato stream tramite iframe in episode-player-box: ${streamUrl}`);
86
- } else {
87
- console.warn(`Attributo src o data-src mancante nel tag per ${episodeLink}`);
88
- return null;
89
- }
90
- } else {
91
- console.warn(`Nessun tag trovato all'interno del div.episode-player-box per ${episodeLink}`);
92
- return null;
93
- }
94
- } else {
95
- console.warn(`Nessun div con classe 'episode-player-box' trovato per ${episodeLink}`);
96
-
97
- // 2. Se non trovato, cerca il tag con i tag all'interno
98
- if (!streamUrl) {
99
- let videoTag = $('video[name="media"]');
100
- if (videoTag.length === 0) {
101
- console.warn(`Nessun tag trovato per ${episodeLink}. Provo con $('video')`);
102
- videoTag = $('video');
103
- }
104
-
105
- if (videoTag.length > 0) {
106
- // Cerca i tag all'interno del tag
107
- const sourceTag = videoTag.find('source');
108
- if (sourceTag.length > 0) {
109
- const sourceSrc = sourceTag.attr('src');
110
- if (sourceSrc) {
111
- streamUrl = sourceSrc;
112
- console.log(`Trovato stream tramite tag : ${streamUrl}`);
113
- } else {
114
- console.warn(`Attributo src mancante nel tag per ${episodeLink}`);
115
- return null;
116
- }
117
- } else {
118
- console.warn(`Nessun tag trovato all'interno del tag per ${episodeLink}`);
119
- return null;
120
- }
121
- } else {
122
- console.warn(`Nessun tag trovato per ${episodeLink}`);
123
- }
124
-
125
- if (!streamUrl) {
126
- $('a[href*="streamingrof.online"]').each((i, el) => {
127
- const href = $(el).attr('href');
128
- if (href && href.includes('streamingrof.online')) {
129
- streamUrl = href;
130
- console.log(`Trovato stream tramite link: ${streamUrl}`);
131
- return false;
132
- }
133
- });
134
- }
135
- }
136
  }
137
-
138
- if (streamUrl) {
139
- return streamUrl;
140
- } else {
141
- console.warn(`Nessuno stream trovato per ${episodeLink}`);
142
- return null;
 
 
 
143
  }
 
 
 
 
 
 
 
 
144
  } catch (err) {
145
- console.error(`Errore durante il recupero dello stream per ${episodeLink}:`, err);
146
- return null;
147
  }
148
- }
 
149
 
150
  export { getStream };
 
65
 
66
  async function getStream(episodeLink) {
67
  let streamUrl = null;
68
+
69
  try {
70
+ const data = await fetchWithCloudscraper(episodeLink);
71
+ if (!data) {
72
+ console.warn(`Nessun dato ricevuto per ${episodeLink}`);
73
+ return null;
74
+ }
75
+
76
+ const $ = cheerio.load(data);
77
+
78
+ // Cerca l'iframe all'interno del div con classe 'episode-player-box'
79
+ const iframe = $('div.episode-player-box iframe');
80
+ if (iframe.length > 0) {
81
+ streamUrl = iframe.attr('src') || iframe.attr('data-src');
82
+ if (streamUrl) {
83
+ streamUrl = decodeURI(streamUrl); // Decodifica l'URL
84
+ console.log(`Trovato stream tramite iframe: ${streamUrl}`);
85
+ return streamUrl;
86
  }
87
+ }
88
+
89
+ // Cerca nei tag video
90
+ const videoTag = $('video[name="media"] source');
91
+ if (videoTag.length > 0) {
92
+ const sourceSrc = videoTag.attr('src');
93
+ if (sourceSrc) {
94
+ streamUrl = decodeURI(sourceSrc); // Decodifica l'URL
95
+ console.log(`Trovato stream tramite tag <source>: ${streamUrl}`);
96
+ return streamUrl;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  }
98
+ }
99
+
100
+ // Cerca nei link diretti
101
+ $('a[href*="streamingrof.online"]').each((_, el) => {
102
+ const href = $(el).attr('href');
103
+ if (href && href.includes('streamingrof.online')) {
104
+ streamUrl = decodeURI(href); // Decodifica l'URL
105
+ console.log(`Trovato stream tramite link diretto: ${streamUrl}`);
106
+ return false; // Interrompe il ciclo
107
  }
108
+ });
109
+
110
+ if (!streamUrl) {
111
+ console.warn(`Nessuno stream trovato per ${episodeLink}`);
112
+ }
113
+
114
+ return streamUrl;
115
+
116
  } catch (err) {
117
+ console.error(`Errore durante il recupero dello stream per ${episodeLink}:`, err);
118
+ return null;
119
  }
120
+ }
121
+
122
 
123
  export { getStream };