PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.2
Presto Player v4.3.2
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 / admin / dashboard / utils / transformers.js
presto-player / src / admin / dashboard / utils Last commit date
test 2 months ago analyticsApi.js 2 months ago classnames.js 2 months ago dateUtils.js 2 months ago formatters.js 2 months ago helpers.js 2 months ago icons.js 2 months ago index.js 2 months ago pluginUtils.js 2 months ago transformers.js 2 months ago viewportBoundary.js 2 months 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