37166e146d
Try both readpicture and albumart, prefer the former
2024-05-17 10:18:54 +10:00
9d965567e6
Add methods for calling MPD's albumart command
2024-05-17 10:18:18 +10:00
8ad255856e
Extend cache TTL now external caches are supported
2024-05-14 16:07:43 +10:00
4a2ac29d30
Use more conventional Redis key separators for album cache
2024-05-14 15:09:20 +10:00
a471b77c55
Avoid crashing if cache URL has no namespace
2024-05-14 14:07:25 +10:00
f74bc9b6e5
Update README.md with caching info
2024-05-14 14:06:04 +10:00
55d82c72c3
Support MPD_NOW_PLAYABLE_CACHE setting (Redis or Memcached)
2024-05-14 13:25:13 +10:00
c7773bf324
Allow installing persistent cache drivers for album art
2024-05-14 13:24:21 +10:00
b2f28de116
Support newer PyObjC by explicitly converting Paths to str
2024-05-14 13:23:41 +10:00
9fca1d566e
Support MusicBrainz release track ID
...
I still don't totally understand when MusicBrainz uses a track ID and
when it uses a release track ID - they're both displayed as the
"MusicBrainz Track ID" tag in Picard, despite being treated as different
tags by everything else - but supporting both is easy enough.
2024-05-14 10:06:39 +10:00
5afeb32f9a
Update pdm.lock hashes for PDM 2.15.2
2024-05-09 12:51:40 +10:00
1caf4a184c
Cache 'no artwork', rather than repeatedly populating the cache with None
2024-05-09 12:12:54 +10:00
f7fc453c50
Don't crash if readpicture returns no image bytes
2024-05-09 12:10:22 +10:00
8b5912bed2
Add PyPI package version badge to readme
2024-03-07 15:53:11 +11:00
9b8988cf41
Fix path to mpd/logo.svg
2023-12-06 14:39:04 +11:00
54d2a6d415
Remove the temporary way to install from README.md
2023-12-06 14:33:33 +11:00
628ac9ae6a
Improve metadata for PyPI
2023-12-06 14:32:36 +11:00
06d9631445
Update README to note that seeking works :)
2023-12-06 13:55:10 +11:00
3372180a97
Enable seeking to specific points in the current song
2023-12-06 13:54:40 +11:00
04a976f6f3
Support persistent track IDs (64-bit ints)
2023-12-06 12:27:24 +11:00
28da4da69f
Pass through more simple media item info to MacOS
2023-12-06 12:02:13 +11:00
eb7509a4e0
Whoops, correctly call MpdStateListener.start()
2023-12-06 11:54:28 +11:00
9a05d33177
Add more MPNowPlaying properties to type stubs
2023-12-06 11:51:29 +11:00
095c099a38
Use the same environment variables as mpc does
2023-12-06 11:42:50 +11:00
9ff488d807
Make most song info optional, to support untagged music
2023-12-06 10:54:51 +11:00
88a38a1bbd
Update pipx install instructions
2023-12-06 10:52:14 +11:00
ffc399290f
Safely cache artwork for tracks without expected tags
2023-12-02 14:47:50 +11:00
6ac8034bbe
Load package version from Git tags
2023-12-02 13:31:56 +11:00
3eefc351f7
Include logo.svg in build process
2023-12-02 13:25:56 +11:00
ba7a46d8c5
Clarify install instructions
2023-11-27 18:05:40 +11:00
506b658782
Update README.md with documentation
2023-11-27 17:57:07 +11:00
73972cd17e
Stub the parts of PyObjC I'm using (whee)
2023-11-27 16:52:17 +11:00
5a3ddd570d
Fix some types in cocoa.py so they work with the stubs
2023-11-27 16:52:00 +11:00
a673f2ef90
Initial commit of source - working, but needs stubs for Cocoa
2023-11-27 15:49:33 +11:00
1e7fd270eb
Typehint the parts of python-mpd2 I'm using too
2023-11-27 15:48:52 +11:00
de884cbf72
Typehint the parts of aiocache I'm using
2023-11-27 15:48:18 +11:00
06cae0fc0a
Swap to aiocache because it's easier to use in custom ways
2023-11-27 15:39:53 +11:00
d4df24b7aa
Move library stubs to stubs/ for typeshed consistency
2023-11-27 10:56:34 +11:00
da90e64dac
Add CoreFoundationEventLoop directly to avoid pulling in ALL of PyObjC
2023-11-27 10:43:24 +11:00
dae3e49783
Initial commit: set up project and dependencies
2023-11-27 10:39:10 +11:00