util.js
29 lines
| 1 | export function getProvider(src) { |
| 2 | const provider = "self-hosted"; |
| 3 | |
| 4 | if (src) { |
| 5 | if (src.includes(".mp3")) { |
| 6 | return "audio"; |
| 7 | } |
| 8 | |
| 9 | const yt_rx = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; |
| 10 | const has_match_youtube = src.match(yt_rx); |
| 11 | |
| 12 | if (has_match_youtube) { |
| 13 | return "youtube"; |
| 14 | } |
| 15 | |
| 16 | const vm_rx = /(https?:\/\/)?(www\.)?(player\.)?vimeo\.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/; |
| 17 | const has_match_vimeo = src.match(vm_rx); |
| 18 | |
| 19 | if (has_match_vimeo) { |
| 20 | return "vimeo"; |
| 21 | } |
| 22 | |
| 23 | if (src.indexOf("https://vz-") > -1 && src.indexOf("b-cdn.net") > -1) { |
| 24 | return "bunny"; |
| 25 | } |
| 26 | } |
| 27 | return provider; |
| 28 | } |
| 29 |