diff options
author | Katherine Peeters <katherine.peeters@leagueh.xyz> | 2021-05-10 11:56:13 -0400 |
---|---|---|
committer | Katherine Peeters <katherine.peeters@leagueh.xyz> | 2021-05-10 11:56:13 -0400 |
commit | a846e4f28715b926c184f13ee2c1af3b9450f3a9 (patch) | |
tree | 32c27f01b4af546e858a18ab7098fcb0a754d4a7 /site | |
parent | 005562f3743e48a6f4456133191245fe2b9d40be (diff) | |
download | loh-website-a846e4f28715b926c184f13ee2c1af3b9450f3a9.tar.gz |
Tried to add styling to the RTMP stats page
Diffstat (limited to 'site')
-rw-r--r-- | site/s/stat.xsl | 577 |
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> <xsl:value-of select="/rtmp/nginx_rtmp_version"/>, - <a href="http://nginx.org">nginx</a> <xsl:value-of select="/rtmp/nginx_version"/>, - pid <xsl:value-of select="/rtmp/pid"/>, - built <xsl:value-of select="/rtmp/built"/> <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> <xsl:value-of select="/rtmp/nginx_rtmp_version"/>, + <a href="http://nginx.org">nginx</a> <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"/> <xsl:value-of select="meta/video/profile"/> <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"/> <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"/> <xsl:value-of select="meta/video/profile"/> <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"/> <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 > 0"> - <xsl:variable name="sec"> - <xsl:value-of select="floor($time div 1000)"/> - </xsl:variable> + <xsl:if test="$time > 0"> + <xsl:variable name="sec"> + <xsl:value-of select="floor($time div 1000)"/> + </xsl:variable> - <xsl:if test="$sec >= 86400"> - <xsl:value-of select="floor($sec div 86400)"/>d - </xsl:if> + <xsl:if test="$sec >= 86400"> + <xsl:value-of select="floor($sec div 86400)"/>d + </xsl:if> - <xsl:if test="$sec >= 3600"> - <xsl:value-of select="(floor($sec div 3600)) mod 24"/>h - </xsl:if> + <xsl:if test="$sec >= 3600"> + <xsl:value-of select="(floor($sec div 3600)) mod 24"/>h + </xsl:if> - <xsl:if test="$sec >= 60"> - <xsl:value-of select="(floor($sec div 60)) mod 60"/>m - </xsl:if> + <xsl:if test="$sec >= 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 >= 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 >= 1073741824"> + <xsl:value-of select="format-number($sizen div 1073741824,'#.###')"/> T</xsl:when> - <xsl:when test="$sizen >= 1048576"> - <xsl:value-of select="format-number($sizen div 1048576,'#.###')"/> G</xsl:when> + <xsl:when test="$sizen >= 1048576"> + <xsl:value-of select="format-number($sizen div 1048576,'#.###')"/> G</xsl:when> - <xsl:when test="$sizen >= 1024"> - <xsl:value-of select="format-number($sizen div 1024,'#.##')"/> M</xsl:when> - <xsl:when test="$sizen >= 0"> - <xsl:value-of select="$sizen"/> K</xsl:when> - </xsl:choose> - <xsl:if test="string-length($size) > 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 >= 1024"> + <xsl:value-of select="format-number($sizen div 1024,'#.##')"/> M</xsl:when> + <xsl:when test="$sizen >= 0"> + <xsl:value-of select="$sizen"/> K</xsl:when> + </xsl:choose> + <xsl:if test="string-length($size) > 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?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?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> |