char *mbid_lookup(const char *query, GLYR_DATA_TYPE type, GlyrQuery *qry) { char *result_mbid = NULL; if(query == NULL) { return result_mbid; } const char *lookup_entity = ""; const char *compre_entity = qry->artist; const char *find_entity = "name"; switch(type) { case GLYR_TYPE_TAG_ARTIST: lookup_entity = "artist"; compre_entity = qry->artist; break; case GLYR_TYPE_TAG_ALBUM: lookup_entity = "release"; compre_entity = qry->album; find_entity = "title"; break; case GLYR_TYPE_TAG_TITLE: lookup_entity = "work"; compre_entity = qry->title; break; default: lookup_entity = "artist"; compre_entity = qry->artist; find_entity = "name"; break; } char *lookup_url = g_strdup_printf(LOOKUP_QUERY, lookup_entity, lookup_entity, query); GlyrMemCache *parseable_data = download_single(lookup_url, qry, NULL); if(parseable_data != NULL) { result_mbid = mbid_parse_data(parseable_data, lookup_entity, find_entity, compre_entity, qry); DL_free(parseable_data); } g_free(lookup_url); return result_mbid; }
static GList * cover_coverartarchive_parse (cb_object * capo) { GList *result_list = NULL; char * mbid = mbid_parse_data (capo->cache, "release", "title", capo->s->album, capo->s); if (mbid != NULL) { char * full_url = g_strdup_printf (API_ROOT, mbid); if (full_url != NULL) { GlyrMemCache * json_data = download_single (full_url, capo->s, NULL); if (json_data != NULL) { result_list = parse_archive_json (json_data, capo->s); DL_free (json_data); } g_free (full_url); } } return result_list; }