core/tags/album: Make quotes around artist name configurable
This allows me to search for `"release" AND artist` but also `release AND "artist"` Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
df3436f68a
commit
99b51f5257
|
@ -104,23 +104,26 @@ static bool __album_query_releaseid(struct album *album, Mb5Query *mb5,
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool __album_query_name(struct album *album, Mb5Query *mb5,
|
static bool __album_query_name(struct album *album, Mb5Query *mb5,
|
||||||
gchar *extra, bool quotes)
|
gchar *extra, bool quoted)
|
||||||
{
|
{
|
||||||
gchar *fmt = "release:%s%s%s%s";
|
gchar *fmt = "release:%s%s%s%s";
|
||||||
gchar *param = g_strdup_printf(fmt, quotes ? "\"" : "",
|
gchar *param = g_strdup_printf(fmt, quoted ? "\"" : "",
|
||||||
quotes ? album->al_name : album->al_lower,
|
quoted ? album->al_name : album->al_lower,
|
||||||
quotes ? "\"" : "",
|
quoted ? "\"" : "",
|
||||||
extra ? extra : "");
|
extra ? extra : "");
|
||||||
bool ret = __album_query_releaseid(album, mb5, param);
|
bool ret = __album_query_releaseid(album, mb5, param);
|
||||||
g_free(param);
|
g_free(param);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool __album_query_artist(struct album *album, Mb5Query *mb5)
|
static bool __album_query_artist(struct album *album, Mb5Query *mb5, bool quoted)
|
||||||
{
|
{
|
||||||
gchar *fmt = " AND artist:\"%s\"";
|
struct artist *artist = album->al_artist;
|
||||||
gchar *param = g_strdup_printf(fmt, album->al_artist->ar_lower);
|
gchar *fmt = " AND artist:%s%s%s";
|
||||||
bool ret = __album_query_name(album, mb5, param, false);
|
gchar *param = g_strdup_printf(fmt, quoted ? "\"" : "",
|
||||||
|
quoted ? artist->ar_name : artist->ar_lower,
|
||||||
|
quoted ? "\"" : "");
|
||||||
|
bool ret = __album_query_name(album, mb5, param, !quoted);
|
||||||
g_free(param);
|
g_free(param);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -144,7 +147,9 @@ static bool __album_fetch_artwork(struct album *album)
|
||||||
if (!mb5)
|
if (!mb5)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (album->al_artist && __album_query_artist(album, mb5))
|
if (album->al_artist && __album_query_artist(album, mb5, false))
|
||||||
|
goto out;
|
||||||
|
if (album->al_artist && __album_query_artist(album, mb5, true))
|
||||||
goto out;
|
goto out;
|
||||||
if (album->al_year && __album_query_year(album, mb5))
|
if (album->al_year && __album_query_year(album, mb5))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
Loading…
Reference in New Issue