Remove support for clappr player

This commit is contained in:
Ingo Oppermann 2022-11-07 10:45:55 +01:00
parent 167efb399e
commit 1924499cdb
No known key found for this signature in database
GPG Key ID: 2AB32426E9DD229E
12 changed files with 2 additions and 458 deletions

View File

@ -8,10 +8,6 @@
"@auth0/auth0-spa-js": "^2.0.0",
"@babel/plugin-syntax-flow": "^7.14.5",
"@babel/plugin-transform-react-jsx": "^7.14.9",
"@clappr/core": "^0.4.22",
"@clappr/hlsjs-playback": "^0.6.0",
"@clappr/plugins": "^0.4.16",
"@clappr/stats-plugin": "^0.2.0",
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@fontsource/dosis": "^4.5.10",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
dist/clappr.min.js.map
dist/clappr.min.js
dist/clappr-stats.min.js
dist/clappr-nerd-stats.min.js

View File

@ -1,112 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{description}}">
<meta name="author" content="datarhei restreamer">
<title>{{name}}</title>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<link rel="alternate" type="application/json+oembed" href="channels/{{channelid}}/oembed.json" title="{{name}}">
<link rel="alternate" type="text/xml+oembed" href="channels/{{channelid}}/oembed.xml" title="{{name}}">
<script src="channels/{{channelid}}/config.js"></script>
<script src="player/clappr/dist/clappr.min.js"></script>
<script src="player/clappr/dist/clappr-stats.min.js"></script>
<script src="player/clappr/dist/clappr-nerd-stats.min.js"></script>
<style>
.player-poster[data-poster] .poster-background[data-poster] {
height: initial !important;
}
</style>
</head>
<body>
<div id="player" style="position:absolute;top:0;right:0;bottom:0;left:0"></div>
<script>
function getQueryParam(key, defaultValue) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for(var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if(pair[0] == key) {
return pair[1];
}
}
return defaultValue;
}
function convertBoolParam(key, defaultValue) {
var val = getQueryParam(key, defaultValue);
return val === true || val === "true" || val === "1" || val === "yes" || val === "on";
}
function convertColorParam(parameter, defaultColor) {
var re = new RegExp("^#([0-9a-f]{3}|[0-9a-f]{6})$");
var c = getQueryParam(parameter, defaultColor);
// decode color as # has to be represented by %23
var c = decodeURIComponent(c);
// if color was given without leading #, prepend it
if (!String(c).startsWith("#")) c = "#" + c;
if (re.test(c)) {
return c;
} else {
return defaultColor;
}
}
var autoplay = convertBoolParam("autoplay", playerConfig.autoplay);
var mute = convertBoolParam("mute", playerConfig.mute);
var statistics = convertBoolParam("stats", playerConfig.statistics);
var color = convertColorParam("color", playerConfig.color.buttons);
var plugins = [];
if(statistics == true) {
plugins.push(ClapprNerdStats);
plugins.push(ClapprStats);
}
var config = {
source: playerConfig.source,
parentId: '#player',
baseUrl: 'clappr/',
plugins: plugins,
poster: playerConfig.poster + '?t=' + String(new Date().getTime()),
mediacontrol: {
seekbar: playerConfig.color.seekbar,
buttons: color
},
height: '100%',
width: '100%',
disableCanAutoPlay: true,
autoPlay: autoplay,
mute: mute,
clapprStats: {
runEach: 1000,
onReport: (metrics) => {},
},
clapprNerdStats: {
shortcut: ['command+shift+s', 'ctrl+shift+s'],
iconPosition: 'top-right'
}
};
if(playerConfig.logo.image.length != 0) {
config.watermark = playerConfig.logo.image;
config.position = playerConfig.logo.position;
if(playerConfig.logo.link.length != 0) {
config.watermarkLink = playerConfig.logo.link;
}
}
var player = new window.Clappr.Player(config);
var posterPlugin = player.core.mediaControl.container.getPlugin('poster');
player.on(window.Clappr.Events.PLAYER_STOP, function updatePoster () {
posterPlugin.options.poster = playerConfig.poster + '?t=' + String(new Date().getTime());
posterPlugin.render();
});
</script>
</body>
</html>

View File

@ -1,67 +0,0 @@
var plugins = [];
if (statistics == true) {
plugins.push(ClapprNerdStats);
plugins.push(ClapprStats);
}
var config = {
source: playerConfig.source,
parentId: '#player',
baseUrl: 'clappr/',
persistConfig: false,
plugins: plugins,
poster: playerConfig.poster + '?t=' + String(new Date().getTime()),
mediacontrol: {
seekbar: playerConfig.color.seekbar,
buttons: color,
},
height: '100%',
width: '100%',
disableCanAutoPlay: true,
autoPlay: autoplay,
mimeType: 'application/vnd.apple.mpegurl',
actualLiveTime: false,
exitFullscreenOnEnd: false,
mute: mute,
playback: {
controls: false,
playInline: true,
recycleVideo: Clappr.Browser.isMobile,
hlsjsConfig: {
enableWorker: false,
capLevelToPlayerSize: true,
capLevelOnFPSDrop: true,
maxBufferHole: 1,
highBufferWatchdogPeriod: 1,
},
},
hlsPlayback: {
preload: false,
},
visibilityEnableIcon: false,
clapprStats: {
runEach: 1000,
onReport: (metrics) => {},
},
clapprNerdStats: {
shortcut: ['command+shift+s', 'ctrl+shift+s'],
iconPosition: 'top-right',
},
};
if (playerConfig.logo.image.length != 0) {
config.watermark = playerConfig.logo.image;
config.position = playerConfig.logo.position;
if (playerConfig.logo.link.length != 0) {
config.watermarkLink = playerConfig.logo.link;
}
}
var player = new window.Clappr.Player(config);
var posterPlugin = player.core.mediaControl.container.getPlugin('poster');
player.on(window.Clappr.Events.PLAYER_STOP, function updatePoster() {
posterPlugin.options.poster = playerConfig.poster + '?t=' + String(new Date().getTime());
posterPlugin.render();
});

View File

@ -1,101 +0,0 @@
import React from 'react';
import { Plugins } from '@clappr/plugins';
import Clappr from '@clappr/core';
import Grid from '@mui/material/Grid';
import HLS from '@clappr/hlsjs-playback';
//import ClapprStats from '@clappr/stats-plugin';
/*
import Clappr from 'clappr';
import ClapprStats from 'clappr-stats';
*/
//import ClapprNerdStats from 'clappr-nerd-stats';
Clappr.Loader.registerPlayback(HLS);
for (let plugin of Object.values(Plugins)) {
Clappr.Loader.registerPlugin(plugin);
}
class Player extends React.Component {
constructor(props) {
super(props);
this.player = new Clappr.Player({});
this.playerRef = React.createRef();
}
componentDidMount() {
this.player.attachTo(this.playerRef.current);
this.setConfig(this.props.config);
this.setSource(this.props.source);
}
componentWillUnmount() {
this.player.destroy();
}
shouldComponentUpdate(nextProps, _) {
if (nextProps.source !== this.props.source) {
this.setSource(nextProps.source);
}
return false;
}
setSource(source) {
this.player.load(source);
}
setConfig(config) {
delete config.source;
delete config.sources;
delete config.parent;
delete config.parentid;
config = {
plugins: [],
...config,
};
const plugins = config.plugins;
config.plugins = [];
for (let p of plugins) {
switch (p) {
/*
case 'ClapprStats':
config.plugins.push(ClapprStats);
break;
*/
/*
case 'ClapprNerdStats':
config.plugins.push(ClapprNerdStats);
break;
*/
default:
break;
}
}
this.player.configure(config);
}
render() {
return (
<Grid
container
direction="column"
justifyContent="center"
alignItems="center"
spacing={1}
style={{ position: 'absolute', top: 0, left: 0, bottom: 0, right: 0 }}
ref={this.playerRef}
></Grid>
);
}
}
export default Player;

View File

@ -1,10 +1,9 @@
import React from 'react';
import Clappr from './clappr';
import VideoJS from './videojs';
export default function Player(props) {
const type = props.type ? props.type : 'clappr';
const type = props.type ? props.type : 'videojs-internal';
if (type === 'videojs-internal' || type === 'videojs-public') {
const config = {
@ -16,7 +15,7 @@ export default function Player(props) {
responsive: true,
fluid: true,
plugins: {
reloadSourceOnError: {}
reloadSourceOnError: {},
},
sources: [{ src: props.source, type: 'application/x-mpegURL' }],
};
@ -79,57 +78,6 @@ export default function Player(props) {
}}
/>
);
} else {
const config = {
poster: props.poster,
autoPlay: props.autoplay,
mute: props.mute,
disableCanAutoPlay: true,
playback: {
playInline: true,
hlsjsConfig: {
enableWorker: false,
},
},
chromeless: !props.controls,
height: '100%',
width: '100%',
mediacontrol: {
seekbar: props.colors.seekbar,
buttons: props.colors.buttons,
},
};
if (props.logo.image.length !== 0) {
config.watermark = props.logo.image + '?' + Math.random();
config.position = props.logo.position;
if (props.logo.link.length !== 0) {
config.watermarkLink = props.logo.link;
}
}
if (props.ga.account.length !== 0) {
config.gaAccount = props.ga.account;
if (props.ga.name.length !== 0) {
config.gaTrackerName = props.ga.name;
}
}
if (props.statistics === true) {
config.plugins.push('ClapprStats', 'clapprNerdStats');
config.clapprStats = {
runEach: 1000,
onReport: (metrics) => {},
};
config.clapprNerdStats = {
shortcut: ['command+shift+s', 'ctrl+shift+s'],
iconPosition: 'top-right',
};
}
return <Clappr source={props.source} config={config} />;
}
}

View File

@ -356,9 +356,7 @@ export default function Edit(props) {
<Grid item xs={12}>
<TabsHorizontal value={$tab} onChange={handleChangeTab}>
<Tab className="tab" label={<Trans>Embed</Trans>} value="embed" />
{$player === 'clappr' && <Tab className="tab" label={<Trans>Color</Trans>} value="colors" />}
<Tab className="tab" label={<Trans>Logo</Trans>} value="logo" />
{$player === 'clappr' && <Tab className="tab" label={<Trans>Statistics</Trans>} value="statistic" />}
<Tab className="tab" label={<Trans>Playback</Trans>} value="playback" />
</TabsHorizontal>
<TabPanel value={$tab} index="embed">

View File

@ -1086,28 +1086,6 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@clappr/core@^0.4.22":
version "0.4.22"
resolved "https://registry.yarnpkg.com/@clappr/core/-/core-0.4.22.tgz#3918b07b956db2d2055f23c0910ac87c717f59c4"
integrity sha512-Qer7W4rpiWFUjzfKop1WSpuHQd0/Zg6VLez5VU3fwujEUoULDO/KO/xjRkDg7zcpWbpELonG7DQ2sfoMIC1oNA==
"@clappr/hlsjs-playback@^0.6.0":
version "0.6.0"
resolved "https://registry.yarnpkg.com/@clappr/hlsjs-playback/-/hlsjs-playback-0.6.0.tgz#e4b19d66177f161b546171bd6ef3b70df6f2a13d"
integrity sha512-aw56rTB1V5YiCryximSwSEKgvtISmrsMhRNUnsMshUoSGZi3mAxT1Wiab+ShHInPRtbu4HWgZzDJpIy+a/+i8w==
"@clappr/plugins@^0.4.16":
version "0.4.16"
resolved "https://registry.yarnpkg.com/@clappr/plugins/-/plugins-0.4.16.tgz#4a682c89b8249c35e92ccbf37707847d4e4189d7"
integrity sha512-fiTGrOEmFzbhtJLHIWPfZ/Pt2uG3tzsXm1RVGQUi28aT1LnX6C7WpWROPev/vaULNV8ZoWcit3uBnw38amzZPQ==
"@clappr/stats-plugin@^0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@clappr/stats-plugin/-/stats-plugin-0.2.0.tgz#ef50df3c072913081081489031b193a9aded0806"
integrity sha512-WjBeU06v3o8ZwJi2KPHVNq298U6IDJBj6j5jLppQmy+vsHRTbVa8juW5VjPAMqYiCZCyDGsG7iC8jcoetw3RNg==
dependencies:
lodash.get "^4.4.2"
"@csstools/normalize.css@*":
version "12.0.0"
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4"