I've been playing with it and it just hasn't been stable for me. I'm
not Python proficient, so I can use all the help you give.
1. I can't figure our how to make it compile to run under Python 2.5
(however this is not a showstopper, I can live with a Python 2.4
dependency). /usr/bin/pytone always references python2.4, even when I
compile under install pytone under Python 2.5 with no Python 2.4
installed on the system.
2. More serious: pytone crashes when I add something to the playlist
with this songformat under [playlistwindow]: "songformat =
[%(playstarthours)02d:%(playstartminutes)02d:%(playstartseconds)02d]
%(genre)s - %(artist)s - %(title)s". It appears that the issue is that
here is no genre tag available in item.py, instead there is a "tags:
[u'G:<genre>']".
Genre is actually something I can't do without; I need to be able to
search on genre, then artist, then title. Follows the error output from
the crash:
$ pytone
/usr/lib/pytone/services/players/internal.py:25: RuntimeWarning: Python
C API version mismatch for module pcm: This Python has API version 1012,
module pcm has version 1013.
import pcm
/usr/lib/pytone/services/players/internal.py:32: RuntimeWarning: Python
C API version mismatch for module bufferedao: This Python has API
version 1012, module bufferedao has version 1013.
import bufferedao
Traceback (most recent call last):
File "/usr/lib/pytone/pytone.py", line 280, in ?
m.run()
File "/usr/lib/pytone/mainscreen.py", line 132, in run
self.channel.process()
File "/usr/lib/pytone/hub.py", line 167, in process
handler(item)
File "/usr/lib/pytone/playlist.py", line 118, in playlistchanged
self.win.update()
File "/usr/lib/pytone/playlistwin.py", line 194, in update
name = encoding.encode(item.song.format(self.songformat,
adddict=adddict))
File "/usr/lib/pytone/item.py", line 573, in format
return unicode(formatstring) % d
KeyError: u'genre'
Locals by frame, innermost last
Frame ? in /usr/lib/pytone/pytone.py at line 287
cwd = /usr/lib/pytone
sigtermhandler = <function sigtermhandler at 0xb792287c>
helper = <module 'helper' from
'/usr/lib/pytone/helper.py'>
curses = <module 'curses' from
'/usr/lib/python2.4/curses/__init__.pyc'>
locale = <module 'locale' from
'/usr/lib/python2.4/locale.pyc'>
stdscr = <_curses.curses window object at
0xb7e42420>
songdbname = main
plugins = []
songdbids = ['main']
mainscreen = <module 'mainscreen' from
'/usr/lib/pytone/mainscreen.py'>
playerids = ['main', None]
errors = <module 'errors' from
'/usr/lib/pytone/errors.py'>
log = <module 'log' from
'/usr/lib/pytone/log.py'>
cursessetup = <function cursessetup at 0xb792209c>
gettext = <module 'gettext' from
'/usr/lib/python2.4/gettext.pyc'>
imp = <module 'imp' (built-in)>
version = <module 'version' from
'/usr/lib/pytone/version.py'>
cursescleanup = <function cursescleanup at 0xb7922844>
config = <module 'config' from
'/usr/lib/pytone/config.py'>
events = <module 'events' from
'/usr/lib/pytone/events.py'>
hub = <module 'hub' from
'/usr/lib/pytone/hub.py'>
__builtins__ = <module '__builtin__' (built-in)>
__file__ = /usr/lib/pytone/pytone.py
sys = <module 'sys' (built-in)>
pluginpath = ['/home/ceverett/.pytone/plugins/',
'/usr/lib/pytone/plugins']
services = <module 'services' from
'/usr/lib/pytone/services/__init__.py'>
__name__ = __main__
network = <module 'network' from
'/usr/lib/pytone/network.py'>
e = [Errno 17] File exists:
'/home/ceverett/.pytone'
signal = <module 'signal' (built-in)>
userpluginpath = /home/ceverett/.pytone/plugins/
m = <mainscreen.mainscreen instance at
0xb7ba990c>
__doc__ = None
globalpluginpath = /usr/lib/pytone/plugins
locallocaledir = /usr/lib/pytone/../locale
os = <module 'os' from
'/usr/lib/python2.4/os.pyc'>
songdbid = main
songdbmanager = <songdbmanager(songdb manager service,
stopped)>
Frame run in /usr/lib/pytone/mainscreen.py at line 143
self = <mainscreen.mainscreen instance at
0xb7ba990c>
skipcount = 0
key = -1
Frame process in /usr/lib/pytone/hub.py at line 169
self = <hub.channel instance at 0xb7ba992c>
item = playlistchanged([playlistitem:
id=0],0/212,off,None)
handler = <bound method playlist.playlistchanged
of <playlist.playlist instance at 0xb7bad58c>>
timeout = None
subscribedevent = events.playlistchanged
block = False
Frame playlistchanged in /usr/lib/pytone/playlist.py at line 118
self = <playlist.playlist instance at
0xb7bad58c>
event = playlistchanged([playlistitem:
id=0],0/212,off,None)
Frame update in /usr/lib/pytone/playlistwin.py at line 194
attr = 0
adddict = {'playstartseconds': 10,
'playstarthours': 2, 'playstartminutes': 17}
i = 0
h = 2
autoplaymode =
m = 17
item = playlistitem: id=0
s = 10
self = <playlistwin.playlistwin instance at
0xb7bad54c>
Frame format in /usr/lib/pytone/item.py at line 573
self = song(1696) in main database
safe = False
d = {'rating': None, 'lyrics': [],
'date_updated': 1190704567.905508,
'trackcount': None, 'disknumber': None,
'is_vbr': None, 'year': 2005, 'tracknumber':
None, 'samplerate': 44100, 'size': 4906582,
'album': u'Jazz Hits Remixed',
'replaygain_album_gain': None, 'title':
u"Ain't Nobody's Business (NY C",
'diskcount': None, 'comments': [], 'type':
u'mp3', 'playstartminutes': 17,
'replaygain_album_peak': None, 'tags':
[u'G:Jazz'], 'seconds': 32, 'compilation': 0,
'skipcount': 0, 'playstarthours': 2,
'date_added': 1190698941.9357021, 'bitrate':
185071, 'album_artist': u'Billy Holiday',
'artist': u'Billy Holiday', 'url':
u"file://Cortinas/Jazz Hits Remixed/VA - Jazz
Hits Remixed - 2CD
[Electronic][2006][www.pctrecords.com]/Jazz
-- Billy Holiday -- Ain't Nobody's Business
(NY C.mp3", 'date_lastplayed': None,
'dates_played': [], 'bpm': None,
'replaygain_track_peak': None, 'length':
'3:32', 'replaygain_track_gain': None,
'playstartseconds': 10, 'playcount': 0,
'minutes': 3}
adddict = {'playstartseconds': 10,
'playstarthours': 2, 'playstartminutes': 17}
formatstring =
[%(playstarthours)02d:%(playstartminutes)02d:%(playstartseconds)02d]
%(genre)s - %(artist)s - %(title)s