chess / app.py
AriaUniversal's picture
Update app.py
839f7b5 verified
from PyQt5 import QtCore, QtGui, QtWidgets, QtWebEngineWidgets
import concurrent.futures
import threading
import os
from easySpeech import speech
from backend.core import core
from backend.speak import speak
class MainThread(QtCore.QThread):
def __init__(self):
super(MainThread, self).__init__()
@QtCore.pyqtSlot()
def run(self):
with concurrent.futures.ThreadPoolExecutor() as executor:
try:
future = executor.submit(speech.speech, "google")
return_value = future.result()
except:
return_value = ""
print(return_value)
with concurrent.futures.ThreadPoolExecutor() as main:
try:
main_core = main.submit(core, return_value)
value = main_core.result()
speak(value)
except:
pass
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
# Define shortcut
self.shortcut_open = QtWidgets.QShortcut(QtGui.QKeySequence('f5'), self)
self.shortcut_open.activated.connect(self.download)
self.setWindowTitle("CHESS")
self.setFixedSize(330, 620)
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setStyleSheet('background-color: black; color: white')
self.view = QtWebEngineWidgets.QWebEngineView()
self.view.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
self.view.page().profile().downloadRequested.connect(self.on_downloadRequested)
self.view.load(QtCore.QUrl("https://j-dogcoder.github.io/AI/templates/"))
hbox = QtWidgets.QHBoxLayout(self)
hbox.addWidget(self.view)
self.setWindowIcon(QtGui.QIcon(os.path.join('images', 'source.png')))
def download(self):
try:
thread = threading.Thread(target=MainThread().run)
thread.daemon = True
thread.start()
except:
pass
@QtCore.pyqtSlot("QWebEngineDownloadItem*")
def on_downloadRequested(self, download):
try:
thread = threading.Thread(target=MainThread().run)
thread.daemon = True
thread.start()
except:
pass
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())