PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
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 / admin / dashboard / utils / transformers.js
presto-player / src / admin / dashboard / utils Last commit date
test 1 month ago analyticsApi.js 1 month ago classnames.js 1 month ago dateUtils.js 1 month ago formatters.js 1 month ago helpers.js 1 month ago icons.js 1 month ago index.js 1 month ago pluginUtils.js 1 month ago transformers.js 1 month ago viewportBoundary.js 1 month ago
transformers.js
42 lines
1 import { decodeHTMLEntities } from "./formatters";
2
3 const { __ } = wp.i18n;
4
5 /**
6 * Transforms raw API video data into the flat shape expected by TopMedia component.
7 * API returns: { video: { id, title, ... }, stats: [ { data: "X views" }, { data: "Xm Xs" } ] }
8 * Component expects: { id, title, totalViews, avgViewTime }
9 */
10 export const transformMediaItem = (item) => {
11 const viewsData = item?.stats?.[0]?.data || "";
12 const match = viewsData.match(/[\d,]+/);
13 return {
14 id: item?.video?.id,
15 postId: item?.video?.post_id || null,
16 title:
17 decodeHTMLEntities(item?.video?.title) ||
18 __("Untitled", "presto-player"),
19 totalViews: match ? match[0].replace(/,/g, "") : "0",
20 avgViewTime: item?.stats?.[1]?.data || "0s",
21 poster_image: item?.poster_image || null,
22 };
23 };
24
25 /**
26 * Transforms raw API user data into the flat shape expected by TopUsers component.
27 * API returns: { user: { id, name, ... }, stats: [ { data: "X views" }, { data: "Xm Xs" } ] }
28 * Component expects: { id, name, totalViews, avgViewTime }
29 */
30 export const transformUserItem = (item) => {
31 const viewsData = item?.stats?.[0]?.data || "";
32 const match = viewsData.match(/[\d,]+/);
33 return {
34 id: item?.user?.id,
35 name:
36 decodeHTMLEntities(item?.user?.name) ||
37 __("Unknown User", "presto-player"),
38 totalViews: match ? match[0].replace(/,/g, "") : "0",
39 avgViewTime: item?.stats?.[1]?.data || "0s",
40 };
41 };
42