diff --git a/weboob/applications/radioob/radioob.py b/weboob/applications/radioob/radioob.py index de68365f..88c4d9ed 100644 --- a/weboob/applications/radioob/radioob.py +++ b/weboob/applications/radioob/radioob.py @@ -301,16 +301,9 @@ class Radioob(ReplApplication): except (IndexError, ValueError): pass - m = re.match('^(\w+)\.(.*)', _id) + m = ICapAudio.get_object_method(_id) if m: - if m.group(1) == 'album': - return self.get_object(_id, 'get_album') - - elif m.group(1) == 'playlist': - return self.get_object(_id, 'get_playlist') - - else: - return self.get_object(_id, 'get_audio') + return self.get_object(_id, m) return self.get_object(_id, 'get_radio') diff --git a/weboob/capabilities/audio.py b/weboob/capabilities/audio.py index 823557ab..10262ec5 100644 --- a/weboob/capabilities/audio.py +++ b/weboob/capabilities/audio.py @@ -110,6 +110,20 @@ class ICapAudio(ICapFile): """ Audio file provider """ + + @classmethod + def get_object_method(cls, _id): + m = re.match('^(\w+)\.(.*)', _id) + if m: + if m.group(1) == 'album': + return 'get_album' + + elif m.group(1) == 'playlist': + return 'get_playlist' + + else: + return 'get_audio' + def search_audio(self, pattern, sortby=ICapFile.SEARCH_RELEVANCE): """ search for a audio file