stormcloud-video-player 0.7.27 → 0.7.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +154 -27
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +154 -27
- package/lib/index.js.map +1 -1
- package/lib/ui/OverlayRenderer.cjs +154 -27
- package/lib/ui/OverlayRenderer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +154 -27
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/package.json +1 -1
package/lib/index.cjs
CHANGED
|
@@ -5955,43 +5955,151 @@ function TextOverlay(param) {
|
|
|
5955
5955
|
children: text
|
|
5956
5956
|
});
|
|
5957
5957
|
}
|
|
5958
|
+
function parseRSSXml(xmlText, maxItems) {
|
|
5959
|
+
var parser = new DOMParser();
|
|
5960
|
+
var doc = parser.parseFromString(xmlText, "text/xml");
|
|
5961
|
+
if (doc.querySelector("parsererror")) throw new Error("Invalid RSS XML");
|
|
5962
|
+
return Array.from(doc.querySelectorAll("item")).map(function(item) {
|
|
5963
|
+
var _item_querySelector, _item_querySelector1, _item_querySelector2, _item_querySelector3, _item_querySelector4;
|
|
5964
|
+
return {
|
|
5965
|
+
title: (((_item_querySelector = item.querySelector("title")) === null || _item_querySelector === void 0 ? void 0 : _item_querySelector.textContent) || "").replace(/<[^>]*>/g, "").trim(),
|
|
5966
|
+
description: (((_item_querySelector1 = item.querySelector("description")) === null || _item_querySelector1 === void 0 ? void 0 : _item_querySelector1.textContent) || "").replace(/<[^>]*>/g, "").trim(),
|
|
5967
|
+
pubDate: ((_item_querySelector2 = item.querySelector("pubDate")) === null || _item_querySelector2 === void 0 ? void 0 : _item_querySelector2.textContent) || "",
|
|
5968
|
+
author: ((_item_querySelector3 = item.querySelector("author, dc\\:creator")) === null || _item_querySelector3 === void 0 ? void 0 : _item_querySelector3.textContent) || "",
|
|
5969
|
+
category: ((_item_querySelector4 = item.querySelector("category")) === null || _item_querySelector4 === void 0 ? void 0 : _item_querySelector4.textContent) || ""
|
|
5970
|
+
};
|
|
5971
|
+
}).filter(function(i) {
|
|
5972
|
+
return i.title;
|
|
5973
|
+
}).slice(0, maxItems);
|
|
5974
|
+
}
|
|
5958
5975
|
function fetchRSSItems(rssUrl, maxItems) {
|
|
5959
5976
|
return _async_to_generator(function() {
|
|
5960
|
-
var resp, data,
|
|
5977
|
+
var encoded, origin, resp, text, unused, resp1, data, unused1, resp2, text1, unused2;
|
|
5961
5978
|
return _ts_generator(this, function(_state) {
|
|
5962
5979
|
switch(_state.label){
|
|
5963
5980
|
case 0:
|
|
5981
|
+
encoded = encodeURIComponent(rssUrl);
|
|
5982
|
+
_state.label = 1;
|
|
5983
|
+
case 1:
|
|
5984
|
+
_state.trys.push([
|
|
5985
|
+
1,
|
|
5986
|
+
5,
|
|
5987
|
+
,
|
|
5988
|
+
6
|
|
5989
|
+
]);
|
|
5990
|
+
origin = typeof window !== "undefined" ? window.location.origin : "";
|
|
5964
5991
|
return [
|
|
5965
5992
|
4,
|
|
5966
|
-
fetch("
|
|
5993
|
+
fetch("".concat(origin, "/api/rss-proxy?url=").concat(encoded))
|
|
5967
5994
|
];
|
|
5968
|
-
case
|
|
5995
|
+
case 2:
|
|
5969
5996
|
resp = _state.sent();
|
|
5997
|
+
if (!resp.ok) return [
|
|
5998
|
+
3,
|
|
5999
|
+
4
|
|
6000
|
+
];
|
|
5970
6001
|
return [
|
|
5971
6002
|
4,
|
|
5972
|
-
resp.
|
|
6003
|
+
resp.text()
|
|
5973
6004
|
];
|
|
5974
|
-
case
|
|
6005
|
+
case 3:
|
|
6006
|
+
text = _state.sent();
|
|
6007
|
+
if (text.includes("<item")) return [
|
|
6008
|
+
2,
|
|
6009
|
+
parseRSSXml(text, maxItems)
|
|
6010
|
+
];
|
|
6011
|
+
_state.label = 4;
|
|
6012
|
+
case 4:
|
|
6013
|
+
return [
|
|
6014
|
+
3,
|
|
6015
|
+
6
|
|
6016
|
+
];
|
|
6017
|
+
case 5:
|
|
6018
|
+
unused = _state.sent();
|
|
6019
|
+
return [
|
|
6020
|
+
3,
|
|
6021
|
+
6
|
|
6022
|
+
];
|
|
6023
|
+
case 6:
|
|
6024
|
+
_state.trys.push([
|
|
6025
|
+
6,
|
|
6026
|
+
10,
|
|
6027
|
+
,
|
|
6028
|
+
11
|
|
6029
|
+
]);
|
|
6030
|
+
return [
|
|
6031
|
+
4,
|
|
6032
|
+
fetch("https://api.allorigins.win/get?url=".concat(encoded))
|
|
6033
|
+
];
|
|
6034
|
+
case 7:
|
|
6035
|
+
resp1 = _state.sent();
|
|
6036
|
+
if (!resp1.ok) return [
|
|
6037
|
+
3,
|
|
6038
|
+
9
|
|
6039
|
+
];
|
|
6040
|
+
return [
|
|
6041
|
+
4,
|
|
6042
|
+
resp1.json()
|
|
6043
|
+
];
|
|
6044
|
+
case 8:
|
|
5975
6045
|
data = _state.sent();
|
|
5976
|
-
if (
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
6046
|
+
if (data.contents) return [
|
|
6047
|
+
2,
|
|
6048
|
+
parseRSSXml(data.contents, maxItems)
|
|
6049
|
+
];
|
|
6050
|
+
_state.label = 9;
|
|
6051
|
+
case 9:
|
|
6052
|
+
return [
|
|
6053
|
+
3,
|
|
6054
|
+
11
|
|
6055
|
+
];
|
|
6056
|
+
case 10:
|
|
6057
|
+
unused1 = _state.sent();
|
|
6058
|
+
return [
|
|
6059
|
+
3,
|
|
6060
|
+
11
|
|
6061
|
+
];
|
|
6062
|
+
case 11:
|
|
6063
|
+
_state.trys.push([
|
|
6064
|
+
11,
|
|
6065
|
+
15,
|
|
6066
|
+
,
|
|
6067
|
+
16
|
|
6068
|
+
]);
|
|
6069
|
+
return [
|
|
6070
|
+
4,
|
|
6071
|
+
fetch("https://corsproxy.io/?url=".concat(encoded))
|
|
6072
|
+
];
|
|
6073
|
+
case 12:
|
|
6074
|
+
resp2 = _state.sent();
|
|
6075
|
+
if (!resp2.ok) return [
|
|
6076
|
+
3,
|
|
6077
|
+
14
|
|
6078
|
+
];
|
|
5980
6079
|
return [
|
|
6080
|
+
4,
|
|
6081
|
+
resp2.text()
|
|
6082
|
+
];
|
|
6083
|
+
case 13:
|
|
6084
|
+
text1 = _state.sent();
|
|
6085
|
+
if (text1) return [
|
|
5981
6086
|
2,
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
5990
|
-
|
|
5991
|
-
|
|
5992
|
-
|
|
5993
|
-
|
|
6087
|
+
parseRSSXml(text1, maxItems)
|
|
6088
|
+
];
|
|
6089
|
+
_state.label = 14;
|
|
6090
|
+
case 14:
|
|
6091
|
+
return [
|
|
6092
|
+
3,
|
|
6093
|
+
16
|
|
6094
|
+
];
|
|
6095
|
+
case 15:
|
|
6096
|
+
unused2 = _state.sent();
|
|
6097
|
+
return [
|
|
6098
|
+
3,
|
|
6099
|
+
16
|
|
5994
6100
|
];
|
|
6101
|
+
case 16:
|
|
6102
|
+
throw new Error("All RSS proxies failed");
|
|
5995
6103
|
}
|
|
5996
6104
|
});
|
|
5997
6105
|
})();
|
|
@@ -6002,18 +6110,28 @@ function ScrollerOverlay(param) {
|
|
|
6002
6110
|
var cfg = overlay.scroller_config;
|
|
6003
6111
|
var uid = (0, import_react.useId)().replace(/:/g, "");
|
|
6004
6112
|
var _ref13 = _sliced_to_array((0, import_react.useState)([]), 2), rssItems = _ref13[0], setRssItems = _ref13[1];
|
|
6005
|
-
var _ref14 = _sliced_to_array((0, import_react.useState)(
|
|
6113
|
+
var _ref14 = _sliced_to_array((0, import_react.useState)(true), 2), rssLoading = _ref14[0], setRssLoading = _ref14[1];
|
|
6114
|
+
var _ref15 = _sliced_to_array((0, import_react.useState)(false), 2), rssError = _ref15[0], setRssError = _ref15[1];
|
|
6006
6115
|
var rssUrl = (cfg === null || cfg === void 0 ? void 0 : cfg.rss_url) || "";
|
|
6007
6116
|
var maxItems = (_ref = cfg === null || cfg === void 0 ? void 0 : cfg.max_items) !== null && _ref !== void 0 ? _ref : 10;
|
|
6008
6117
|
var autoRefresh = (cfg === null || cfg === void 0 ? void 0 : cfg.auto_refresh) !== false;
|
|
6009
6118
|
var updateInterval = (_ref1 = cfg === null || cfg === void 0 ? void 0 : cfg.update_interval) !== null && _ref1 !== void 0 ? _ref1 : 5;
|
|
6010
6119
|
(0, import_react.useEffect)(function() {
|
|
6011
|
-
if (!rssUrl || (cfg === null || cfg === void 0 ? void 0 : cfg.use_custom_text) && (cfg === null || cfg === void 0 ? void 0 : cfg.custom_text))
|
|
6120
|
+
if (!rssUrl || (cfg === null || cfg === void 0 ? void 0 : cfg.use_custom_text) && (cfg === null || cfg === void 0 ? void 0 : cfg.custom_text)) {
|
|
6121
|
+
setRssLoading(false);
|
|
6122
|
+
return;
|
|
6123
|
+
}
|
|
6012
6124
|
var cancelled = false;
|
|
6013
6125
|
setRssLoading(true);
|
|
6126
|
+
setRssError(false);
|
|
6014
6127
|
fetchRSSItems(rssUrl, maxItems).then(function(items) {
|
|
6015
|
-
if (!cancelled)
|
|
6016
|
-
|
|
6128
|
+
if (!cancelled) {
|
|
6129
|
+
setRssItems(items);
|
|
6130
|
+
setRssError(false);
|
|
6131
|
+
}
|
|
6132
|
+
}).catch(function() {
|
|
6133
|
+
if (!cancelled) setRssError(true);
|
|
6134
|
+
}).finally(function() {
|
|
6017
6135
|
if (!cancelled) setRssLoading(false);
|
|
6018
6136
|
});
|
|
6019
6137
|
return function() {
|
|
@@ -6028,7 +6146,10 @@ function ScrollerOverlay(param) {
|
|
|
6028
6146
|
(0, import_react.useEffect)(function() {
|
|
6029
6147
|
if (!rssUrl || !autoRefresh || (cfg === null || cfg === void 0 ? void 0 : cfg.use_custom_text) && (cfg === null || cfg === void 0 ? void 0 : cfg.custom_text)) return;
|
|
6030
6148
|
var interval = setInterval(function() {
|
|
6031
|
-
fetchRSSItems(rssUrl, maxItems).then(
|
|
6149
|
+
fetchRSSItems(rssUrl, maxItems).then(function(items) {
|
|
6150
|
+
setRssItems(items);
|
|
6151
|
+
setRssError(false);
|
|
6152
|
+
}).catch(function() {});
|
|
6032
6153
|
}, updateInterval * 60 * 1e3);
|
|
6033
6154
|
return function() {
|
|
6034
6155
|
return clearInterval(interval);
|
|
@@ -6065,13 +6186,19 @@ function ScrollerOverlay(param) {
|
|
|
6065
6186
|
segments = [
|
|
6066
6187
|
"Loading feed\u2026"
|
|
6067
6188
|
];
|
|
6189
|
+
} else if (rssError) {
|
|
6190
|
+
segments = overlay.content ? [
|
|
6191
|
+
overlay.content
|
|
6192
|
+
] : [
|
|
6193
|
+
"RSS feed unavailable"
|
|
6194
|
+
];
|
|
6068
6195
|
} else if (overlay.content) {
|
|
6069
6196
|
segments = [
|
|
6070
6197
|
overlay.content
|
|
6071
6198
|
];
|
|
6072
6199
|
} else {
|
|
6073
6200
|
segments = rssUrl ? [
|
|
6074
|
-
"
|
|
6201
|
+
"Loading feed\u2026"
|
|
6075
6202
|
] : [
|
|
6076
6203
|
"RSS Ticker"
|
|
6077
6204
|
];
|