Development. Just some dev
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
|
import platform
|
||||||
import sys, subprocess, os
|
import sys, subprocess, os
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import json
|
import json
|
||||||
@@ -31,7 +32,13 @@ except:
|
|||||||
def cls():
|
def cls():
|
||||||
os.system('cls' if os.name == 'nt' else 'clear')
|
os.system('cls' if os.name == 'nt' else 'clear')
|
||||||
|
|
||||||
class Ui_MainWindow(object):
|
instance = vlc.Instance()
|
||||||
|
media = None
|
||||||
|
mediaplayer = instance.media_player_new()
|
||||||
|
is_paused = False
|
||||||
|
timeToSleep = 0
|
||||||
|
|
||||||
|
class Ui_MainWindow(QtWidgets.QMainWindow):
|
||||||
def setupUi(self, MainWindow):
|
def setupUi(self, MainWindow):
|
||||||
MainWindow.setObjectName("MainWindow")
|
MainWindow.setObjectName("MainWindow")
|
||||||
MainWindow.resize(801, 580)
|
MainWindow.resize(801, 580)
|
||||||
@@ -42,6 +49,8 @@ class Ui_MainWindow(object):
|
|||||||
self.timeline.setPageStep(1)
|
self.timeline.setPageStep(1)
|
||||||
self.timeline.setOrientation(QtCore.Qt.Horizontal)
|
self.timeline.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.timeline.setObjectName("timeline")
|
self.timeline.setObjectName("timeline")
|
||||||
|
self.timeline.setMaximum(1000)
|
||||||
|
|
||||||
self.playpausebutton = QtWidgets.QPushButton(self.centralwidget)
|
self.playpausebutton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
self.playpausebutton.setEnabled(True)
|
self.playpausebutton.setEnabled(True)
|
||||||
self.playpausebutton.setGeometry(QtCore.QRect(390, 520, 40, 40))
|
self.playpausebutton.setGeometry(QtCore.QRect(390, 520, 40, 40))
|
||||||
@@ -49,15 +58,33 @@ class Ui_MainWindow(object):
|
|||||||
font.setKerning(True)
|
font.setKerning(True)
|
||||||
self.playpausebutton.setFont(font)
|
self.playpausebutton.setFont(font)
|
||||||
self.playpausebutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
|
self.playpausebutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
|
||||||
"")
|
"")
|
||||||
self.playpausebutton.setText("")
|
self.playpausebutton.setText("")
|
||||||
self.playpausebutton.setObjectName("playpausebutton")
|
self.playpausebutton.setObjectName("playpausebutton")
|
||||||
self.playpausePicture = QtWidgets.QLabel(self.centralwidget)
|
self.playpausePicture = QtWidgets.QLabel(self.centralwidget)
|
||||||
self.playpausePicture.setGeometry(QtCore.QRect(390, 520, 40, 40))
|
self.playpausePicture.setGeometry(QtCore.QRect(390, 520, 40, 40))
|
||||||
self.playpausePicture.setText("")
|
self.playpausePicture.setText("")
|
||||||
self.playpausePicture.setPixmap(QtGui.QPixmap("D:\\RAZNOE\\prgrming\\PyQtUIs\\../../!программирование/PYSHARM projects/MultiMate Player/resources/MultiMate40x40.png"))
|
self.playpausePicture.setPixmap(QtGui.QPixmap("resources/MultiMate40x40.png"))
|
||||||
self.playpausePicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
self.playpausePicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
self.playpausePicture.setObjectName("playpausePicture")
|
self.playpausePicture.setObjectName("playpausePicture")
|
||||||
|
|
||||||
|
self.hardstopbutton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
|
self.hardstopbutton.setEnabled(True)
|
||||||
|
self.hardstopbutton.setGeometry(QtCore.QRect(290, 520, 40, 40))
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setKerning(True)
|
||||||
|
self.hardstopbutton.setFont(font)
|
||||||
|
self.hardstopbutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
|
||||||
|
"")
|
||||||
|
self.hardstopbutton.setText("")
|
||||||
|
self.hardstopbutton.setObjectName("hardstopbutton")
|
||||||
|
self.hardstopPicture = QtWidgets.QLabel(self.centralwidget)
|
||||||
|
self.hardstopPicture.setGeometry(QtCore.QRect(290, 520, 40, 40))
|
||||||
|
self.hardstopPicture.setText("")
|
||||||
|
self.hardstopPicture.setPixmap(QtGui.QPixmap("resources/hardstopbutton.png"))
|
||||||
|
self.hardstopPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
|
self.hardstopPicture.setObjectName("hardstopPicture")
|
||||||
|
|
||||||
self.prevbutton = QtWidgets.QPushButton(self.centralwidget)
|
self.prevbutton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
self.prevbutton.setEnabled(True)
|
self.prevbutton.setEnabled(True)
|
||||||
self.prevbutton.setGeometry(QtCore.QRect(340, 520, 40, 40))
|
self.prevbutton.setGeometry(QtCore.QRect(340, 520, 40, 40))
|
||||||
@@ -71,7 +98,7 @@ class Ui_MainWindow(object):
|
|||||||
self.prevPicture = QtWidgets.QLabel(self.centralwidget)
|
self.prevPicture = QtWidgets.QLabel(self.centralwidget)
|
||||||
self.prevPicture.setGeometry(QtCore.QRect(340, 520, 40, 40))
|
self.prevPicture.setGeometry(QtCore.QRect(340, 520, 40, 40))
|
||||||
self.prevPicture.setText("")
|
self.prevPicture.setText("")
|
||||||
self.prevPicture.setPixmap(QtGui.QPixmap("D:\\RAZNOE\\prgrming\\PyQtUIs\\../../!программирование/PYSHARM projects/MultiMate Player/resources/prev.png"))
|
self.prevPicture.setPixmap(QtGui.QPixmap("resources/prev.png"))
|
||||||
self.prevPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
self.prevPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
self.prevPicture.setObjectName("prevPicture")
|
self.prevPicture.setObjectName("prevPicture")
|
||||||
self.nextbutton = QtWidgets.QPushButton(self.centralwidget)
|
self.nextbutton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
@@ -87,9 +114,27 @@ class Ui_MainWindow(object):
|
|||||||
self.nextPicture = QtWidgets.QLabel(self.centralwidget)
|
self.nextPicture = QtWidgets.QLabel(self.centralwidget)
|
||||||
self.nextPicture.setGeometry(QtCore.QRect(440, 520, 40, 40))
|
self.nextPicture.setGeometry(QtCore.QRect(440, 520, 40, 40))
|
||||||
self.nextPicture.setText("")
|
self.nextPicture.setText("")
|
||||||
self.nextPicture.setPixmap(QtGui.QPixmap("D:\\RAZNOE\\prgrming\\PyQtUIs\\../../!программирование/PYSHARM projects/MultiMate Player/resources/next.png"))
|
self.nextPicture.setPixmap(QtGui.QPixmap("resources/next.png"))
|
||||||
self.nextPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
self.nextPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
self.nextPicture.setObjectName("nextPicture")
|
self.nextPicture.setObjectName("nextPicture")
|
||||||
|
|
||||||
|
self.hardplaybutton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
|
self.hardplaybutton.setEnabled(True)
|
||||||
|
self.hardplaybutton.setGeometry(QtCore.QRect(490, 520, 40, 40))
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setKerning(True)
|
||||||
|
self.hardplaybutton.setFont(font)
|
||||||
|
self.hardplaybutton.setStyleSheet("background-color: rgba(10, 0, 0, 0);\n"
|
||||||
|
"")
|
||||||
|
self.hardplaybutton.setText("")
|
||||||
|
self.hardplaybutton.setObjectName("hardplaybutton")
|
||||||
|
self.hardplayPicture = QtWidgets.QLabel(self.centralwidget)
|
||||||
|
self.hardplayPicture.setGeometry(QtCore.QRect(490, 520, 40, 40))
|
||||||
|
self.hardplayPicture.setText("")
|
||||||
|
self.hardplayPicture.setPixmap(QtGui.QPixmap("resources/hardplaybutton.png"))
|
||||||
|
self.hardplayPicture.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
|
self.hardplayPicture.setObjectName("hardplayPicture")
|
||||||
|
|
||||||
self.speedBox = QtWidgets.QDoubleSpinBox(self.centralwidget)
|
self.speedBox = QtWidgets.QDoubleSpinBox(self.centralwidget)
|
||||||
self.speedBox.setGeometry(QtCore.QRect(10, 515, 62, 22))
|
self.speedBox.setGeometry(QtCore.QRect(10, 515, 62, 22))
|
||||||
self.speedBox.setDecimals(1)
|
self.speedBox.setDecimals(1)
|
||||||
@@ -116,7 +161,7 @@ class Ui_MainWindow(object):
|
|||||||
self.VolDialBG = QtWidgets.QLabel(self.centralwidget)
|
self.VolDialBG = QtWidgets.QLabel(self.centralwidget)
|
||||||
self.VolDialBG.setGeometry(QtCore.QRect(720, 0, 81, 81))
|
self.VolDialBG.setGeometry(QtCore.QRect(720, 0, 81, 81))
|
||||||
self.VolDialBG.setText("")
|
self.VolDialBG.setText("")
|
||||||
self.VolDialBG.setPixmap(QtGui.QPixmap("D:\\RAZNOE\\prgrming\\PyQtUIs\\../../!программирование/PYSHARM projects/MultiMate Player/resources/MultiMate80x80.png"))
|
self.VolDialBG.setPixmap(QtGui.QPixmap("resources/MultiMate80x80.png"))
|
||||||
self.VolDialBG.setObjectName("VolDialBG")
|
self.VolDialBG.setObjectName("VolDialBG")
|
||||||
self.playlistsComboBox = QtWidgets.QComboBox(self.centralwidget)
|
self.playlistsComboBox = QtWidgets.QComboBox(self.centralwidget)
|
||||||
self.playlistsComboBox.setGeometry(QtCore.QRect(0, 0, 231, 22))
|
self.playlistsComboBox.setGeometry(QtCore.QRect(0, 0, 231, 22))
|
||||||
@@ -138,9 +183,9 @@ class Ui_MainWindow(object):
|
|||||||
self.TextAllSongs.setGeometry(QtCore.QRect(0, 20, 301, 23))
|
self.TextAllSongs.setGeometry(QtCore.QRect(0, 20, 301, 23))
|
||||||
self.TextAllSongs.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
self.TextAllSongs.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
|
||||||
self.TextAllSongs.setObjectName("TextAllSongs")
|
self.TextAllSongs.setObjectName("TextAllSongs")
|
||||||
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
|
self.toFindName = QtWidgets.QTextEdit(self.centralwidget)
|
||||||
self.textEdit.setGeometry(QtCore.QRect(310, 0, 331, 23))
|
self.toFindName.setGeometry(QtCore.QRect(310, 0, 331, 23))
|
||||||
self.textEdit.setObjectName("textEdit")
|
self.toFindName.setObjectName("toFindName")
|
||||||
self.findSongButton = QtWidgets.QPushButton(self.centralwidget)
|
self.findSongButton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
self.findSongButton.setGeometry(QtCore.QRect(640, 0, 75, 23))
|
self.findSongButton.setGeometry(QtCore.QRect(640, 0, 75, 23))
|
||||||
self.findSongButton.setObjectName("findSongButton")
|
self.findSongButton.setObjectName("findSongButton")
|
||||||
@@ -156,9 +201,12 @@ class Ui_MainWindow(object):
|
|||||||
self.restartPlayerButton = QtWidgets.QPushButton(self.centralwidget)
|
self.restartPlayerButton = QtWidgets.QPushButton(self.centralwidget)
|
||||||
self.restartPlayerButton.setGeometry(QtCore.QRect(720, 140, 75, 51))
|
self.restartPlayerButton.setGeometry(QtCore.QRect(720, 140, 75, 51))
|
||||||
self.restartPlayerButton.setObjectName("restartPlayerButton")
|
self.restartPlayerButton.setObjectName("restartPlayerButton")
|
||||||
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
|
if platform.system() == "Darwin": # for MacOS
|
||||||
self.textBrowser.setGeometry(QtCore.QRect(310, 70, 401, 381))
|
self.videoframe = QtWidgets.QMacCocoaViewContainer(self.centralwidget)
|
||||||
self.textBrowser.setObjectName("textBrowser")
|
else:
|
||||||
|
self.videoframe = QtWidgets.QFrame(self.centralwidget)
|
||||||
|
self.videoframe.setGeometry(QtCore.QRect(310, 70, 401, 381))
|
||||||
|
self.videoframe.setObjectName("videoframe")
|
||||||
self.timeline.raise_()
|
self.timeline.raise_()
|
||||||
self.playpausePicture.raise_()
|
self.playpausePicture.raise_()
|
||||||
self.prevPicture.raise_()
|
self.prevPicture.raise_()
|
||||||
@@ -177,13 +225,15 @@ class Ui_MainWindow(object):
|
|||||||
self.openPlaylistButton.raise_()
|
self.openPlaylistButton.raise_()
|
||||||
self.songList.raise_()
|
self.songList.raise_()
|
||||||
self.TextAllSongs.raise_()
|
self.TextAllSongs.raise_()
|
||||||
self.textEdit.raise_()
|
self.toFindName.raise_()
|
||||||
self.findSongButton.raise_()
|
self.findSongButton.raise_()
|
||||||
self.foundSongs.raise_()
|
self.foundSongs.raise_()
|
||||||
self.addThisSongButton.raise_()
|
self.addThisSongButton.raise_()
|
||||||
self.mixButton.raise_()
|
self.mixButton.raise_()
|
||||||
self.restartPlayerButton.raise_()
|
self.restartPlayerButton.raise_()
|
||||||
self.textBrowser.raise_()
|
self.videoframe.raise_()
|
||||||
|
self.hardplaybutton.raise_()
|
||||||
|
self.hardstopbutton.raise_()
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 801, 21))
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 801, 21))
|
||||||
@@ -196,6 +246,17 @@ class Ui_MainWindow(object):
|
|||||||
self.retranslateUi(MainWindow)
|
self.retranslateUi(MainWindow)
|
||||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||||
|
|
||||||
|
self.timer = QtCore.QTimer(self)
|
||||||
|
self.timer.timeout.connect(self.update_ui)
|
||||||
|
|
||||||
|
def update_ui(self):
|
||||||
|
global mediaplayer
|
||||||
|
media_pos = int(mediaplayer.get_position() * 1000)
|
||||||
|
self.timeline.setValue(media_pos)
|
||||||
|
|
||||||
|
if not mediaplayer.is_playing():
|
||||||
|
self.timer.stop()
|
||||||
|
|
||||||
def retranslateUi(self, MainWindow):
|
def retranslateUi(self, MainWindow):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
||||||
@@ -216,7 +277,6 @@ class Ui_MainWindow(object):
|
|||||||
self.restartPlayerButton.setText(_translate("MainWindow", "(Re)start \n"
|
self.restartPlayerButton.setText(_translate("MainWindow", "(Re)start \n"
|
||||||
"player \n"
|
"player \n"
|
||||||
"cycle"))
|
"cycle"))
|
||||||
self.textBrowser.setPlaceholderText(_translate("MainWindow", "Logs"))
|
|
||||||
|
|
||||||
class YoutubeSearch:
|
class YoutubeSearch:
|
||||||
def __init__(self, search_terms: str, max_results=None):
|
def __init__(self, search_terms: str, max_results=None):
|
||||||
@@ -311,22 +371,50 @@ def addtopl(playlist, plname):
|
|||||||
json.dump(playlist, playlistfile, indent=3, ensure_ascii=False)
|
json.dump(playlist, playlistfile, indent=3, ensure_ascii=False)
|
||||||
playlistfile.close()
|
playlistfile.close()
|
||||||
|
|
||||||
|
def set_position():
|
||||||
|
global instance
|
||||||
|
global media
|
||||||
|
global mediaplayer
|
||||||
|
global is_paused
|
||||||
|
ui.timer.stop()
|
||||||
|
pos = ui.timeline.value()
|
||||||
|
mediaplayer.set_position(pos / 1000.0)
|
||||||
|
ui.timer.start(100)
|
||||||
|
|
||||||
def playmusic(url, name, author):
|
def playmusic(url, name, author):
|
||||||
video = pafy.new(url)
|
video = pafy.new(url)
|
||||||
best = video.getbestaudio()
|
best = video.getbest()
|
||||||
playurl = best.url
|
playurl = best.url
|
||||||
# playurl = url
|
|
||||||
|
|
||||||
mediatoplay = vlc.MediaPlayer(playurl)
|
global instance
|
||||||
mediatoplay.audio_set_volume(100)
|
global media
|
||||||
mediatoplay.play()
|
global mediaplayer
|
||||||
|
global is_paused
|
||||||
|
|
||||||
|
media = instance.media_new(playurl)
|
||||||
|
mediaplayer.set_media(media)
|
||||||
|
|
||||||
|
if platform.system() == "Linux": # for Linux using the X Server
|
||||||
|
mediaplayer.set_xwindow(int(ui.videoframe.winId()))
|
||||||
|
elif platform.system() == "Windows": # for Windows
|
||||||
|
mediaplayer.set_hwnd(int(ui.videoframe.winId()))
|
||||||
|
elif platform.system() == "Darwin": # for MacOS
|
||||||
|
mediaplayer.set_nsobject(int(ui.videoframe.winId()))
|
||||||
|
|
||||||
|
if mediaplayer.is_playing():
|
||||||
|
mediaplayer.pause()
|
||||||
|
is_paused = True
|
||||||
|
ui.timer.stop()
|
||||||
|
else:
|
||||||
|
mediaplayer.play()
|
||||||
|
ui.timer.start(100)
|
||||||
|
is_paused = False
|
||||||
|
|
||||||
|
mediaplayer.audio_set_volume(100)
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
length = mediatoplay.get_length() / 1000
|
timeToSleep = mediaplayer.get_length() / 1000
|
||||||
cls()
|
cls()
|
||||||
print("Playing " + author + " - " + name)
|
print("Playing " + author + " - " + name)
|
||||||
time.sleep(length)
|
|
||||||
mediatoplay.stop()
|
|
||||||
|
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
MainWindow = QtWidgets.QMainWindow()
|
MainWindow = QtWidgets.QMainWindow()
|
||||||
@@ -343,14 +431,16 @@ def getplaylist():
|
|||||||
|
|
||||||
# addtopl(playlist, 'play.list')
|
# addtopl(playlist, 'play.list')
|
||||||
|
|
||||||
for item in list(playlist):
|
def playallpl():
|
||||||
|
for item in list(playlist):
|
||||||
playmusic(playlist[item]['url'], playlist[item]['name'], playlist[item]['author'])
|
playmusic(playlist[item]['url'], playlist[item]['name'], playlist[item]['author'])
|
||||||
|
|
||||||
|
|
||||||
MainWindow.show()
|
MainWindow.show()
|
||||||
|
|
||||||
ui.openPlaylistButton.clicked.connect(getplaylist)
|
ui.openPlaylistButton.clicked.connect(getplaylist)
|
||||||
|
ui.hardplaybutton.clicked.connect(playallpl)
|
||||||
|
ui.timeline.sliderMoved.connect(set_position)
|
||||||
|
ui.timeline.sliderPressed.connect(set_position)
|
||||||
|
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user