summaryrefslogtreecommitdiff
path: root/site
diff options
context:
space:
mode:
authorKatherine Peeters <katherine.peeters@leagueh.xyz>2021-05-10 11:56:13 -0400
committerKatherine Peeters <katherine.peeters@leagueh.xyz>2021-05-10 11:56:13 -0400
commita846e4f28715b926c184f13ee2c1af3b9450f3a9 (patch)
tree32c27f01b4af546e858a18ab7098fcb0a754d4a7 /site
parent005562f3743e48a6f4456133191245fe2b9d40be (diff)
downloadloh-website-a846e4f28715b926c184f13ee2c1af3b9450f3a9.tar.gz
Tried to add styling to the RTMP stats page
Diffstat (limited to 'site')
-rw-r--r--site/s/stat.xsl577
1 files changed, 288 insertions, 289 deletions
diff --git a/site/s/stat.xsl b/site/s/stat.xsl
index 355453b..7873081 100644
--- a/site/s/stat.xsl
+++ b/site/s/stat.xsl
@@ -10,346 +10,345 @@
<xsl:template match="/">
- <html>
- <head>
- <title>RTMP statistics</title>
- </head>
- <body>
- <xsl:apply-templates select="rtmp"/>
- <hr/>
- Generated by <a href='https://github.com/arut/nginx-rtmp-module'>
- nginx-rtmp-module</a>&#160;<xsl:value-of select="/rtmp/nginx_rtmp_version"/>,
- <a href="http://nginx.org">nginx</a>&#160;<xsl:value-of select="/rtmp/nginx_version"/>,
- pid <xsl:value-of select="/rtmp/pid"/>,
- built <xsl:value-of select="/rtmp/built"/>&#160;<xsl:value-of select="/rtmp/compiler"/>
- </body>
- </html>
+ <html>
+ <link rel="stylesheet" href="/style.css">
+ <head>
+ <title>RTMP statistics</title>
+ </head>
+ <body>
+ <xsl:apply-templates select="rtmp"/>
+ <hr/>
+ Generated by <a href='https://github.com/arut/nginx-rtmp-module'>
+ nginx-rtmp-module</a>&#160;<xsl:value-of select="/rtmp/nginx_rtmp_version"/>,
+ <a href="http://nginx.org">nginx</a>&#160;<xsl:value-of select="/rtmp/nginx_version"/>,
+ </body>
+ </html>
</xsl:template>
<xsl:template match="rtmp">
- <table cellspacing="1" cellpadding="5">
- <tr bgcolor="#999999">
- <th>RTMP</th>
- <th>#clients</th>
- <th colspan="4">Video</th>
- <th colspan="4">Audio</th>
- <th>In bytes</th>
- <th>Out bytes</th>
- <th>In bits/s</th>
- <th>Out bits/s</th>
- <th>State</th>
- <th>Time</th>
- </tr>
- <tr>
- <td colspan="2">Accepted: <xsl:value-of select="naccepted"/></td>
- <th bgcolor="#999999">codec</th>
- <th bgcolor="#999999">bits/s</th>
- <th bgcolor="#999999">size</th>
- <th bgcolor="#999999">fps</th>
- <th bgcolor="#999999">codec</th>
- <th bgcolor="#999999">bits/s</th>
- <th bgcolor="#999999">freq</th>
- <th bgcolor="#999999">chan</th>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bytes_in"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bytes_out"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bw_in"/>
- <xsl:with-param name="bits" select="1"/>
- <xsl:with-param name="persec" select="1"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bw_out"/>
- <xsl:with-param name="bits" select="1"/>
- <xsl:with-param name="persec" select="1"/>
- </xsl:call-template>
- </td>
- <td/>
- <td>
- <xsl:call-template name="showtime">
- <xsl:with-param name="time" select="/rtmp/uptime * 1000"/>
- </xsl:call-template>
- </td>
- </tr>
- <xsl:apply-templates select="server"/>
- </table>
+ <table cellspacing="1" cellpadding="5">
+ <tr>
+ <th>RTMP</th>
+ <th>#clients</th>
+ <th colspan="4">Video</th>
+ <th colspan="4">Audio</th>
+ <th>In bytes</th>
+ <th>Out bytes</th>
+ <th>In bits/s</th>
+ <th>Out bits/s</th>
+ <th>State</th>
+ <th>Time</th>
+ </tr>
+ <tr>
+ <td colspan="2">Accepted: <xsl:value-of select="naccepted"/></td>
+ <th>codec</th>
+ <th>bits/s</th>
+ <th>size</th>
+ <th>fps</th>
+ <th>codec</th>
+ <th>bits/s</th>
+ <th>freq</th>
+ <th>chan</th>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bytes_in"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bytes_out"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bw_in"/>
+ <xsl:with-param name="bits" select="1"/>
+ <xsl:with-param name="persec" select="1"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bw_out"/>
+ <xsl:with-param name="bits" select="1"/>
+ <xsl:with-param name="persec" select="1"/>
+ </xsl:call-template>
+ </td>
+ <td/>
+ <td>
+ <xsl:call-template name="showtime">
+ <xsl:with-param name="time" select="/rtmp/uptime * 1000"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ <xsl:apply-templates select="server"/>
+ </table>
</xsl:template>
<xsl:template match="server">
- <xsl:apply-templates select="application"/>
+ <xsl:apply-templates select="application"/>
</xsl:template>
<xsl:template match="application">
- <tr bgcolor="#999999">
- <td>
- <b><xsl:value-of select="name"/></b>
- </td>
- </tr>
- <xsl:apply-templates select="live"/>
- <xsl:apply-templates select="play"/>
+ <tr>
+ <td>
+ <b><xsl:value-of select="name"/></b>
+ </td>
+ </tr>
+ <xsl:apply-templates select="live"/>
+ <xsl:apply-templates select="play"/>
</xsl:template>
<xsl:template match="live">
- <tr bgcolor="#aaaaaa">
- <td>
- <i>live streams</i>
- </td>
- <td align="middle">
- <xsl:value-of select="nclients"/>
- </td>
- </tr>
- <xsl:apply-templates select="stream"/>
+ <tr>
+ <td>
+ <i>live streams</i>
+ </td>
+ <td align="middle">
+ <xsl:value-of select="nclients"/>
+ </td>
+ </tr>
+ <xsl:apply-templates select="stream"/>
</xsl:template>
<xsl:template match="play">
- <tr bgcolor="#aaaaaa">
- <td>
- <i>vod streams</i>
- </td>
- <td align="middle">
- <xsl:value-of select="nclients"/>
- </td>
- </tr>
- <xsl:apply-templates select="stream"/>
+ <tr>
+ <td>
+ <i>vod streams</i>
+ </td>
+ <td align="middle">
+ <xsl:value-of select="nclients"/>
+ </td>
+ </tr>
+ <xsl:apply-templates select="stream"/>
</xsl:template>
<xsl:template match="stream">
- <tr valign="top">
- <xsl:attribute name="bgcolor">
- <xsl:choose>
- <xsl:when test="active">#cccccc</xsl:when>
- <xsl:otherwise>#dddddd</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <td>
- <a href="">
- <xsl:attribute name="onclick">
- var d=document.getElementById('<xsl:value-of select="../../name"/>-<xsl:value-of select="name"/>');
- d.style.display=d.style.display=='none'?'':'none';
- return false
- </xsl:attribute>
- <xsl:value-of select="name"/>
- <xsl:if test="string-length(name) = 0">
- [EMPTY]
- </xsl:if>
- </a>
- </td>
- <td align="middle"> <xsl:value-of select="nclients"/> </td>
- <td>
- <xsl:value-of select="meta/video/codec"/>&#160;<xsl:value-of select="meta/video/profile"/>&#160;<xsl:value-of select="meta/video/level"/>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bw_video"/>
- <xsl:with-param name="bits" select="1"/>
- <xsl:with-param name="persec" select="1"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:apply-templates select="meta/video/width"/>
- </td>
- <td>
- <xsl:value-of select="meta/video/frame_rate"/>
- </td>
- <td>
- <xsl:value-of select="meta/audio/codec"/>&#160;<xsl:value-of select="meta/audio/profile"/>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bw_audio"/>
- <xsl:with-param name="bits" select="1"/>
- <xsl:with-param name="persec" select="1"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:apply-templates select="meta/audio/sample_rate"/>
- </td>
- <td>
- <xsl:value-of select="meta/audio/channels"/>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bytes_in"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bytes_out"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bw_in"/>
- <xsl:with-param name="bits" select="1"/>
- <xsl:with-param name="persec" select="1"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="showsize">
- <xsl:with-param name="size" select="bw_out"/>
- <xsl:with-param name="bits" select="1"/>
- <xsl:with-param name="persec" select="1"/>
- </xsl:call-template>
- </td>
- <td><xsl:call-template name="streamstate"/></td>
- <td>
- <xsl:call-template name="showtime">
- <xsl:with-param name="time" select="time"/>
- </xsl:call-template>
- </td>
- </tr>
- <tr style="display:none">
- <xsl:attribute name="id">
- <xsl:value-of select="../../name"/>-<xsl:value-of select="name"/>
- </xsl:attribute>
- <td colspan="16" ngcolor="#eeeeee">
- <table cellspacing="1" cellpadding="5">
- <tr>
- <th>Id</th>
- <th>State</th>
- <th>Address</th>
- <th>Flash version</th>
- <th>Page URL</th>
- <th>SWF URL</th>
- <th>Dropped</th>
- <th>Timestamp</th>
- <th>A-V</th>
- <th>Time</th>
- </tr>
- <xsl:apply-templates select="client"/>
- </table>
- </td>
- </tr>
+ <tr valign="top">
+ <xsl:attribute name="bgcolor">
+ <xsl:choose>
+ <xsl:when test="active">#cccccc</xsl:when>
+ <xsl:otherwise>#dddddd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td>
+ <a href="">
+ <xsl:attribute name="onclick">
+ var d=document.getElementById('<xsl:value-of select="../../name"/>-<xsl:value-of select="name"/>');
+ d.style.display=d.style.display=='none'?'':'none';
+ return false
+ </xsl:attribute>
+ <xsl:value-of select="name"/>
+ <xsl:if test="string-length(name) = 0">
+ [EMPTY]
+ </xsl:if>
+ </a>
+ </td>
+ <td align="middle"> <xsl:value-of select="nclients"/> </td>
+ <td>
+ <xsl:value-of select="meta/video/codec"/>&#160;<xsl:value-of select="meta/video/profile"/>&#160;<xsl:value-of select="meta/video/level"/>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bw_video"/>
+ <xsl:with-param name="bits" select="1"/>
+ <xsl:with-param name="persec" select="1"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:apply-templates select="meta/video/width"/>
+ </td>
+ <td>
+ <xsl:value-of select="meta/video/frame_rate"/>
+ </td>
+ <td>
+ <xsl:value-of select="meta/audio/codec"/>&#160;<xsl:value-of select="meta/audio/profile"/>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bw_audio"/>
+ <xsl:with-param name="bits" select="1"/>
+ <xsl:with-param name="persec" select="1"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:apply-templates select="meta/audio/sample_rate"/>
+ </td>
+ <td>
+ <xsl:value-of select="meta/audio/channels"/>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bytes_in"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bytes_out"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bw_in"/>
+ <xsl:with-param name="bits" select="1"/>
+ <xsl:with-param name="persec" select="1"/>
+ </xsl:call-template>
+ </td>
+ <td>
+ <xsl:call-template name="showsize">
+ <xsl:with-param name="size" select="bw_out"/>
+ <xsl:with-param name="bits" select="1"/>
+ <xsl:with-param name="persec" select="1"/>
+ </xsl:call-template>
+ </td>
+ <td><xsl:call-template name="streamstate"/></td>
+ <td>
+ <xsl:call-template name="showtime">
+ <xsl:with-param name="time" select="time"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ <tr style="display:none">
+ <xsl:attribute name="id">
+ <xsl:value-of select="../../name"/>-<xsl:value-of select="name"/>
+ </xsl:attribute>
+ <td colspan="16" ngcolor="#eeeeee">
+ <table cellspacing="1" cellpadding="5">
+ <tr>
+ <th>Id</th>
+ <th>State</th>
+ <th>Address</th>
+ <th>Flash version</th>
+ <th>Page URL</th>
+ <th>SWF URL</th>
+ <th>Dropped</th>
+ <th>Timestamp</th>
+ <th>A-V</th>
+ <th>Time</th>
+ </tr>
+ <xsl:apply-templates select="client"/>
+ </table>
+ </td>
+ </tr>
</xsl:template>
<xsl:template name="showtime">
- <xsl:param name="time"/>
+ <xsl:param name="time"/>
- <xsl:if test="$time &gt; 0">
- <xsl:variable name="sec">
- <xsl:value-of select="floor($time div 1000)"/>
- </xsl:variable>
+ <xsl:if test="$time &gt; 0">
+ <xsl:variable name="sec">
+ <xsl:value-of select="floor($time div 1000)"/>
+ </xsl:variable>
- <xsl:if test="$sec &gt;= 86400">
- <xsl:value-of select="floor($sec div 86400)"/>d
- </xsl:if>
+ <xsl:if test="$sec &gt;= 86400">
+ <xsl:value-of select="floor($sec div 86400)"/>d
+ </xsl:if>
- <xsl:if test="$sec &gt;= 3600">
- <xsl:value-of select="(floor($sec div 3600)) mod 24"/>h
- </xsl:if>
+ <xsl:if test="$sec &gt;= 3600">
+ <xsl:value-of select="(floor($sec div 3600)) mod 24"/>h
+ </xsl:if>
- <xsl:if test="$sec &gt;= 60">
- <xsl:value-of select="(floor($sec div 60)) mod 60"/>m
- </xsl:if>
+ <xsl:if test="$sec &gt;= 60">
+ <xsl:value-of select="(floor($sec div 60)) mod 60"/>m
+ </xsl:if>
- <xsl:value-of select="$sec mod 60"/>s
- </xsl:if>
+ <xsl:value-of select="$sec mod 60"/>s
+ </xsl:if>
</xsl:template>
<xsl:template name="showsize">
- <xsl:param name="size"/>
- <xsl:param name="bits" select="0" />
- <xsl:param name="persec" select="0" />
- <xsl:variable name="sizen">
- <xsl:value-of select="floor($size div 1024)"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$sizen &gt;= 1073741824">
- <xsl:value-of select="format-number($sizen div 1073741824,'#.###')"/> T</xsl:when>
+ <xsl:param name="size"/>
+ <xsl:param name="bits" select="0" />
+ <xsl:param name="persec" select="0" />
+ <xsl:variable name="sizen">
+ <xsl:value-of select="floor($size div 1024)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$sizen &gt;= 1073741824">
+ <xsl:value-of select="format-number($sizen div 1073741824,'#.###')"/> T</xsl:when>
- <xsl:when test="$sizen &gt;= 1048576">
- <xsl:value-of select="format-number($sizen div 1048576,'#.###')"/> G</xsl:when>
+ <xsl:when test="$sizen &gt;= 1048576">
+ <xsl:value-of select="format-number($sizen div 1048576,'#.###')"/> G</xsl:when>
- <xsl:when test="$sizen &gt;= 1024">
- <xsl:value-of select="format-number($sizen div 1024,'#.##')"/> M</xsl:when>
- <xsl:when test="$sizen &gt;= 0">
- <xsl:value-of select="$sizen"/> K</xsl:when>
- </xsl:choose>
- <xsl:if test="string-length($size) &gt; 0">
- <xsl:choose>
- <xsl:when test="$bits = 1">b</xsl:when>
- <xsl:otherwise>B</xsl:otherwise>
- </xsl:choose>
- <xsl:if test="$persec = 1">/s</xsl:if>
- </xsl:if>
+ <xsl:when test="$sizen &gt;= 1024">
+ <xsl:value-of select="format-number($sizen div 1024,'#.##')"/> M</xsl:when>
+ <xsl:when test="$sizen &gt;= 0">
+ <xsl:value-of select="$sizen"/> K</xsl:when>
+ </xsl:choose>
+ <xsl:if test="string-length($size) &gt; 0">
+ <xsl:choose>
+ <xsl:when test="$bits = 1">b</xsl:when>
+ <xsl:otherwise>B</xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$persec = 1">/s</xsl:if>
+ </xsl:if>
</xsl:template>
<xsl:template name="streamstate">
- <xsl:choose>
- <xsl:when test="active">active</xsl:when>
- <xsl:otherwise>idle</xsl:otherwise>
- </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="active">active</xsl:when>
+ <xsl:otherwise>idle</xsl:otherwise>
+ </xsl:choose>
</xsl:template>
<xsl:template name="clientstate">
- <xsl:choose>
- <xsl:when test="publishing">publishing</xsl:when>
- <xsl:otherwise>playing</xsl:otherwise>
- </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="publishing">publishing</xsl:when>
+ <xsl:otherwise>playing</xsl:otherwise>
+ </xsl:choose>
</xsl:template>
<xsl:template match="client">
- <tr>
- <xsl:attribute name="bgcolor">
- <xsl:choose>
- <xsl:when test="publishing">#cccccc</xsl:when>
- <xsl:otherwise>#eeeeee</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <td><xsl:value-of select="id"/></td>
- <td><xsl:call-template name="clientstate"/></td>
- <td>
- <a target="_blank">
- <xsl:attribute name="href">
- http://apps.db.ripe.net/search/query.html&#63;searchtext=<xsl:value-of select="address"/>
- </xsl:attribute>
- <xsl:attribute name="title">whois</xsl:attribute>
- <xsl:value-of select="address"/>
- </a>
- </td>
- <td><xsl:value-of select="flashver"/></td>
- <td>
- <a target="_blank">
- <xsl:attribute name="href">
- <xsl:value-of select="pageurl"/>
- </xsl:attribute>
- <xsl:value-of select="pageurl"/>
- </a>
- </td>
- <td><xsl:value-of select="swfurl"/></td>
- <td><xsl:value-of select="dropped"/></td>
- <td><xsl:value-of select="timestamp"/></td>
- <td><xsl:value-of select="avsync"/></td>
- <td>
- <xsl:call-template name="showtime">
- <xsl:with-param name="time" select="time"/>
- </xsl:call-template>
- </td>
- </tr>
+ <tr>
+ <xsl:attribute name="bgcolor">
+ <xsl:choose>
+ <xsl:when test="publishing">#cccccc</xsl:when>
+ <xsl:otherwise>#eeeeee</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <td><xsl:value-of select="id"/></td>
+ <td><xsl:call-template name="clientstate"/></td>
+ <td>
+ <a target="_blank">
+ <xsl:attribute name="href">
+ http://apps.db.ripe.net/search/query.html&#63;searchtext=<xsl:value-of select="address"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">whois</xsl:attribute>
+ <xsl:value-of select="address"/>
+ </a>
+ </td>
+ <td><xsl:value-of select="flashver"/></td>
+ <td>
+ <a target="_blank">
+ <xsl:attribute name="href">
+ <xsl:value-of select="pageurl"/>
+ </xsl:attribute>
+ <xsl:value-of select="pageurl"/>
+ </a>
+ </td>
+ <td><xsl:value-of select="swfurl"/></td>
+ <td><xsl:value-of select="dropped"/></td>
+ <td><xsl:value-of select="timestamp"/></td>
+ <td><xsl:value-of select="avsync"/></td>
+ <td>
+ <xsl:call-template name="showtime">
+ <xsl:with-param name="time" select="time"/>
+ </xsl:call-template>
+ </td>
+ </tr>
</xsl:template>
<xsl:template match="publishing">
- publishing
+ publishing
</xsl:template>
<xsl:template match="active">
- active
+ active
</xsl:template>
<xsl:template match="width">
- <xsl:value-of select="."/>x<xsl:value-of select="../height"/>
+ <xsl:value-of select="."/>x<xsl:value-of select="../height"/>
</xsl:template>
</xsl:stylesheet>