Compare commits

..

No commits in common. "61e1fb119282a391c37ced9a85077c83e1e1b8a0" and "79f1a6afa31bc47aa747fe62797e26886b51be3a" have entirely different histories.

3 changed files with 15 additions and 45 deletions

View File

@ -1,28 +1,3 @@
from datetime import datetime, date
def get_relative_date(past_date, reference_date=None):
"""
Return relative date as string.
"""
if not reference_date:
reference_date = datetime.now().date()
# Check parameters
if type(past_date) != date:
return "get_relative_date() first parameter is not a date"
if type(reference_date) != date:
return "get_relative_date() second parameter is not a date"
if past_date > reference_date:
return "get_relative_date() past_date is after relative_date"
weeks, days = divmod((reference_date - past_date).days, 7)
if weeks == days == 0:
return "Today"
return f"{weeks} weeks, {days} days ago"
def ms_to_mmss(ms, decimals=0, negative=False):
if not ms:
return "-"

View File

@ -501,25 +501,29 @@ class Window(QMainWindow, Ui_MainWindow):
def song_info_search(self):
"""
Open browser tabs for Wikipedia, searching for
Open browser tabs for Wikipedia and Songfacts, searching for
the first that exists of:
- selected track
- next track
- current track
- next track
"""
title = self.visible_playlist_tab().get_selected_title()
if not title:
if self.next_track:
title = self.next_track.title
if not title:
if self.current_track:
title = self.current_track.title
if not title:
if self.next_track:
title = self.next_track.title
if title:
# Wikipedia
str = urllib.parse.quote_plus(title)
url = f"https://www.wikipedia.org/w/index.php?search={str}"
webbrowser.open(url, new=2)
# Songfacts
slug = slugify(title, replacements=([["'", ""]]))
url = f"https://www.songfacts.com/search/songs/{slug}"
webbrowser.open(url, new=2)
def stop(self):
"Stop playing immediately"

View File

@ -16,11 +16,8 @@ import os
from config import Config
from datetime import datetime, timedelta
from helpers import get_relative_date
from log import DEBUG, ERROR
from model import (
Notes, Playdates, Playlists, PlaylistTracks, Session, Settings, Tracks
)
from model import Notes, Playlists, PlaylistTracks, Session, Settings, Tracks
class PlaylistTab(QTableWidget):
@ -33,7 +30,7 @@ class PlaylistTab(QTableWidget):
COL_DURATION = 4
COL_START_TIME = 5
COL_END_TIME = 6
COL_LAST_PLAYED = 7
COL_PATH = 7
NOTE_COL_SPAN = 4
NOTE_ROW_SPAN = 1
@ -69,7 +66,7 @@ class PlaylistTab(QTableWidget):
self._set_column_widths()
self.setHorizontalHeaderLabels(["ID", "Lead", "Title", "Artist",
"Len", "Start", "End", "Last played"])
"Len", "Start", "End", "Path"])
self.setDragEnabled(True)
self.setAcceptDrops(True)
@ -212,7 +209,7 @@ class PlaylistTab(QTableWidget):
item = QTableWidgetItem()
self.setItem(row, self.COL_END_TIME, item)
item = QTableWidgetItem()
self.setItem(row, self.COL_LAST_PLAYED, item)
self.setItem(row, self.COL_PATH, item)
self._meta_set_note(row)
@ -258,14 +255,8 @@ class PlaylistTab(QTableWidget):
self.setItem(row, self.COL_ARTIST, item)
item = QTableWidgetItem(helpers.ms_to_mmss(track.duration))
self.setItem(row, self.COL_DURATION, item)
last_playdate = Playdates.last_played(session, track)
if last_playdate:
playdate_date = last_playdate.lastplayed.date()
last_played_str = get_relative_date(playdate_date)
else:
last_played_str = "Never"
item = QTableWidgetItem(last_played_str)
self.setItem(row, self.COL_LAST_PLAYED, item)
item = QTableWidgetItem(track.path)
self.setItem(row, self.COL_PATH, item)
# Add empty start time for now as background
# colour won't be set for columns without items
item = QTableWidgetItem()