summaryrefslogtreecommitdiff
path: root/index.html
blob: 5eb8fac91c6bd67fbb06833a4edfcfc788a122a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">

    <title>stream.spacekookie.de</title>
    <link href="/static/main.css" rel="stylesheet">
    <script src="/static/ajax.min.js" charset="utf-8"></script>

    <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.conversejs.org/6.0.0/dist/converse.min.css">
    <script src="https://cdn.conversejs.org/6.0.0/dist/converse.min.js" charset="utf-8"></script>
    <script src="https://cdn.dashjs.org/latest/dash.mediaplayer.min.js" charset="utf-8"></script>
  </head>

  <!-- Main site body -->
  <body>
    <header>
      <h1>stream.spacekookie.de</h1>
      <p class="stream-status">OFFLINE</p>
      <!-- <p class="stream-status">LIVE</p> -->
    </header>


    <div class="block">
      <h2>Welcome to the stream! ✨</h2>
      <p>
        The stream chat is backed by an XMPP
        room: <a href="xmpp:stream@rooms.spacekookie.de?join"><em><code>stream@rooms.spacekookie.de</code></em></a> — Feel free to join
        it from your favourite XMPP client to say hello!
      </p>
    </div>
    
    <div class="content">
      <video class="stream" id="stream" controls>
        <!-- <source src="/static/test-video.webm" type="video/webm"> -->
          Your browser does not support the video tag!
      </video>

      <div class="chat">
        <div id="conversejs"></div>
      </div>
    </div>

    <div class="block">
      <p id="view-count">Viewers: ?</p>
    </div>

  </body>

  <!-- Initialise converse.js here -->
  <script>
    converse.initialize({
        bosh_service_url: 'https://stream.spacekookie.de/xmpp-bosh',
        authentication: 'anonymous',
        auto_login: true,
        auto_reconnect: true,
        muc_disable_slash_commands: true,
        auto_join_rooms: ['stream@rooms.spacekookie.de'],
        singleton: true,
        view_mode: 'embedded',
        theme: 'concord',
        jid: 'guest-xmpp.spacekookie.de',
        show_controlbox_by_default: true,
    });
    
    var client_id;
    var url = "https://stream.spacekookie.de/dash/app.mpd";
    var player = dashjs.MediaPlayer().create();
    var stream = document.getElementById("stream");
    player.initialize(stream, url, true);
    player.on(dashjs.MediaPlayer.events['PLAYBACK_ENDED'], function() {
        clearInterval(metricPoller);
        clearInterval(currentPoller);
    });

    var eventPoller = setInterval(function() {
        console.log("Letting the backend know we're watching");

        console.log("We are id: " + client_id);
        Ajax.post('https://stream.spacekookie.de/metrics/update',
                  { id: client_id })
            .then(function(response) {
                console.log("We were assigned ID: " + response.id);
                client_id = response.id;
            })
    }, 5000);

    var currentPoller = setInterval(function() {
        Ajax.get('https://stream.spacekookie.de/metrics/current')
            .then(function(resp) {
                document.getElementById("view-count").innerHTML = "Viewers: " + resp.num;
            });
                 
    }, 10000);
    
  </script>
</html>