PluginProbe ʕ •ᴥ•ʔ
Presto Player / 1.8.2
Presto Player v1.8.2
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 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 4 years ago
util.js
84 lines
1 export function getYoutubeId(url) {
2 const regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/;
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 = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/;
9 const parseUrl = regExp.exec(url || "");
10 return parseUrl?.[5] || "";
11 }
12
13 export function saveAttachment({ video_id, src, type }) {
14 return new Promise((resolve, reject) => {
15 jQuery.post(
16 prestoPlayer.ajaxurl,
17 {
18 action: "presto_save_external_attachment",
19 _wpnonce: prestoPlayer.nonce,
20 post_id: wp.data.select("core/editor").getCurrentPostId(),
21 video_id,
22 src,
23 type,
24 },
25 function ({ data }) {
26 resolve(data);
27 }
28 );
29 });
30 }
31
32 export function determineVideoUrlType(url) {
33 const youtube_id = getVimeoId(url);
34 if (youtube_id) {
35 return {
36 video_id: youtube_id,
37 type: "vimeo",
38 };
39 }
40
41 const vimeo_id = getYoutubeId(url);
42 if (vimeo_id) {
43 return {
44 video_id: vimeo_id,
45 type: "youtube",
46 };
47 }
48
49 return {
50 $video_id: 0,
51 $type: "none",
52 };
53 }
54
55 export function convertChapter(chapter) {
56 let draft = time;
57 // remove any letters
58 draft = draft.replace(/[^\d\d:\d\d.-]/g, "");
59 // make sure we have :
60 if (!draft.includes(":")) {
61 return `${draft}:00`;
62 }
63
64 // must have something before :00
65 if (draft.substr(0, draft.indexOf(":")).length === 0) {
66 draft = `0${draft}`;
67 }
68
69 // only allow 2 characters after :
70 let index = draft.indexOf(":");
71 draft = draft.substring(0, index + 3);
72 return draft;
73 }
74
75 // get file extension
76 export function getFileExtension(url) {
77 return url.split(/[#?]/)[0].split(".").pop().trim();
78 }
79
80 // is the source hls?
81 export function isHLS(url) {
82 return typeof url === "string" && url.includes(".m3u8");
83 }
84