import { GalleryData } from "@/meta/data"; export const findVideoUrlInsideTagStringByFunctionNameAndExtension = ( tagBlock: string, functionName: string, extension: string): string | null => { const start = tagBlock.indexOf(`html5player.${functionName}('`) + `html5player.${functionName}('`.length; const end = tagBlock.toString().indexOf("'", start); const substr = tagBlock.substring(start, end); if (substr.includes(extension)) { return substr } return null } export const findRelatedVideos = (tagBlock: string): GalleryData[] | null => { if (!(tagBlock.includes('video_related=['))) { return null } // Trova l'inizio e la fine dell'array di oggetti nell'input const start = tagBlock.indexOf('[{'); const end = tagBlock.lastIndexOf('}]') + 2; // Estrai la sottostringa contenente l'array di oggetti const jsonString = tagBlock.substring(start, end); // Parsea la stringa JSON in un array di oggetti const videoRelatedArray = JSON.parse(jsonString); // Mappa ogni oggetto nell'array per rinominare le chiavi //@ts-ignore const parsedArray = videoRelatedArray.map(obj => ({ //@ts-ignore videoUrl: obj.u, imgUrl: obj.i, text: obj.tf })); return parsedArray; } export const removeHttpS = (url: string): string => { if (url.startsWith("http://")) { return url.slice(7); } else if (url.startsWith("https://")) { return url.slice(8); } return url; }; export const encodeVideoUrlPath = (input: string): string => { return encodeURIComponent(input.replace(/^\/+/, '')) }; export const decodeVideoUrlPath = (input: string): string => { return `/${decodeURIComponent(input)}`; };