show streamer version

This commit is contained in:
Devaev Maxim 2018-10-10 00:51:08 +03:00
parent a449b39c52
commit 95bc1536b2
4 changed files with 26 additions and 25 deletions

View File

@ -1,8 +1,6 @@
import os
import signal
import asyncio
import platform
import functools
import json
import time
@ -33,17 +31,6 @@ from .logging import get_logger
__version__ = "0.78"
@functools.lru_cache()
def _get_system_info() -> Dict[str, Dict[str, str]]:
return {
"version": {
"platform": platform.platform(),
"python": platform.python_version(),
"kvmd": __version__,
},
}
# =====
def _system_task(method: Callable) -> Callable:
async def wrap(self: "Server") -> None:
@ -170,7 +157,13 @@ class Server: # pylint: disable=too-many-instance-attributes
# ===== INFO
async def __info_handler(self, _: aiohttp.web.Request) -> aiohttp.web.Response:
return _json(_get_system_info())
return _json({
"version": {
"kvmd": __version__,
"streamer": await self.__streamer.get_version(),
},
"streamer": self.__streamer.get_app(),
})
# ===== WEBSOCKET

View File

@ -1,3 +1,4 @@
import os
import asyncio
import asyncio.subprocess
@ -64,6 +65,18 @@ class Streamer: # pylint: disable=too-many-instance-attributes
"quality": self.__quality,
}
def get_app(self) -> str:
return os.path.basename(self.__cmd[0])
async def get_version(self) -> str:
proc = await asyncio.create_subprocess_exec(
*[self.__cmd[0], "--version"],
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.DEVNULL,
)
(stdout, _) = await proc.communicate()
return stdout.decode(errors="ignore").strip()
async def cleanup(self) -> None:
if self.is_running():
await self.stop()

View File

@ -541,12 +541,8 @@
<td id="about-version-kvmd" class="version"></td>
</tr>
<tr>
<td>Python:</td>
<td id="about-version-python" class="version"></td>
</tr>
<tr>
<td>Platform:</td>
<td id="about-version-platform" class="version"></td>
<td>Streamer:</td>
<td id="about-version-streamer" class="version"></td>
</tr>
</table>
<p>

View File

@ -20,11 +20,10 @@ function Session(atx, hid, msd) {
var http = tools.makeRequest("GET", "/kvmd/info", function() {
if (http.readyState === 4) {
if (http.status === 200) {
var version = JSON.parse(http.responseText).result.version;
$("kvmd-version").innerHTML = "kvmd " + version.kvmd;
$("about-version-kvmd").innerHTML = version.kvmd;
$("about-version-python").innerHTML = version.python;
$("about-version-platform").innerHTML = version.platform;
var info = JSON.parse(http.responseText).result;
$("kvmd-version").innerHTML = "Web-UI " + info.version.kvmd;
$("about-version-kvmd").innerHTML = info.version.kvmd;
$("about-version-streamer").innerHTML = info.version.streamer + " (" + info.streamer + ")";
} else {
setTimeout(__loadKvmdVersion, 1000);
}