Dev 140320221219

Moved logic to multiple files, changed file system
This commit is contained in:
BarsTiger
2022-03-14 12:20:04 +02:00
parent d9dc611edd
commit c85b2be089
15 changed files with 789 additions and 736 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
from PyQt5 import QtCore, QtWidgets
class Ui_DelSongs(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(300, 510)
MainWindow.setMinimumSize(QtCore.QSize(300, 510))
MainWindow.setMaximumSize(QtCore.QSize(300, 510))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(0, 0, 300, 461))
self.listWidget.setObjectName("listWidget")
self.delButton = QtWidgets.QPushButton(self.centralwidget)
self.delButton.setGeometry(QtCore.QRect(0, 460, 300, 23))
self.delButton.setObjectName("delButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Songs manager"))
self.delButton.setText(_translate("MainWindow", "Delete selected song"))

View File

@@ -0,0 +1,36 @@
from PyQt5 import QtCore, QtWidgets
class Ui_ExtendedMenu(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(151, 74)
MainWindow.setMinimumSize(QtCore.QSize(151, 74))
MainWindow.setMaximumSize(QtCore.QSize(151, 74))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.prosearchButton = QtWidgets.QPushButton(self.centralwidget)
self.prosearchButton.setGeometry(QtCore.QRect(0, 0, 150, 50))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.prosearchButton.sizePolicy().hasHeightForWidth())
self.prosearchButton.setSizePolicy(sizePolicy)
self.prosearchButton.setMaximumSize(QtCore.QSize(150, 50))
self.prosearchButton.setObjectName("prosearchButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 151, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Extended functions"))
self.prosearchButton.setText(_translate("MainWindow", "Pro search"))

View File

@@ -0,0 +1,42 @@
from PyQt5 import QtCore, QtWidgets
import os
class Ui_MainBuild(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(161, 157)
MainWindow.setMinimumSize(QtCore.QSize(161, 157))
MainWindow.setMaximumSize(QtCore.QSize(161, 157))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(0, 0, 161, 111))
self.listWidget.setObjectName("listWidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(0, 110, 161, 23))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 161, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
for file in os.listdir(os.getcwd()):
if file == "MultiMate_Player.py":
self.listWidget.addItem(file)
elif file == "MultiMate_Player.pyw":
self.listWidget.addItem(file)
elif file == "MultiMate_Player.exe":
self.listWidget.addItem(file)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Choose main build"))
self.pushButton.setText(_translate("MainWindow", "Choose main build"))

View File

@@ -0,0 +1,215 @@
from PyQt5 import QtCore, QtGui, QtWidgets
import platform
import os
class Ui_MainWindow(QtWidgets.QMainWindow):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(801, 580)
MainWindow.setMinimumSize(QtCore.QSize(801, 580))
MainWindow.setMaximumSize(QtCore.QSize(801, 580))
MainWindow.setWindowIcon(QtGui.QIcon('resources/img/MultiMate.ico'))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.timeline = QtWidgets.QSlider(self.centralwidget)
self.timeline.setGeometry(QtCore.QRect(10, 490, 781, 22))
self.timeline.setPageStep(1)
self.timeline.setOrientation(QtCore.Qt.Horizontal)
self.timeline.setObjectName("timeline")
self.timeline.setMaximum(1000)
self.playpausebutton = QtWidgets.QPushButton(self.centralwidget)
self.playpausebutton.setEnabled(True)
self.playpausebutton.setGeometry(QtCore.QRect(390, 520, 40, 40))
font = QtGui.QFont()
font.setKerning(True)
self.playpausebutton.setFont(font)
self.playpausebutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
"")
self.playpausebutton.setText("")
self.playpausebutton.setObjectName("playpausebutton")
self.playpausePicture = QtWidgets.QLabel(self.centralwidget)
self.playpausePicture.setGeometry(QtCore.QRect(390, 520, 40, 40))
self.playpausePicture.setText("")
self.playpausePicture.setPixmap(QtGui.QPixmap("resources/img/MultiMate40x40.png"))
self.playpausePicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.playpausePicture.setObjectName("playpausePicture")
self.prevbutton = QtWidgets.QPushButton(self.centralwidget)
self.prevbutton.setEnabled(True)
self.prevbutton.setGeometry(QtCore.QRect(340, 520, 40, 40))
font = QtGui.QFont()
font.setKerning(True)
self.prevbutton.setFont(font)
self.prevbutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
"")
self.prevbutton.setText("")
self.prevbutton.setObjectName("prevbutton")
self.prevPicture = QtWidgets.QLabel(self.centralwidget)
self.prevPicture.setGeometry(QtCore.QRect(340, 520, 40, 40))
self.prevPicture.setText("")
self.prevPicture.setPixmap(QtGui.QPixmap("resources/img/prev.png"))
self.prevPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.prevPicture.setObjectName("prevPicture")
self.nextbutton = QtWidgets.QPushButton(self.centralwidget)
self.nextbutton.setEnabled(True)
self.nextbutton.setGeometry(QtCore.QRect(440, 520, 40, 40))
font = QtGui.QFont()
font.setKerning(True)
self.nextbutton.setFont(font)
self.nextbutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
"")
self.nextbutton.setText("")
self.nextbutton.setObjectName("nextbutton")
self.nextPicture = QtWidgets.QLabel(self.centralwidget)
self.nextPicture.setGeometry(QtCore.QRect(440, 520, 40, 40))
self.nextPicture.setText("")
self.nextPicture.setPixmap(QtGui.QPixmap("resources/img/next.png"))
self.nextPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.nextPicture.setObjectName("nextPicture")
self.speedBox = QtWidgets.QDoubleSpinBox(self.centralwidget)
self.speedBox.setGeometry(QtCore.QRect(10, 515, 62, 22))
self.speedBox.setDecimals(1)
self.speedBox.setProperty("value", 1.0)
self.speedBox.setSingleStep(0.2)
self.speedBox.setObjectName("speedBox")
self.timenow = QtWidgets.QTextEdit(self.centralwidget)
self.timenow.setGeometry(QtCore.QRect(713, 515, 81, 23))
self.timenow.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.timenow.setObjectName("timenow")
self.speedTextLabel = QtWidgets.QLabel(self.centralwidget)
self.speedTextLabel.setGeometry(QtCore.QRect(25, 536, 47, 13))
self.speedTextLabel.setObjectName("speedTextLabel")
self.timeTextLabel = QtWidgets.QLabel(self.centralwidget)
self.timeTextLabel.setGeometry(QtCore.QRect(740, 536, 47, 13))
self.timeTextLabel.setObjectName("timeTextLabel")
self.volumeDial = QtWidgets.QDial(self.centralwidget)
self.volumeDial.setGeometry(QtCore.QRect(719, 0, 81, 81))
self.volumeDial.setStyleSheet("")
self.volumeDial.setMinimum(1)
self.volumeDial.setMaximum(100)
self.volumeDial.setPageStep(1)
self.volumeDial.setProperty("value", 100)
self.volumeDial.setObjectName("volumeDial")
self.VolDialBG = QtWidgets.QLabel(self.centralwidget)
self.VolDialBG.setGeometry(QtCore.QRect(720, 0, 81, 81))
self.VolDialBG.setText("")
self.VolDialBG.setPixmap(QtGui.QPixmap("resources/img/MultiMate80x80.png"))
self.VolDialBG.setObjectName("VolDialBG")
self.playlistsComboBox = QtWidgets.QComboBox(self.centralwidget)
self.playlistsComboBox.setGeometry(QtCore.QRect(0, 0, 231, 22))
self.playlistsComboBox.setCurrentText("")
self.playlistsComboBox.setDuplicatesEnabled(True)
self.playlistsComboBox.setObjectName("playlistsComboBox")
for playlist in os.listdir(os.getcwd()):
self.playlistsComboBox.addItem(playlist)
self.nowPlaying = QtWidgets.QTextBrowser(self.centralwidget)
self.nowPlaying.setGeometry(QtCore.QRect(10, 460, 781, 23))
self.nowPlaying.setObjectName("nowPlaying")
self.openPlaylistButton = QtWidgets.QPushButton(self.centralwidget)
self.openPlaylistButton.setGeometry(QtCore.QRect(230, 0, 75, 23))
self.openPlaylistButton.setObjectName("openPlaylistButton")
self.songList = QtWidgets.QListWidget(self.centralwidget)
self.songList.setGeometry(QtCore.QRect(0, 43, 301, 411))
self.songList.setObjectName("songList")
self.TextAllSongs = QtWidgets.QTextEdit(self.centralwidget)
self.TextAllSongs.setGeometry(QtCore.QRect(0, 20, 301, 23))
self.TextAllSongs.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.TextAllSongs.setObjectName("TextAllSongs")
self.toFindName = QtWidgets.QTextEdit(self.centralwidget)
self.toFindName.setGeometry(QtCore.QRect(310, 0, 331, 23))
self.toFindName.setObjectName("toFindName")
self.findSongButton = QtWidgets.QPushButton(self.centralwidget)
self.findSongButton.setGeometry(QtCore.QRect(640, 0, 75, 23))
self.findSongButton.setObjectName("findSongButton")
self.foundSongs = QtWidgets.QComboBox(self.centralwidget)
self.foundSongs.setGeometry(QtCore.QRect(310, 30, 331, 22))
self.foundSongs.setObjectName("foundSongs")
self.addThisSongButton = QtWidgets.QPushButton(self.centralwidget)
self.addThisSongButton.setGeometry(QtCore.QRect(640, 30, 75, 23))
self.addThisSongButton.setObjectName("addThisSongButton")
self.mixButton = QtWidgets.QPushButton(self.centralwidget)
self.mixButton.setGeometry(QtCore.QRect(720, 90, 75, 41))
self.mixButton.setObjectName("mixButton")
self.playlistSettingsButton = QtWidgets.QPushButton(self.centralwidget)
self.playlistSettingsButton.setGeometry(QtCore.QRect(720, 140, 75, 51))
self.playlistSettingsButton.setObjectName("playlistSettingsButton")
self.settingsButton = QtWidgets.QPushButton(self.centralwidget)
self.settingsButton.setGeometry(QtCore.QRect(720, 200, 75, 45))
self.settingsButton.setObjectName("settingsButton")
self.extendedFunctButton = QtWidgets.QPushButton(self.centralwidget)
self.extendedFunctButton.setGeometry(QtCore.QRect(720, 260, 75, 45))
self.extendedFunctButton.setObjectName("extendedFunctButton")
if platform.system() == "Darwin": # for MacOS
self.videoframe = QtWidgets.QMacCocoaViewContainer(self.centralwidget)
else:
self.videoframe = QtWidgets.QFrame(self.centralwidget)
self.videoframe.setGeometry(QtCore.QRect(310, 60, 394, 394))
self.videoframe.setObjectName("videoframe")
self.timeline.raise_()
self.playpausePicture.raise_()
self.prevPicture.raise_()
self.nextPicture.raise_()
self.speedBox.raise_()
self.nextbutton.raise_()
self.prevbutton.raise_()
self.playpausebutton.raise_()
self.timenow.raise_()
self.speedTextLabel.raise_()
self.timeTextLabel.raise_()
self.VolDialBG.raise_()
self.volumeDial.raise_()
self.playlistsComboBox.raise_()
self.nowPlaying.raise_()
self.openPlaylistButton.raise_()
self.songList.raise_()
self.TextAllSongs.raise_()
self.toFindName.raise_()
self.findSongButton.raise_()
self.foundSongs.raise_()
self.addThisSongButton.raise_()
self.mixButton.raise_()
self.playlistSettingsButton.raise_()
self.videoframe.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 801, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.timer = QtCore.QTimer(self)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MultiMate Player"))
self.speedBox.setPrefix(_translate("MainWindow", "x"))
self.speedTextLabel.setText(_translate("MainWindow", "Speed"))
self.timeTextLabel.setText(_translate("MainWindow", "Time"))
self.nowPlaying.setPlaceholderText(_translate("MainWindow", "Choose playlist and open it..."))
self.openPlaylistButton.setText(_translate("MainWindow", "Open playlist"))
self.TextAllSongs.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"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Songs in playlist</p></body></html>"))
self.findSongButton.setText(_translate("MainWindow", "Find song"))
self.addThisSongButton.setText(_translate("MainWindow", "Add this song"))
self.mixButton.setText(_translate("MainWindow", "Mix"))
self.playlistSettingsButton.setText(_translate("MainWindow", "Playlist \nsettings"))
self.settingsButton.setText(_translate("MainWindow", "Settings"))
self.extendedFunctButton.setText(_translate("MainWindow", "Extended \n functions"))

View File

@@ -0,0 +1,36 @@
from PyQt5 import QtCore, QtWidgets
class Ui_PlaylistSettings(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(160, 97)
MainWindow.setMinimumSize(QtCore.QSize(160, 97))
MainWindow.setMaximumSize(QtCore.QSize(160, 97))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 160, 80))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.deletesongButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.deletesongButton.setObjectName("deletesongButton")
self.verticalLayout.addWidget(self.deletesongButton)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 160, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Playlist settings"))
self.deletesongButton.setText(_translate("MainWindow", "Manage songs in playlist"))

View File

@@ -0,0 +1,49 @@
from PyQt5 import QtCore, QtWidgets
class Ui_ProSearch(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(750, 600)
MainWindow.setMinimumSize(QtCore.QSize(750, 600))
MainWindow.setMaximumSize(QtCore.QSize(750, 600))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(0, 180, 750, 361))
self.listWidget.setObjectName("listWidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(160, 70, 440, 30))
self.lineEdit.setStyleSheet("border-radius:\n"
" 1 px;")
self.lineEdit.setReadOnly(False)
self.lineEdit.setObjectName("lineEdit")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(285, 20, 180, 31))
self.label.setObjectName("label")
self.searchButton = QtWidgets.QPushButton(self.centralwidget)
self.searchButton.setGeometry(QtCore.QRect(300, 110, 150, 30))
self.searchButton.setObjectName("searchButton")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(300, 550, 150, 31))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 750, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Pro search"))
self.lineEdit.setPlaceholderText(_translate("MainWindow", "Never gonna give you up"))
self.label.setText(_translate("MainWindow",
"<html><head/><body><p><span style=\" font-size:18pt;\">Advanced search</span></p></body></html>"))
self.searchButton.setText(_translate("MainWindow", "Search"))
self.pushButton.setText(_translate("MainWindow", "Add selected"))

View File

@@ -0,0 +1,39 @@
from PyQt5 import QtCore, QtWidgets
from resources.lib.config import config
class Ui_RPCsettings(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(160, 100)
MainWindow.setMinimumSize(QtCore.QSize(160, 100))
MainWindow.setMaximumSize(QtCore.QSize(160, 100))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(9, 0, 151, 80))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.ShowRPCcheckBox = QtWidgets.QCheckBox(self.verticalLayoutWidget)
self.ShowRPCcheckBox.setObjectName("ShowRPCcheckBox")
self.verticalLayout.addWidget(self.ShowRPCcheckBox)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 160, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.ShowRPCcheckBox.setChecked(config['showrpc'])
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "RPC settings"))
self.ShowRPCcheckBox.setText(_translate("MainWindow", "Show RPC"))

View File

@@ -0,0 +1,48 @@
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Settings(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(160, 100)
MainWindow.setMinimumSize(QtCore.QSize(160, 100))
MainWindow.setMaximumSize(QtCore.QSize(160, 100))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 160, 80))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.updateButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.updateButton.setObjectName("updateButton")
self.verticalLayout.addWidget(self.updateButton)
self.appBuildButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.appBuildButton.setObjectName("appBuildButton")
self.verticalLayout.addWidget(self.appBuildButton)
self.RPCButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.RPCButton.setObjectName("RPCButton")
self.verticalLayout.addWidget(self.RPCButton)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 160, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Settings"))
self.updateButton.setText(_translate("MainWindow", "Upgrade player"))
self.appBuildButton.setText(_translate("MainWindow", "Choose main build"))
self.RPCButton.setText(_translate("MainWindow", "Discord RPC settings"))

View File

@@ -0,0 +1,37 @@
from PyQt5 import QtCore, QtWidgets
class Ui_Updater(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(160, 97)
MainWindow.setMinimumSize(QtCore.QSize(160, 97))
MainWindow.setMaximumSize(QtCore.QSize(160, 97))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 160, 80))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.updateButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.updateButton.setObjectName("updateButton")
self.verticalLayout.addWidget(self.updateButton)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 160, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Updater"))
self.updateButton.setText(_translate("MainWindow", "Download newest"))

57
resources/gui/gui.py Normal file
View File

@@ -0,0 +1,57 @@
import sys
from PyQt5 import QtWidgets
from resources.gui.Ui_DelSongs import Ui_DelSongs
from resources.gui.Ui_ExtendedMenu import Ui_ExtendedMenu
from resources.gui.Ui_MainBuild import Ui_MainBuild
from resources.gui.Ui_MainWindow import Ui_MainWindow
from resources.gui.Ui_PlaylistSettings import Ui_PlaylistSettings
from resources.gui.Ui_ProSearch import Ui_ProSearch
from resources.gui.Ui_RPCsettings import Ui_RPCsettings
from resources.gui.Ui_Settings import Ui_Settings
from resources.gui.Ui_Updater import Ui_Updater
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
appPlSet = QtWidgets.QApplication(sys.argv)
MainWindowPlSet = QtWidgets.QMainWindow()
uiPlSet = Ui_PlaylistSettings()
uiPlSet.setupUi(MainWindowPlSet)
appDelS = QtWidgets.QApplication(sys.argv)
MainWindowDelS = QtWidgets.QMainWindow()
uiDelS = Ui_DelSongs()
uiDelS.setupUi(MainWindowDelS)
appSet = QtWidgets.QApplication(sys.argv)
MainWindowSet = QtWidgets.QMainWindow()
uiSet = Ui_Settings()
uiSet.setupUi(MainWindowSet)
appUpd = QtWidgets.QApplication(sys.argv)
MainWindowUpd = QtWidgets.QMainWindow()
uiUpd = Ui_Updater()
uiUpd.setupUi(MainWindowUpd)
appExt = QtWidgets.QApplication(sys.argv)
MainWindowExt = QtWidgets.QMainWindow()
uiExt = Ui_ExtendedMenu()
uiExt.setupUi(MainWindowExt)
appPSearch = QtWidgets.QApplication(sys.argv)
MainWindowPSearch = QtWidgets.QMainWindow()
uiPSearch = Ui_ProSearch()
uiPSearch.setupUi(MainWindowPSearch)
appRPCSet = QtWidgets.QApplication(sys.argv)
MainWindowRPCSet = QtWidgets.QMainWindow()
uiRPCSet = Ui_RPCsettings()
uiRPCSet.setupUi(MainWindowRPCSet)
appMainBuild = QtWidgets.QApplication(sys.argv)
MainWindowMainBuild = QtWidgets.QMainWindow()
uiMainBuild = Ui_MainBuild()
uiMainBuild.setupUi(MainWindowMainBuild)

32
resources/lib/config.py Normal file
View File

@@ -0,0 +1,32 @@
import os
import json
configfile = "resources/cfg.cfg"
if not os.path.isfile(configfile):
cfgwrite = open(configfile, 'w+')
empty = {}
json.dump(empty, cfgwrite, indent=3)
cfgwrite.close()
with open(configfile) as cfgread:
config = json.load(cfgread)
try:
config['mainbuild']
except:
if "MultiMate_Player.py" in os.listdir(os.getcwd()):
config['mainbuild'] = 'MultiMate_Player.py'
elif "MultiMate_Player.pyw" in os.listdir(os.getcwd()):
config['mainbuild'] = 'MultiMate_Player.pyw'
elif "MultiMate_Player.exe" in os.listdir(os.getcwd()):
config['mainbuild'] = 'MultiMate_Player.exe'
with open(configfile, 'w+') as cfgwrite:
json.dump(config, cfgwrite, indent=3)
try:
config['showrpc']
except:
config['showrpc'] = True
with open(configfile, 'w+') as cfgwrite:
json.dump(config, cfgwrite, indent=3)

5
resources/lib/console.py Normal file
View File

@@ -0,0 +1,5 @@
import os
def cls():
os.system('cls' if os.name == 'nt' else 'clear')

13
resources/lib/rpc.py Normal file
View File

@@ -0,0 +1,13 @@
from pypresence import Presence
from resources.lib.config import config
import time
rpc = Presence("896669007342633000")
try:
rpc.connect()
if config['showrpc']:
rpc.update(details="Just started app", state="Nothing is beeing listened...", large_image="multimate",
start=int(time.time()))
except:
pass

65
resources/lib/ytsearch.py Normal file
View File

@@ -0,0 +1,65 @@
import json
import requests
import urllib.parse
class YoutubeSearch:
def __init__(self, search_terms: str, max_results=None):
self.search_terms = search_terms
self.max_results = max_results
self.videos = self._search()
def _search(self):
encoded_search = urllib.parse.quote_plus(self.search_terms)
BASE_URL = "https://youtube.com"
url = f"{BASE_URL}/search?q={encoded_search}"
response = requests.get(url).text
while "ytInitialData" not in response:
response = requests.get(url).text
results = self._parse_html(response)
if self.max_results is not None and len(results) > self.max_results:
return results[: self.max_results]
return results
def _parse_html(self, response):
results = []
start = (
response.index("ytInitialData")
+ len("ytInitialData")
+ 3
)
end = response.index("};", start) + 1
json_str = response[start:end]
data = json.loads(json_str)
videos = data["contents"]["twoColumnSearchResultsRenderer"]["primaryContents"][
"sectionListRenderer"
]["contents"][0]["itemSectionRenderer"]["contents"]
for video in videos:
res = {}
if "videoRenderer" in video.keys():
video_data = video.get("videoRenderer", {})
res["id"] = video_data.get("videoId", None)
res["thumbnails"] = [thumb.get("url", None) for thumb in video_data.get("thumbnail", {}).get("thumbnails", [{}]) ]
res["title"] = video_data.get("title", {}).get("runs", [[{}]])[0].get("text", None)
res["long_desc"] = video_data.get("descriptionSnippet", {}).get("runs", [{}])[0].get("text", None)
res["channel"] = video_data.get("longBylineText", {}).get("runs", [[{}]])[0].get("text", None)
res["duration"] = video_data.get("lengthText", {}).get("simpleText", 0)
res["views"] = video_data.get("viewCountText", {}).get("simpleText", 0)
res["publish_time"] = video_data.get("publishedTimeText", {}).get("simpleText", 0)
res["url_suffix"] = video_data.get("navigationEndpoint", {}).get("commandMetadata", {}).get("webCommandMetadata", {}).get("url", None)
results.append(res)
return results
def to_dict(self, clear_cache=True):
result = self.videos
if clear_cache:
self.videos = ""
return result
def to_json(self, clear_cache=True):
result = json.dumps({"videos": self.videos})
if clear_cache:
self.videos = ""
return result