mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
platform info
This commit is contained in:
parent
434d16d523
commit
c07f811c87
@ -6,6 +6,10 @@ parse = (?P<major>\d+)\.(?P<minor>\d+)(\.(?P<patch>\d+)(\-(?P<release>[a-z]+))?)
|
||||
serialize =
|
||||
{major}.{minor}
|
||||
|
||||
[bumpversion:file:kvmd/server.py]
|
||||
search = __version__ = "{current_version}"
|
||||
replace = __version__ = "{new_version}"
|
||||
|
||||
[bumpversion:file:setup.py]
|
||||
search = version="{current_version}"
|
||||
replace = version="{new_version}"
|
||||
|
||||
@ -12,6 +12,10 @@ from .server import Server
|
||||
from . import gpio
|
||||
|
||||
|
||||
# =====
|
||||
from .server import __version__ # noqa: F401
|
||||
|
||||
|
||||
# =====
|
||||
def main() -> None:
|
||||
config = init()
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
import os
|
||||
import signal
|
||||
import asyncio
|
||||
import platform
|
||||
import functools
|
||||
import json
|
||||
import time
|
||||
|
||||
@ -26,6 +28,21 @@ from .streamer import Streamer
|
||||
from .logging import get_logger
|
||||
|
||||
|
||||
# =====
|
||||
__version__ = "0.37"
|
||||
|
||||
|
||||
@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:
|
||||
@ -116,6 +133,8 @@ class Server: # pylint: disable=too-many-instance-attributes
|
||||
|
||||
app = aiohttp.web.Application(loop=self.__loop)
|
||||
|
||||
app.router.add_get("/info", self.__info_handler)
|
||||
|
||||
app.router.add_get("/ws", self.__ws_handler)
|
||||
|
||||
app.router.add_get("/hid", self.__hid_state_handler)
|
||||
@ -142,6 +161,9 @@ class Server: # pylint: disable=too-many-instance-attributes
|
||||
|
||||
aiohttp.web.run_app(app, host=host, port=port, print=self.__run_app_print)
|
||||
|
||||
async def __info_handler(self, _: aiohttp.web.Request) -> aiohttp.web.WebSocketResponse:
|
||||
return _json(_get_system_info())
|
||||
|
||||
async def __ws_handler(self, request: aiohttp.web.Request) -> aiohttp.web.WebSocketResponse:
|
||||
logger = get_logger(0)
|
||||
ws = aiohttp.web.WebSocketResponse(heartbeat=self.__heartbeat)
|
||||
|
||||
@ -258,3 +258,27 @@ div#msd-progress span#msd-progress-value {
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
ul#bottom {
|
||||
list-style-type: none;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
font-size: 0.7em;
|
||||
color: var(--fg-color-inactive);
|
||||
z-index: -1;
|
||||
}
|
||||
ul#bottom li {
|
||||
padding: 0 10px;
|
||||
}
|
||||
ul#bottom li.bottom-left {
|
||||
float: left;
|
||||
}
|
||||
ul#bottom li.bottom-right {
|
||||
float: right;
|
||||
}
|
||||
ul#bottom li a {
|
||||
text-decoration: underline dotted;
|
||||
color: var(--fg-color-inactive);
|
||||
}
|
||||
|
||||
@ -160,5 +160,10 @@
|
||||
<img src="/streamer/?action=stream" id="stream-image" class="stream-image-inactive" alt="Loading..." />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul id="bottom">
|
||||
<li id="kvmd-version" class="bottom-left"></li>
|
||||
<li class="bottom-right"><a target="_blank" href="https://github.com/mdevaev/pi-kvm">Pi-KVM Project</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
function main () {
|
||||
window.onclick = ui.windowClickHandler;
|
||||
session.loadKvmdVersion();
|
||||
session.startPoller();
|
||||
stream.startPoller();
|
||||
}
|
||||
|
||||
@ -3,6 +3,18 @@ var session = new function() {
|
||||
var __ping_timer = null;
|
||||
var __missed_heartbeats = 0;
|
||||
|
||||
this.loadKvmdVersion = function() {
|
||||
var http = tools.makeRequest("GET", "/kvmd/info", function() {
|
||||
if (http.readyState === 4) {
|
||||
if (http.status === 200) {
|
||||
$("kvmd-version").innerHTML = "kvmd " + JSON.parse(http.responseText).result.version.kvmd;
|
||||
} else {
|
||||
setTimeout(session.loadKvmdVersion, 1000);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
this.startPoller = function() {
|
||||
__ws = new WebSocket("ws://" + location.host + "/kvmd/ws");
|
||||
__ws.onopen = __wsOpenHandler;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user