Dev 140320221219
Moved logic to multiple files, changed file system
This commit is contained in:
File diff suppressed because it is too large
Load Diff
32
resources/gui/Ui_DelSongs.py
Normal file
32
resources/gui/Ui_DelSongs.py
Normal 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"))
|
||||||
36
resources/gui/Ui_ExtendedMenu.py
Normal file
36
resources/gui/Ui_ExtendedMenu.py
Normal 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"))
|
||||||
42
resources/gui/Ui_MainBuild.py
Normal file
42
resources/gui/Ui_MainBuild.py
Normal 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"))
|
||||||
215
resources/gui/Ui_MainWindow.py
Normal file
215
resources/gui/Ui_MainWindow.py
Normal 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"))
|
||||||
36
resources/gui/Ui_PlaylistSettings.py
Normal file
36
resources/gui/Ui_PlaylistSettings.py
Normal 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"))
|
||||||
49
resources/gui/Ui_ProSearch.py
Normal file
49
resources/gui/Ui_ProSearch.py
Normal 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"))
|
||||||
39
resources/gui/Ui_RPCsettings.py
Normal file
39
resources/gui/Ui_RPCsettings.py
Normal 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"))
|
||||||
48
resources/gui/Ui_Settings.py
Normal file
48
resources/gui/Ui_Settings.py
Normal 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"))
|
||||||
37
resources/gui/Ui_Updater.py
Normal file
37
resources/gui/Ui_Updater.py
Normal 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
57
resources/gui/gui.py
Normal 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
32
resources/lib/config.py
Normal 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
5
resources/lib/console.py
Normal 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
13
resources/lib/rpc.py
Normal 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
65
resources/lib/ytsearch.py
Normal 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
|
||||||
Reference in New Issue
Block a user