send 10 percent of traffic to other server
This commit is contained in:
parent
087282578f
commit
0fcdbc7858
1 changed files with 34 additions and 7 deletions
|
@ -164,8 +164,10 @@ export default React.memo<Props>(function VideoJs(props: Props) {
|
||||||
|
|
||||||
const playerServerRef = useRef();
|
const playerServerRef = useRef();
|
||||||
|
|
||||||
const { url: livestreamVideoUrl } = activeLivestreamForChannel || {};
|
const livestreamVideoUrl = activeLivestreamForChannel?.url;
|
||||||
const showQualitySelector = !isLivestreamClaim || (livestreamVideoUrl && livestreamVideoUrl.includes('/transcode/'));
|
|
||||||
|
// show quality selector if not a livestream, or a transcoded livestream
|
||||||
|
const showQualitySelector = !isLivestreamClaim || livestreamVideoUrl?.includes('/transcode/');
|
||||||
|
|
||||||
// initiate keyboard shortcuts
|
// initiate keyboard shortcuts
|
||||||
const { curried_function } = keyboardShorcuts({
|
const { curried_function } = keyboardShorcuts({
|
||||||
|
@ -331,6 +333,18 @@ export default React.memo<Props>(function VideoJs(props: Props) {
|
||||||
}
|
}
|
||||||
}, [showQualitySelector]);
|
}, [showQualitySelector]);
|
||||||
|
|
||||||
|
function hitsTenPercent() {
|
||||||
|
// from 0 - 999
|
||||||
|
const rand = Math.floor(Math.random() * (1000 + 1));
|
||||||
|
|
||||||
|
// 499 is 50% chance of running
|
||||||
|
if (rand < 100) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** instantiate videoJS and dispose of it when done with code **/
|
/** instantiate videoJS and dispose of it when done with code **/
|
||||||
// This lifecycle hook is only called once (on mount), or when `isAudio` or `source` changes.
|
// This lifecycle hook is only called once (on mount), or when `isAudio` or `source` changes.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -357,15 +371,28 @@ export default React.memo<Props>(function VideoJs(props: Props) {
|
||||||
const controlBar = document.querySelector('.vjs-control-bar');
|
const controlBar = document.querySelector('.vjs-control-bar');
|
||||||
if (controlBar) controlBar.style.setProperty('opacity', '1', 'important');
|
if (controlBar) controlBar.style.setProperty('opacity', '1', 'important');
|
||||||
|
|
||||||
|
// if livestream
|
||||||
if (isLivestreamClaim && userClaimId) {
|
if (isLivestreamClaim && userClaimId) {
|
||||||
// $FlowFixMe
|
// $FlowFixMe
|
||||||
vjsPlayer.addClass('livestreamPlayer');
|
vjsPlayer.addClass('livestreamPlayer');
|
||||||
|
|
||||||
|
const newLivestreamServer = 'https://cdn-backup.odysee.live';
|
||||||
|
const newLivestreamUrl = newLivestreamServer + livestreamVideoUrl.substr(23);
|
||||||
|
|
||||||
|
// run if a 10% chance happens
|
||||||
|
if (hitsTenPercent()) {
|
||||||
|
// $FlowFixMe
|
||||||
|
vjsPlayer.src({
|
||||||
|
type: 'application/x-mpegURL',
|
||||||
|
src: newLivestreamUrl,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
// $FlowFixMe
|
// $FlowFixMe
|
||||||
vjsPlayer.src({
|
vjsPlayer.src({
|
||||||
type: 'application/x-mpegURL',
|
type: 'application/x-mpegURL',
|
||||||
src: livestreamVideoUrl,
|
src: livestreamVideoUrl,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// $FlowFixMe
|
// $FlowFixMe
|
||||||
vjsPlayer.removeClass('livestreamPlayer');
|
vjsPlayer.removeClass('livestreamPlayer');
|
||||||
|
|
Loading…
Reference in a new issue