{"version":3,"file":"usefetchRadioData-h8itKbl3.mjs","names":[],"sources":["../src/components/composable/radio/usefetchRadioData.ts"],"sourcesContent":["import classicApi from \"../../../api/classicApi\";\nimport { MediaRadio, MetadataRadio, NextAdvertising } from '@/stores/class/general/player';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport dayjs from 'dayjs';\nimport {onBeforeUnmount, Ref, ref} from 'vue';\nimport { useI18n } from \"vue-i18n\";\nexport const useFetchRadio = ()=>{\n\n  const radioInterval : Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n  const {t} = useI18n();\n  \n  async function fetchRadioMetadata(\n    canalId: number,\n    previousTitle: string,\n    callbackMetadata: (\n      metadata: MediaRadio|undefined,\n      podcast: Podcast | undefined,\n      history: Array<MediaRadio>\n    ) => void,\n    callbackAdvertising?: (\n      nextAdvertising: NextAdvertising\n    ) => void,\n  ): Promise<void> {\n    const metadata = await classicApi.fetchData<MetadataRadio>({\n      api: 14,\n      path:  \"player/playing/\" + canalId,\n    });\n    /*{\n      \"adCount\": 1,\n      \"startDate\": \"2025-03-04T13:12:00Z\",\n      \"tag\": \"5e385e1b51c86\"\n  }; */\n    if(callbackAdvertising){\n      callbackAdvertising(metadata.nextAdvertising);\n    }\n    const arrayMetadata = metadata.previously;\n    if(null!==metadata.currently){\n      arrayMetadata.unshift(metadata.currently);\n      for (let index = 0, len = arrayMetadata.length; index < len; index++) {\n        if (\n          dayjs().valueOf() - 18000 >\n          dayjs(arrayMetadata[index].startDate).valueOf()\n        ) {\n          await useCallbackIfNewMetadata(previousTitle, arrayMetadata, index, len,callbackMetadata);\n          return;\n        }\n      }\n    }else{\n      callbackMetadata(undefined, undefined, arrayMetadata);\n    }\n  }\n  async function useCallbackIfNewMetadata(previousTitle: string, arrayMetadata: Array<MediaRadio>, index:number, len: number, callbackMetadata: (\n    metadata: MediaRadio,\n    podcast: Podcast | undefined,\n    history: Array<MediaRadio>\n  ) => void){\n    if (previousTitle !== arrayMetadata[index].title) {\n      const historyIndex = index + 1 < len ? index + 1 : index;\n      const history = arrayMetadata.slice(historyIndex, len);\n      if (arrayMetadata[index].podcastId) {\n        const data: Podcast = await classicApi.fetchData<Podcast>({\n          api: 0,\n          path: \"podcast/\" + arrayMetadata[index].podcastId,\n        });\n        callbackMetadata(arrayMetadata[index], data, history);\n      } else {\n        callbackMetadata(arrayMetadata[index], undefined, history);\n      }\n    }\n  }\n  function displayTitle(metadata: MediaRadio|undefined): string {\n    if(!metadata){\n      return t(\"Silent stream\");\n    }\n    let title = \"\";\n    if (metadata?.title) {\n      title += metadata.title;\n    }\n    if (metadata?.artist) {\n      title += \" - \" + metadata.artist;\n    }\n    return title;\n  }\n\n\n\n  onBeforeUnmount(() => {\n    clearInterval(radioInterval.value as unknown as number);\n  })\n\n\n\treturn {\n    fetchRadioMetadata,\n    displayTitle\n\t}\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAoB;CAE/B,MAAM,gBAAiE,IAAI,KAAA,CAAS;CAEpF,MAAM,EAAC,MAAK,QAAQ;CAEpB,eAAe,mBACb,SACA,eACA,kBAKA,qBAGe;EACf,MAAM,WAAW,MAAM,mBAAW,UAAyB;GACzD,KAAK;GACL,MAAO,oBAAoB;EAC7B,CAAC;EAMD,IAAG,qBACD,oBAAoB,SAAS,eAAe;EAE9C,MAAM,gBAAgB,SAAS;EAC/B,IAAG,SAAO,SAAS,WAAU;GAC3B,cAAc,QAAQ,SAAS,SAAS;GACxC,KAAK,IAAI,QAAQ,GAAG,MAAM,cAAc,QAAQ,QAAQ,KAAK,SAC3D,IACE,MAAM,EAAE,QAAQ,IAAI,OACpB,MAAM,cAAc,OAAO,SAAS,EAAE,QAAQ,GAC9C;IACA,MAAM,yBAAyB,eAAe,eAAe,OAAO,KAAI,gBAAgB;IACxF;GACF;EAEJ,OACE,iBAAiB,KAAA,GAAW,KAAA,GAAW,aAAa;CAExD;CACA,eAAe,yBAAyB,eAAuB,eAAkC,OAAc,KAAa,kBAIlH;EACR,IAAI,kBAAkB,cAAc,OAAO,OAAO;GAChD,MAAM,eAAe,QAAQ,IAAI,MAAM,QAAQ,IAAI;GACnD,MAAM,UAAU,cAAc,MAAM,cAAc,GAAG;GACrD,IAAI,cAAc,OAAO,WAAW;IAClC,MAAM,OAAgB,MAAM,mBAAW,UAAmB;KACxD,KAAK;KACL,MAAM,aAAa,cAAc,OAAO;IAC1C,CAAC;IACD,iBAAiB,cAAc,QAAQ,MAAM,OAAO;GACtD,OACE,iBAAiB,cAAc,QAAQ,KAAA,GAAW,OAAO;EAE7D;CACF;CACA,SAAS,aAAa,UAAwC;EAC5D,IAAG,CAAC,UACF,OAAO,EAAE,eAAe;EAE1B,IAAI,QAAQ;EACZ,IAAI,UAAU,OACZ,SAAS,SAAS;EAEpB,IAAI,UAAU,QACZ,SAAS,QAAQ,SAAS;EAE5B,OAAO;CACT;CAIA,sBAAsB;EACpB,cAAc,cAAc,KAA0B;CACxD,CAAC;CAGF,OAAO;EACJ;EACA;CACH;AACD"}