Mercurial > hg > camir-aes2014
annotate core/magnatagatune/fm_corresponding_albums.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
rev | line source |
---|---|
wolffd@0 | 1 function [fmalbums, fmalbum_names] = fm_corresponding_albums(albums) |
wolffd@0 | 2 %fmalbums = fm_corresponding_albums(albums) |
wolffd@0 | 3 % |
wolffd@0 | 4 % searches last.fm for the artist given in a cell |
wolffd@0 | 5 % array of strings and saves the first hit into the output. |
wolffd@0 | 6 % |
wolffd@0 | 7 % fmalbum_names = {magnatagatune_artist, fm_artist}; |
wolffd@0 | 8 % |
wolffd@0 | 9 % returns -1 of no matches found |
wolffd@0 | 10 maxtry = 3; |
wolffd@0 | 11 |
wolffd@0 | 12 albums = unique(albums); |
wolffd@0 | 13 i = 1; |
wolffd@0 | 14 numtry = 0; |
wolffd@0 | 15 while i < numel(albums) |
wolffd@0 | 16 |
wolffd@0 | 17 % --- |
wolffd@0 | 18 % as sometimes this fails due to connection problems |
wolffd@0 | 19 % or other problems not yet identified, we TRY |
wolffd@0 | 20 % |
wolffd@0 | 21 % for fails, we may try one time again! |
wolffd@0 | 22 % --- |
wolffd@0 | 23 fprintf('%d percent: %s\n',floor(i*100/numel(albums)),char(albums{i})); |
wolffd@0 | 24 try |
wolffd@0 | 25 [tmp, tmpid] = fm_retrieve_album(char(albums{i})); |
wolffd@0 | 26 fmalbums(i,:) = {albums{i}, tmp{1}, tmpid{1}}; |
wolffd@0 | 27 catch err |
wolffd@0 | 28 |
wolffd@0 | 29 % no work :( |
wolffd@0 | 30 warning(err.message); |
wolffd@0 | 31 fmalbums{i} = '-1'; |
wolffd@0 | 32 |
wolffd@0 | 33 numtry = numtry + 1; |
wolffd@0 | 34 |
wolffd@0 | 35 % --- |
wolffd@0 | 36 % NOTE: we try again in case it fails for < maxtry times |
wolffd@0 | 37 % --- |
wolffd@0 | 38 if numtry < maxtry |
wolffd@0 | 39 i = i - 1; |
wolffd@0 | 40 else |
wolffd@0 | 41 numtry = 0; |
wolffd@0 | 42 end |
wolffd@0 | 43 end |
wolffd@0 | 44 i = i + 1; |
wolffd@0 | 45 end |
wolffd@0 | 46 |
wolffd@0 | 47 fmalbum_names = {'magnatagatune_album', 'fm_album', 'mbid'}; |