Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/video-service/src/ |
Upload File : |
import { ServiceConstructor } from './services/base-service'; import { type BaseService } from './services/base-service'; import { Youtube } from './services/youtube'; import { Facebook } from './services/facebook'; import { Vimeo } from './services/vimeo'; import { Instagram } from './services/instagram'; import { VK } from './services/vk'; import { Rutube } from './services/rutube'; export class VideoService { static #services: ServiceConstructor[] = [ Youtube, Facebook, Vimeo, Instagram, VK, Rutube, ]; static createByUrl(url: string): BaseService { for (const ServiceClass of this.#services) { if (ServiceClass.matchByUrl(url)) { return new ServiceClass(url); } } return null; } static createByHost(host: string): BaseService { for (const ServiceClass of this.#services) { if (ServiceClass.getDomains().includes(host)) { return new ServiceClass(host); } } return null; } static getEmbeddedUrl(url: string): string | null { const videoService = this.createByUrl(url); if (videoService) { return videoService.getEmbeddedUrl(); } return null; } }