PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.2.4
Presto Player v4.2.4
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / shared / util.js
presto-player / src / shared Last commit date
services 5 years ago Logo.js 5 years ago util.js 1 year ago
util.js
104 lines
1 export function getYoutubeId(url) {
2 const regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|shorts\/)([^#&?]*).*/;
3 const match = (url || '').match(regExp);
4 return match && match?.[2]?.length === 11 ? match[2] : null;
5 }
6
7 export function getVimeoId(url) {
8 const regExp =
9 /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/;
10 const parseUrl = regExp.exec(url || "");
11 return parseUrl?.[5] || "";
12 }
13
14 export function saveAttachment({ video_id, src, type }) {
15 return new Promise((resolve, reject) => {
16 jQuery.post(
17 prestoPlayer.ajaxurl,
18 {
19 action: "presto_save_external_attachment",
20 _wpnonce: prestoPlayer.nonce,
21 post_id: wp.data.select("core/editor").getCurrentPostId(),
22 video_id,
23 src,
24 type,
25 },
26 function ({ data }) {
27 resolve(data);
28 }
29 );
30 });
31 }
32
33 export function determineVideoUrlType(url) {
34 const youtube_id = getVimeoId(url);
35 if (youtube_id) {
36 return {
37 video_id: youtube_id,
38 type: "vimeo",
39 };
40 }
41
42 const vimeo_id = getYoutubeId(url);
43 if (vimeo_id) {
44 return {
45 video_id: vimeo_id,
46 type: "youtube",
47 };
48 }
49
50 return {
51 $video_id: 0,
52 $type: "none",
53 };
54 }
55
56 export function convertChapter(chapter) {
57 let draft = time;
58 // remove any letters
59 draft = draft.replace(/[^\d\d:\d\d.-]/g, "");
60 // make sure we have :
61 if (!draft.includes(":")) {
62 return `${draft}:00`;
63 }
64
65 // must have something before :00
66 if (draft.substr(0, draft.indexOf(":")).length === 0) {
67 draft = `0${draft}`;
68 }
69
70 // only allow 2 characters after :
71 let index = draft.indexOf(":");
72 draft = draft.substring(0, index + 3);
73 return draft;
74 }
75
76 // get file extension
77 export function getFileExtension(url) {
78 return url.split(/[#?]/)[0].split(".").pop().trim();
79 }
80
81 // is the source hls?
82 export function isHLS(url) {
83 return typeof url === "string" && url.includes(".m3u8");
84 }
85
86 export const convertHex = (hexCode, opacity = 1) => {
87 var hex = hexCode.replace("#", "");
88
89 if (hex.length === 3) {
90 hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
91 }
92
93 var r = parseInt(hex.substring(0, 2), 16),
94 g = parseInt(hex.substring(2, 4), 16),
95 b = parseInt(hex.substring(4, 6), 16);
96
97 /* Backward compatibility for whole number based opacity values. */
98 if (opacity > 1 && opacity <= 100) {
99 opacity = opacity / 100;
100 }
101
102 return "rgba(" + r + "," + g + "," + b + "," + opacity + ")";
103 };
104