Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开发建议:建议加入用户(玩家)自定义脚本,并使其输出展示在挂件内 #14

Open
KillLinux opened this issue Sep 22, 2019 · 1 comment

Comments

@KillLinux
Copy link

commented Sep 22, 2019

写了好多个监控服务器用(在下菜鸡运维一名),每次都要手动运行脚本觉得好麻烦,于是乎就想看看能不能直接挂在桌面上,让脚本定时运行,例如每一小时侦测一次服务器的健康状态并将定义的输出打印到桌面的挂件内,然而翻遍了整个SAO-Utils都没找到类似的功能····所以斗胆像研发组建议加入这个功能····如果有这个开发计划的话一定要兼容Python啊!Python是世界上最好的语言(不接受反驳)

示例:
脚本内容:

import socket;
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
No_1 = sock.connect_ex(('127.0.0.1',80))
if No_1 == 0:
   print ("\033[1;32mNo. 1 Web server port status is normal!")
else:
    print("\033[5;31mNo. 1 Web server port status is abnormal!")
    print (Server_1_IP)
    print (Server_1_Port)
#这是一个Python脚本,用于监控一台服务器的端口是否开放的

运行结果:
如果端口开放会返回No. 1 Web server port status is normal!
如果端口关闭会返回No. 1 Web server port status is abnormal!以及IP和端口信息

需求:SAO-Utils可以运行此脚本(定时运行,如每一小时运行一次),并且将其返回值展示在桌面挂件内

向研发组每一位成员致敬!

@GPBeta

This comment has been minimized.

Copy link
Member

commented Sep 23, 2019

现在为 SAO Utils 添加新的数据源可以通过编写插件实现在挂件上显示新的内容,参考

其实现在重写 SAO Utils 2 很大一部分原因就是为了这个——允许用户使用脚本编写扩展。
经过一番寻找,我觉得 QML (可以理解为 Java Script 的超集语言)十分适合作为 UI 和逻辑混合脚本。

import QtQuick 2.3

Rectangle {
    width: 200
    height: 100
    color: "red"

    Text {
        anchors.centerIn: parent
        text: "Hello, World!"
    }
}

你甚至可以使用 C++ 扩展更多 QML 的组件,详情见 官方文档
而且,SAO Utils 已经在 Exp 版率先尝试使用 QML 重构了几个挂件,你可以修改这些挂件,也可以用 QML 写自己的挂件。
挂件的脚本源码可以在安装目录中找到:

  • SAO Utils/Plugins/GGO Widget
  • SAO Utils/Plugins/HP-Bar
  • SAO Utils/Plugins/Image Widget

下载:http://sao.gpbeta.com/exp/

Python 支持的话其实写到 C++ 插件 + 自带 Python 运行时也行,最后注意一下不要阻塞 UI 线程(笑)

@GPBeta GPBeta added the in progress label Sep 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
2 participants
You can’t perform that action at this time.