/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////// Main Functions ////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// async function searchResults(keyword) { try { const encodedKeyword = encodeURIComponent(keyword); const searchApiUrl = `https://s.to/ajax/seriesSearch?keyword=${encodedKeyword}`; const response = await soraFetch(searchApiUrl); const responseText = await response?.text() ?? response; const data = await JSON.parse(responseText); const transformedResults = data.map(serie => ({ title: serie.name, image: `https://s.to${serie.cover}`, href: `https://s.to/serie/stream/${serie.link}` })); return JSON.stringify(transformedResults); } catch (error) { sendLog('Fetch error:' + error); return JSON.stringify([{ title: 'Error', image: '', href: '' }]); } } async function extractDetails(url) { try { const fetchUrl = `${url}`; const response = await soraFetch(fetchUrl); const text = response.text ? await response.text() : response; const descriptionRegex = /
(.*?)<\/p>/s; const aliasesRegex = /