simple chat with socket.io

Este commit está contenido en:
ale
2021-01-17 16:39:58 +01:00
padre 9fcdf54113
commit dad61167f2
Se han modificado 5 ficheros con 430 adiciones y 30 borrados

Ver fichero

@@ -1,6 +1,7 @@
const http = require('http'),
express = require('express'),
app = express(),
io = require('socket.io'),
geoip = require('geoip-lite'),
morgan = require('morgan'),
compression = require('compression'),
@@ -12,7 +13,9 @@ const http = require('http'),
}),
server = http.createServer(app).listen(8080, () => {
console.log(`Listening on ${server.address().address}:${server.address().port}`)
})
}),
socketio = io(server),
chatusers = []
app.disable('x-powered-by')
.use(compression({ level: 9 }))
@@ -23,4 +26,34 @@ app.disable('x-powered-by')
res.json(geoip.lookup(req.body.ip))
}
})
.use(express.static(__dirname + '/public'))
.use(express.static(__dirname + '/public'))
socketio.on('connection', socket => {
socket.on('emit msg', msg => {
if (msg.user && msg.chat)
socket.broadcast.emit('msg', { user: msg.user, chat: msg.chat })
})
.on('register', data => {
if (data.user)
if (chatusers.indexOf(data.user) === -1) {
chatusers.push(data.user)
socket.user = data.user
socket.emit('users', { users: chatusers })
socket.broadcast.emit('adduser', { user: data.user })
socketio.emit('join', { user: data.user })
} else {
socket.emit('rejoin', { user: data.user })
}
})
.on('disconnecting', () => {
if (socket.user && chatusers.indexOf(socket.user) !== -1) {
chatusers.splice(chatusers.indexOf(socket.user), 1)
socketio.emit('quit', { msg: `QUITS ${socket.user}` })
}
socket.emit('users', { users: [] })
socket.broadcast.emit('users', { users: chatusers })
socket.emit('disconnectuser')
socket.removeAllListeners()
socket.disconnect()
})
})

Ver fichero

@@ -4,7 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"install": "browserify -r p2p-graph | terser -m -c > public/js/p2p-graph.js && cp node_modules/clappr/dist/clappr.min.js node_modules/hls.js/dist/hls.min.js node_modules/level-selector/dist/level-selector.min.js node_modules/p2p-media-loader-hlsjs/build/p2p-media-loader-hlsjs.min.js node_modules/p2p-media-loader-core/build/p2p-media-loader-core.min.js public/js/ && cp node_modules/ipfs/dist/index.min.js public/js/ipfs.min.js && cp node_modules/hlsjs-ipfs-loader/dist/index.min.js public/js/hlsjs-ipfs-loader.min.js"
"install": "browserify -r p2p-graph | terser -m -c > public/js/p2p-graph.js && cp node_modules/clappr/dist/clappr.min.js node_modules/hls.js/dist/hls.min.js node_modules/level-selector/dist/level-selector.min.js node_modules/p2p-media-loader-hlsjs/build/p2p-media-loader-hlsjs.min.js node_modules/p2p-media-loader-core/build/p2p-media-loader-core.min.js node_modules/socket.io-client/dist/socket.io.min.js* public/js/ && cp node_modules/ipfs/dist/index.min.js public/js/ipfs.min.js && cp node_modules/hlsjs-ipfs-loader/dist/index.min.js public/js/hlsjs-ipfs-loader.min.js"
},
"author": "ale",
"license": "MIT",
@@ -23,6 +23,8 @@
"p2p-media-loader-core": "*",
"p2p-media-loader-hlsjs": "*",
"rotating-file-stream": "*",
"socket.io": "*",
"socket.io-client": "*",
"terser": "*"
}
}

Ver fichero

@@ -192,4 +192,32 @@ body {
#main-view .hide {
display: none;
}
#chat {
text-align: center;
padding: 0.2rem;
border: solid 1px#eee;
}
#userschat {
padding-right: 0.2rem;
float: right;
}
#chats, #users {
list-style: none;
text-align: left;
padding-left: 0.5rem;
}
#chats {
width: 75%;
height: 200px;
overflow: scroll;
}
a, a:hover, a:visited {
text-decoration: none;
color: black;
}

Ver fichero

@@ -5,7 +5,8 @@
<meta charset="UTF-8">
<title>P2P</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.6.3/rickshaw.min.css">
<link type="text/css" rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.6.3/rickshaw.min.css">
<link type="text/css" rel="stylesheet" href="css/main.css">
<script src="js/p2p-media-loader-core.min.js"></script>
<script src="js/p2p-media-loader-hlsjs.min.js"></script>
@@ -14,13 +15,14 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.6.3/rickshaw.min.js"></script>
<script src="js/p2p-graph.js"></script>
<script src="js/socket.io.min.js"></script>
<script src="js/main.js"></script>
</head>
<body>
<div class="container">
<header class="main-header">
<h2 class="title">P2P - HatThieves</h2>
<h2 class="title">P2P</h2>
</header>
<div id="main-view">
@@ -35,12 +37,6 @@
Source Extensions</a>.
<hr>
</div>
<div id="error-shakaplayer" class="hide">
Your browser doesn't support Shaka Player engine. P2P disabled.<br>
Read more at <a href="https://en.wikipedia.org/wiki/Media_Source_Extensions" target="_blank">Media
Source Extensions</a>.
<hr>
</div>
<div class="wrapper">
<div class="column-1">
<div id="video_container"></div>
@@ -53,10 +49,65 @@
</div>
<div class="column-2">
<div id="graph"></div>
<div id="chat">
<h4>Chat - <span id="me">Me</span></h4>
<div id="userschat">
<h4>Users</h4>
<ul id="users"></ul>
</div>
<input id="chatbox" type="text" placeholder="Tell something..." name="chatbox" />
<button class="button"
onclick="window.sendChat(document.getElementById('chatbox').value)">Send</button>
<ul id="chats"></ul>
</div>
</div>
</div>
</div>
<div>
<ul>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/b1b18a0b-3298-4415-95ad-be888444745d/1080.m3u8"
target="_blank">Taller LineageOS &#8211; 0x00 &#8211; HatThieves by Punk</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/0135b789-aa34-4137-9e47-1a1ae4d41f16/1080.m3u8"
target="_blank">Taller IA &#8211; 0x01 &#8211; HatThieves by Gore</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/64fd4044-4fec-4829-bc4e-841a0a2c0c76/480.m3u8"
target="_blank">Taller Yunohost &#8211; 0x02 &#8211; HatThieves by Xaloc</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/46d82d63-576e-4ce2-b77a-9b0a6d873f05/480.m3u8"
target="_blank">Debate Fediverso &#8211; 0x03 &#8211; HatThieves by barcelona.social</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/6dae99f0-84c7-463f-b24c-44893a0ab388/1080.m3u8"
target="_blank">Taller OpenData &#8211; 0x04 &#8211; HatThieves by @jagedn</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/9651e144-67a9-482a-94db-0fe3850d4f91/720.m3u8"
target="_blank">Taller Hardware Libre &#8211; 0x05 &#8211; HatThieves by @terceranexus6</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/1d44376c-7551-4355-ae51-70a7784d5eef/720.m3u8"
target="_blank">Taller de Docker &#8211; 0x06 &#8211; HatThieves by @ale</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/6b548068-f50b-4346-85f9-861e59bfe6a1/720.m3u8"
target="_blank">Taller de Altair &#8211; 0x07 &#8211; HatThieves by @jebug29</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/ed2f2be6-4abd-4692-9b50-ba263179e80c/720.m3u8"
target="_blank">Taller de Git &#8211; 0x08 &#8211; HatThieves by @jordila</a></li>
<li><a rel="noreferrer noopener"
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/b39ae337-4565-4173-ad81-0e719d4e1991/480.m3u8"
target="_blank">DomingoNegro 0x09 Ubuntu Peronista by @peron</a></li>
<li><a href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/148d8847-6bc1-4d2b-9265-03c430771958/720.m3u8"
target="_blank" rel="noreferrer noopener">DomingoNegro 0x0A Godot Engine by
@puppetmaster</a></li>
</ul>
<p>RTVE: <a href="https://p2p.manalejandro.com/?url=https://rtvelivestream-lvlt.rtve.es/la1_dvr.m3u8"
target="_blank" rel="noreferrer noopener">LA1</a>
<a href="https://p2p.manalejandro.com/?url=https://hlsliveamdgl1-lh.akamaihd.net/i/hlsdvrlive_1@60414/master.m3u8"
target="_blank" rel="noreferrer noopener">LA2</a>
<a href="https://p2p.manalejandro.com/?url=https://rtvelivestream-lvlt.rtve.es/24h.m3u8" target="_blank"
rel="noreferrer noopener">24H</a>
</p>
</div>
</div>
</body>
</html>
</html>

Ver fichero

@@ -45,7 +45,7 @@ function loadScript(src) {
class App {
async init() {
await waitForGlobalObject("p2pml", "core", "Ipfs", "HlsjsIpfsLoader", "Hls");
await waitForGlobalObject("p2pml", "core")
this.isP2PSupported = p2pml.core.HybridLoader.isSupported();
if (!this.isP2PSupported) {
@@ -54,19 +54,78 @@ class App {
var params = (new URL(document.location)).searchParams;
this.videoUrl = params.get('url') ? params.get('url') : 'https://hls.hatthieves.es/hls/streaming.m3u8';
this.videoUrl = params.get('url') ? params.get('url') : 'https://rtvelivestream-lvlt.rtve.es/la1_dvr.m3u8';
this.videoContainer = document.getElementById("video_container");
this.loadSpeedTimespan = 10; // seconds
const P2PGraphClass = await waitForModule("p2p-graph");
this.graph = new P2PGraphClass("#graph");
this.graph.add({ id: "me", name: "", me: true });
this.graph.add({ id: "me", name: "You", me: true });
await waitForGlobalObject("Rickshaw");
this.initChart();
while (!window.name || window.name === 'null') {
window.name = window.prompt('Who are you?') || '';
}
if (window.name) {
var socket = io(),
createLi = function (tag, content) {
var li = document.createElement('li')
li.innerText = content
document.getElementById(tag).appendChild(li)
};
socket.on('rejoin', function (data) {
delete window.name
while (!window.name || window.name === 'null') {
window.name = window.prompt('Who are you?') || ''
}
socket.emit('register', { user: window.name })
})
socket.on('join', function (data) {
createLi('chats', 'JOINS ' + data.user)
})
socket.on('msg', function (data) {
createLi('chats', data.user + ': ' + data.chat)
})
socket.on('adduser', function (data) {
createLi('users', data.user)
})
socket.on('users', function (data) {
data.users.map(user => createLi('users', user))
})
socket.on('quit', function (data) {
createLi('chats', data.msg)
})
socket.on('disconnectuser', function (event) {
socket.removeAllListeners()
socket.disconnect()
})
socket.on('error', function (err) {
window.alert(err)
})
window.sendChat = function (chat) {
if (chat) {
socket.emit('emit msg', { user: window.name, chat: chat })
createLi('chats', window.name + ': ' + chat)
document.getElementById('chatbox').value = ''
document.getElementById('chats').scrollTo(0,document.getElementById('chats').scrollHeight)
}
}
document.getElementById('chatbox').addEventListener('keydown', function (event) {
if (event.keyCode === 13 || event.which === 13) {
window.sendChat(document.getElementById('chatbox').value)
}
})
socket.emit('register', { user: window.name })
document.getElementById('me').innerText = window.name
} else {
this.engine.destroy();
window.alert('You have been disconnect');
}
this.restartApp();
}
@@ -82,13 +141,238 @@ class App {
const config = {
loader: {
trackerAnnounce: 'wss://p2p.hatthieves.es/ws'
trackerAnnounce: 'wss://p2p.manalejandro.com/ws'
},
rtcConfig: {
iceServers: [
{ urls: "stuns:hatthieves.es:3479" },
{ urls: "stun:hatthieves.es:3478" }
]
iceServers: [{
urls: [
"stun:stun.rixtelecom.se:3478",
"stun:stun.wwdl.net:3478",
"stun:stun.bmwgs.cz:3478",
"stun:stun.annatel.net:3478",
"stun:stun.bahnhof.net:3478",
"stun:stun.sippeer.dk:3478",
"stun:stun.jumblo.com:3478",
"stun:stun.barracuda.com:3478",
"stun:stun.powervoip.com:3478",
"stun:stun.12connect.com:3478",
"stun:stun.srce.hr:3478",
"stun:stun.noblogs.org:3478",
"stun:stun.voipzoom.com:3478",
"stun:stun.sipdiscount.com:3478",
"stun:stun.sovtest.ru:3478",
"stun:stun.nottingham.ac.uk:3478",
"stun:stun.rb-net.com:3478",
"stun:stun.voipgain.com:3478",
"stun:stun.sipnet.net:3478",
"stun:stun.qq.com:3478",
"stun:stun.voicetrading.com:3478",
"stun:stun.powerpbx.org:3478",
"stun:stun.services.mozilla.com:3478",
"stun:stun.rackco.com:3478",
"stun:stun.budgetsip.com:3478",
"stun:stun.comfi.com:3478",
"stun:stun.speedy.com.ar:3478",
"stun:stun.etoilediese.fr:3478",
"stun:stun.3clogic.com:3478",
"stun:stun.antisip.com:3478",
"stun:stun.hellonanu.com:3478",
"stun:stun.tng.de:3478",
"stun:stun.ssl7.net:3478",
"stun:stun.intervoip.com:3478",
"stun:stun.voipfibre.com:3478",
"stun:stun.yesss.at:3478",
"stun:stun.rynga.com:3478",
"stun:stun.gradwell.com:3478",
"stun:stun.rockenstein.de:3478",
"stun:stun.personal-voip.de:3478",
"stun:stun.2talk.com:3478",
"stun:stun.spokn.com:3478",
"stun:stun.dingaling.ca:3478",
"stun:stun.dus.net:3478",
"stun:stun.avigora.fr:3478",
"stun:stun.vyke.com:3478",
"stun:stun.stunprotocol.org:3478",
"stun:stun.bluesip.net:3478",
"stun:stun.xs4all.nl:3478",
"stun:stun.smartvoip.com:3478",
"stun:stun.sipnet.ru:3478",
"stun:stun.ideasip.com:3478",
"stun:stun.myvoiptraffic.com:3478",
"stun:stun.kanet.ru:3478",
"stun:stun.ooonet.ru:3478",
"stun:stun.softjoys.com:3478",
"stun:stun.modulus.gr:3478",
"stun:stun.vopium.com:3478",
"stun:stun.solcon.nl:3478",
"stun:stun.vodafone.ro:3478",
"stun:stun.solnet.ch:3478",
"stun:stun3.l.google.com:19302",
"stun:stun.aeta-audio.com:3478",
"stun:stun.siptraffic.com:3478",
"stun:stun.voip.eutelia.it:3478",
"stun:stun.l.google.com:19302",
"stun:stun.ekiga.net:3478",
"stun:stun.mit.de:3478",
"stun:stun4.l.google.com:19302",
"stun:stun.snafu.de:3478",
"stun:stun.demos.ru:3478",
"stun:stun.twt.it:3478",
"stun:stun.1und1.de:3478",
"stun:stun.1und1.de:3478",
"stun:stun.ozekiphone.com:3478",
"stun:stun.sonetel.com:3478",
"stun:stun.nas.net:3478",
"stun:stun.cheapvoip.com:3478",
"stun:stun.magnet.ie:3478",
"stun:stun.viva.gr:3478",
"stun:stun.veoh.com:3478",
"stun:stun.awa-shima.com:3478",
"stun:stun.halonet.pl:3478",
"stun:stun.xtratelecom.es:3478",
"stun:stun.counterpath.net:3478",
"stun:stun.ipfire.org:3478",
"stun:stun.siportal.it:3478",
"stun:stun.netgsm.com.tr:3478",
"stun:stun.ciktel.com:3478",
"stun:stun.internetcalls.com:3478",
"stun:stun.voipinfocenter.com:3478",
"stun:stun.vidyo.com:3478",
"stun:stun.voiparound.com:3478",
"stun:stun.mgn.ru:3478",
"stun:stun.voip.aebc.com:3478",
"stun:stun.irian.at:3478",
"stun:stun.voippro.com:3478",
"stun:stun.altar.com.pl:3478",
"stun:numb.viagenie.ca:3478",
"stun:stun.tel.lu:3478",
"stun:stun.liveo.fr:3478",
"stun:stun.tagan.ru:3478",
"stun:stun.chathelp.ru:3478",
"stun:stun.arbuz.ru:3478",
"stun:stun.wifirst.net:3478",
"stun:stun.advfn.com:3478",
"stun:stun.voipgate.com:3478",
"stun:stun.comtube.ru:3478",
"stun:stun.freevoipdeal.com:3478",
"stun:stun.vipgroup.net:3478",
"stun:stun.lundimatin.fr:3478",
"stun:stun.t-online.de:3478",
"stun:stun.miwifi.com:3478",
"stun:stun.lowratevoip.com:3478",
"stun:stun.zadv.com:3478",
"stun:stun.linea7.net:3478",
"stun:stun.freeswitch.org:3478",
"stun:stun.cloopen.com:3478",
"stun:stun.voipcheap.com:3478",
"stun:stun.sip.us:3478",
"stun:stun.noc.ams-ix.net:3478",
"stun:stun.poivy.com:3478",
"stun:stun.gmx.net:3478",
"stun:stun.vo.lu:3478",
"stun:stun.easycall.pl:3478",
"stun:stun.callromania.ro:3478",
"stun:stun.vivox.com:3478",
"stun:stun.zoiper.com:3478",
"stun:stun2.l.google.com:19302",
"stun:stun.dcalling.de:3478",
"stun:stun.aa.net.uk:3478",
"stun:stun.rolmail.net:3478",
"stun:stun.acrobits.cz:3478",
"stun:stun.voipwise.com:3478",
"stun:iphone-stun.strato-iphone.de:3478",
"stun:stun.sipgate.net:10000",
"stun:stun.zadarma.com:3478",
"stun:stun.easyvoip.com:3478",
"stun:stun.voipraider.com:3478",
"stun:stun.uls.co.za:3478",
"stun:stun.linphone.org:3478",
"stun:stun.unseen.is:3478",
"stun:stun.cope.es:3478",
"stun:stun.schlund.de:3478",
"stun:stun.hosteurope.de:3478",
"stun:stun.voipstunt.com:3478",
"stun:stun.3cx.com:3478",
"stun:stun.voys.nl:3478",
"stun:stun.whoi.edu:3478",
"stun:stun.voipbuster.com:3478",
"stun:stun.skylink.ru:3478",
"stun:stun.develz.org:3478",
"stun:stun.voxox.com:3478",
"stun:stun.vline.com:3478",
"stun:stun.callwithus.com:3478",
"stun:stun.nonoh.net:3478",
"stun:stun.u-blox.com:3478",
"stun:stun.symplicity.com:3478",
"stun:stun.voipplanet.nl:3478",
"stun:stun.ipshka.com:3478",
"stun:stun.12voip.com:3478",
"stun:stun.phone.com:3478",
"stun:stun.2talk.co.nz:3478",
"stun:stun.telbo.com:3478",
"stun:stun.cablenet-as.net:3478",
"stun:stun.doublerobotics.com:3478",
"stun:stun.voztele.com:3478",
"stun:stun.a-mm.tv:3478",
"stun:stun.b2b2c.ca:3478",
"stun:stun.datamanagement.it:3478",
"stun:stun1.voiceeclipse.net:3478",
"stun:stun1.faktortel.com.au:3478",
"stun:stun.voipblast.com:3478",
"stun:stun.ucsb.edu:3478",
"stun:stun.ucw.cz:3478",
"stun:stun.voipcheap.co.uk:3478",
"stun:stun.actionvoip.com:3478",
"stun:stun.sigmavoip.com:3478",
"stun:stun.kiwilink.co.nz:3478",
"stun:stun.ipcomms.net:3478",
"stun:stun.faktortel.com.au:3478",
"stun:stun.voipbusterpro.com:3478",
"stun:stun.on.net.mk:3478",
"stun:stun.botonakis.com:3478",
"stun:stun.comtube.com:3478",
"stun:stun.lugosoft.com:3478",
"stun:stun.smsdiscount.com:3478",
"stun:stun.sipgate.net:3478",
"stun:stun.gmx.de:3478",
"stun:stun.oriontelekom.rs:3478",
"stun:stun.ivao.aero:3478",
"stun:stun.hoiio.com:3478",
"stun:stun.infra.net:3478",
"stun:stun.gmx.net:3478",
"stun:stun.webcalldirect.com:3478",
"stun:stun.it1.hr:3478",
"stun:stun.nova.is:3478",
"stun:stun.symform.com:3478",
"stun:stun.sma.de:3478",
"stun:stun.siplogin.de:3478",
"stun:stun.sonetel.net:3478",
"stun:stun.outland-net.de:3478",
"stun:stunserver.org:3478",
"stun:stun.counterpath.com:3478",
"stun:stun.telefacil.com:3478",
"stun:stun.freecall.com:3478",
"stun:stun.teachercreated.com:3478",
"stun:stun1.l.google.com:19302",
"stun:23.21.150.121:3478",
"stun:stun.epygi.com:3478",
"stun:stun.ippi.fr:3478",
"stun:stun.netappel.com:3478",
"stun:stun.usfamily.net:3478",
"stun:stun.neotel.co.za:3478",
"stun:stun.mywatson.it:3478",
"stun:stun.pjsip.org:3478",
"stun:stun.justvoip.com:3478",
"stun:stun.ppdi.com:3478",
"stun:stun.rapidnet.de:3478",
"stun:stun.voip.blackberry.com:3478",
"stun:stun.commpeak.com:3478",
"stun:stun.mitake.com.tw:3478",
"stun:stun.nfon.net:3478",
"stun:stun.aeta.com:3478",
"stun:stun.ooma.com:3478"
]
}]
}
};
@@ -131,12 +415,12 @@ class App {
source: params.get('key') && params.get('key').length > 0 ? params.get('key') : this.videoUrl,
width: "100%",
height: "100%",
muted: false,
mute: true,
autoPlay: true,
poster: 'https://www.hatthieves.es/wp-content/uploads/2020/04/cropped-blackground3-2.jpg',
poster: 'https://ale.manalejandro.com/p/https/mastodon.madrid/system/accounts/avatars/000/056/178/original/96031eae577ed94c.jpg',
playbackNotSupportedMessage: 'Play is not supported',
watermark: 'https://www.hatthieves.es/wp-content/uploads/2019/08/cropped-ht.png', position: 'top-left',
watermarkLink: 'https://www.hatthieves.es',
watermark: 'https://ale.manalejandro.com/p/https/mastodon.madrid/system/accounts/avatars/000/056/178/original/96031eae577ed94c.jpg', position: 'top-left',
watermarkLink: 'https://p2p.manalejandro.com',
mediacontrol: { seekbar: "#ffffff", buttons: "#ffffff" },
playback: { playInline: true, preload: true, maxBufferLength: 30 }
};
@@ -154,15 +438,17 @@ class App {
ipfs: node,
ipfsHash: ipfsHash
};
} else {
setup.playback.hlsjsConfig = {
// liveSyncDurationCount: 7,
loader: this.isP2PSupported ? this.engine.createLoaderClass() : Hls.DefaultConfig.loader
};
}
if (params.get('key') && params.get('key').length > 0 || setup.source === 'index.m3u8') {
document.getElementById('chart_container').style.display = 'none'
document.getElementById('graph').parentNode.style.display = 'none'
document.getElementById('video_container').parentNode.style.flex = '0 0 100%'
document.getElementById('video_container').parentNode.style['max-width'] = '100%'
} else {
setup.playback.hlsjsConfig = {
// liveSyncDurationCount: 7,
loader: this.isP2PSupported ? this.engine.createLoaderClass() : Hls.DefaultConfig.loader
};
}
await scriptsPromise;
@@ -404,7 +690,7 @@ class App {
if (oReq.readyState != 4) { return; }
var location = this.response
graph.add({ id: peer.id, name: location.city + ' - ' + location.region + ' (' + location.country + ')' || 'Unknown' });
graph.add({ id: peer.id, name: location.city + ' - ' + location.region + ' (' + location.country + ') - ' + window.name || 'Unknown' });
graph.connect("me", peer.id);
}
oReq.open('POST', 'ip', true);