コード例 #1
0
ファイル: mbid_lookup.c プロジェクト: lejenome/glyr
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;
}
コード例 #2
0
ファイル: coverartarchive.c プロジェクト: WangCrystal/glyr
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;
}