From bf990f7486cdc0d6b5000ad77b75456f589259fd Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Wed, 24 Mar 2021 21:15:04 +0000 Subject: [PATCH] Play selected track on Return --- app.py | 9 ++++++++- model.py | 11 +++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index 9357b18..b0d5b47 100755 --- a/app.py +++ b/app.py @@ -1,5 +1,6 @@ #!/usr/bin/python3 +import vlc import sys from PyQt5.QtCore import Qt @@ -88,7 +89,13 @@ class Window(QMainWindow, Ui_MainWindow): def play_selected(self): if self.playlist.selectionModel().hasSelection(): row = self.playlist.currentRow() - print(f"Play id={self.playlist.item(row, 0).text()}") + track_id = int(self.playlist.item(row, 0).text()) + # TODO: get_path may raise exception + track_path = Tracks.get_path(track_id) + if track_path: + player = vlc.MediaPlayer(track_path) + import ipdb; ipdb.set_trace() + player.play() def selectFile(self): dlg = QFileDialog() diff --git a/model.py b/model.py index 09b34f5..38ec1dc 100644 --- a/model.py +++ b/model.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 import logging +import os import sqlalchemy import pytiger.logging.config @@ -13,6 +14,7 @@ from sqlalchemy.orm import sessionmaker # "Constants" DISPLAY_SQL = False MYSQL_CONNECT = "mysql+mysqldb://songdb:songdb@localhost/songdb" +ROOT = "/home/kae/music" # Instantiate logging pytiger.logging.config.basic_config(stderr=False, level=logging.INFO) @@ -67,6 +69,15 @@ class Tracks(Base): session.add(track) return track + @staticmethod + def get_path(id): + try: + path = session.query(Tracks.path).filter(Tracks.id == id).one()[0] + return os.path.join(ROOT, path) + except NoResultFound: + print(f"Can't find track id {id}") + return None + @staticmethod def search_titles(text): return (