From 9de16c3f874ecc9eef0508f1bcd1b8cd54c9ae9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Amador=20Garc=C3=ADa?= Date: Wed, 19 Apr 2017 00:20:28 +0200 Subject: [PATCH 1/2] better unicode support --- jbripper.py | 18 +++++++++--------- jukebox.py | 10 +++++----- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/jbripper.py b/jbripper.py index a56c605..46f1507 100755 --- a/jbripper.py +++ b/jbripper.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# -*- coding: utf8 -*- +# -*- coding: utf-8 -*- from subprocess import call, Popen, PIPE from spotify import Link, Image @@ -26,9 +26,9 @@ def shell(cmdline): # execute shell commands (unicode support) def rip_init(session, track): global pipe, ripping, pcmfile, rawpcm num_track = "%02d" % (track.index(),) - mp3file = track.name()+".mp3" - pcmfile = track.name()+".pcm" - directory = os.getcwd() + "/" + track.artists()[0].name() + "/" + track.album().name() + "/" + mp3file = track.name().encode("utf-8")+".mp3" + pcmfile = track.name().encode("utf-8")+".pcm" + directory = os.getcwd() + "/" + track.artists()[0].name().encode("utf-8") + "/" + track.album().name().encode("utf-8") + "/" if not os.path.exists(directory): os.makedirs(directory) printstr("ripping " + mp3file + " ...") @@ -57,12 +57,12 @@ def rip(session, frames, frame_size, num_frames, sample_type, sample_rate, chann def rip_id3(session, track): # write ID3 data num_track = "%02d" % (track.index(),) - mp3file = track.name()+".mp3" - artist = track.artists()[0].name() - album = track.album().name() - title = track.name() + mp3file = track.name().encode("utf-8")+".mp3" + artist = track.artists()[0].name().encode("utf-8") + album = track.album().name().encode("utf-8") + title = track.name().encode("utf-8") year = track.album().year() - directory = os.getcwd() + "/" + track.artists()[0].name() + "/" + track.album().name() + "/" + directory = os.getcwd() + "/" + track.artists()[0].name().encode("utf-8") + "/" + track.album().name().encode("utf-8") + "/" # download cover image = session.image_create(track.album().cover()) diff --git a/jukebox.py b/jukebox.py index da246f5..c0b090e 100644 --- a/jukebox.py +++ b/jukebox.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# -*- coding: utf8 -*- +# -*- coding: utf-8 -*- import cmd import logging @@ -377,7 +377,7 @@ def load_track(self, track): self.stop() self.new_track_playing(track) self.session.load(track) - print "Loaded track: %s" % track.name() + print "Loaded track: %s" % track.name().encode("utf-8") def load(self, playlist, track): if self.playing: @@ -389,7 +389,7 @@ def load(self, playlist, track): spot_track = pl[track] self.new_track_playing(spot_track) self.session.load(spot_track) - print "Loading %s from %s" % (spot_track.name(), pl.name()) + print "Loading %s from %s" % (spot_track.name().encode("utf-8"), pl.name()) def load_playlist(self, playlist): if self.playing: @@ -412,7 +412,7 @@ def queue(self, playlist, track): if self.playing: self._queue.append((playlist, track)) else: - print 'Loading %s', track.name() + print 'Loading %s', track.name().encode("utf-8") self.load(playlist, track) self.play() @@ -458,7 +458,7 @@ def browse(self, link, callback): while not browser.is_loaded(): time.sleep(0.1) for track in browser: - print track.name() + print track.name().encode("utf-8") if link.type() == link.LINK_ARTIST: browser = ArtistBrowser(link.as_artist()) while not browser.is_loaded(): From d9437d4cc71b8cecb9fae2a3d16664025fb061a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Amador=20Garc=C3=ADa?= Date: Wed, 19 Apr 2017 11:36:58 +0200 Subject: [PATCH 2/2] try not to crash --- jbripper.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/jbripper.py b/jbripper.py index 46f1507..908d5b0 100755 --- a/jbripper.py +++ b/jbripper.py @@ -113,18 +113,21 @@ def run(self): # ripping loop session = self.ripper.session for track in itrack: + try: - self.ripper.load_track(track) + self.ripper.load_track(track) - rip_init(session, track) + rip_init(session, track) - self.ripper.play() + self.ripper.play() - end_of_track.wait() - end_of_track.clear() # TODO check if necessary + end_of_track.wait() + end_of_track.clear() # TODO check if necessary - rip_terminate(session, track) - rip_id3(session, track) + rip_terminate(session, track) + rip_id3(session, track) + except: + print('ERROR with a track') self.ripper.disconnect()