File size: 1,122 Bytes
9114bf3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/** Direct Cloudinary delivery URLs for quiz audio/images. */

export function mediaFileStem(fileId) {
  let id = String(fileId || '').trim()
  if (!id) return ''
  if (id.startsWith('http://') || id.startsWith('https://')) return id
  id = id
    .replace(/^\/api\/images\//, '')
    .replace(/^\/images\//, '')
    .replace(/^\/api\/audio\//, '')
    .replace(/^\/audio\//, '')
  return id.split('.')[0]
}

export function cloudinaryCloudName() {
  return (import.meta.env.VITE_CLOUDINARY_CLOUD_NAME || '').trim()
}

export function cloudinaryAudioUrl(fileId) {
  const stem = mediaFileStem(fileId)
  const cloud = cloudinaryCloudName()
  if (!cloud || !stem || stem.startsWith('http')) return ''
  return `https://res.cloudinary.com/${cloud}/video/upload/audio/${stem}.mp3`
}

export function cloudinaryImageUrl(fileId) {
  const stem = mediaFileStem(fileId)
  const cloud = cloudinaryCloudName()
  if (!cloud || !stem || stem.startsWith('http')) return ''
  return `https://res.cloudinary.com/${cloud}/image/upload/images/${stem}.png`
}

export function usesCloudinaryCdn() {
  return Boolean(cloudinaryCloudName())
}