/** * Copyright (C) 2019-2021 Carl Kittelberger * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ export function getThumbnailURL( thumbnailServerURL: string, id: string, fileName: string, offset: number|string, resizeparams: { width?: number, height?: number, } = {}, ) { // Example: https://thumb-gdq-a.edge.streaminginter.net/agdq2020vods/000.%20Pre%2dpreshow.mp4/thumb-90000-w240.jpg // thumb-[].jpg const resizeparamsStr = Object.entries(resizeparams) .map(([key, value]) => { switch (key) { case 'width': return `w${value}`; case 'height': return `h${value}`; default: throw new Error(`unsupported resizeparam: ${key}`); } }) .filter((v) => !!v) .join('-'); return `${thumbnailServerURL}/${[ id, fileName, `thumb-${offset}${resizeparamsStr.length > 0 ? `-${resizeparamsStr}` : ''}.jpg`, ] .map(encodeURIComponent) .join('/')}`; } export function getHLSMasterURL( hlsServerURL: string, id: string, fileName: string, ) { return `${hlsServerURL}/${[ id, fileName, 'master.m3u8', ] .map(encodeURIComponent) .join('/')}`; } export function getDASHManifestURL( dashServerURL:string, id:string, fileName:string, ) { return `${dashServerURL}/${[ id, fileName, 'manifest.mpd', ] .map(encodeURIComponent) .join('/')}`; } export default null; export * as api from './api'; export * as localization from './localization'; export * as session from './session'; export * as status from './status';