[grilo-plugins] lua-factory: Add Musicbrainz Cover Art plugin



commit ccbb261638bbf14858de847a2838d5c9f2faf410
Author: Bastien Nocera <hadess hadess net>
Date:   Mon Apr 7 17:53:58 2014 +0200

    lua-factory: Add Musicbrainz Cover Art plugin
    
    https://bugzilla.gnome.org/show_bug.cgi?id=727766

 src/lua-factory/sources/Makefile.am         |    3 +-
 src/lua-factory/sources/grl-musicbrainz.lua |   66 +++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 1 deletions(-)
---
diff --git a/src/lua-factory/sources/Makefile.am b/src/lua-factory/sources/Makefile.am
index d7953b5..0c85c29 100644
--- a/src/lua-factory/sources/Makefile.am
+++ b/src/lua-factory/sources/Makefile.am
@@ -9,7 +9,8 @@ lua_sources_DATA =                                      \
        grl-metrolyrics.lua                             \
        grl-radiofrance.lua                             \
        grl-euronews.lua                                \
-       grl-guardianvideos.lua
+       grl-guardianvideos.lua                          \
+       grl-musicbrainz.lua
 
 lua_sourcesdir = $(datadir)/$(LUA_FACTORY_SOURCE_LOCATION)
 
diff --git a/src/lua-factory/sources/grl-musicbrainz.lua b/src/lua-factory/sources/grl-musicbrainz.lua
new file mode 100644
index 0000000..663bb3a
--- /dev/null
+++ b/src/lua-factory/sources/grl-musicbrainz.lua
@@ -0,0 +1,66 @@
+--[[
+ * Copyright (C) 2014 Victor Toso.
+ *
+ * Contact: Bastien Nocera <hadess hadess net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+--]]
+
+---------------------------
+-- Source initialization --
+---------------------------
+
+source = {
+  id = "grl-musicbrainz-coverart",
+  name = "Musicbrainz Cover Art",
+  description = "a source for coverart",
+  supported_keys = { "thumbnail" },
+  resolve_keys = {
+    ["type"] = "audio",
+    required = { "mb-album-id" },
+  },
+}
+
+MUSICBRAINZ_DEFAULT_QUERY = "http://coverartarchive.org/release/%s/front";
+
+---------------------------------
+-- Handlers of Grilo functions --
+---------------------------------
+
+function grl_source_resolve()
+  local url, req
+  local id
+
+  req = grl.get_media_keys()
+  id = req.mb_album_id
+  -- FIXME add more checks on MB ID too
+  if not req or not id or #id == 0 then
+    grl.callback()
+    return
+  end
+
+  -- Prepare artist and title strings to the url
+  media = {}
+
+  res = {}
+  res[#res + 1] = string.format(MUSICBRAINZ_DEFAULT_QUERY, id)
+  res[#res + 1] = string.format(MUSICBRAINZ_DEFAULT_QUERY .. '-500', id)
+  res[#res + 1] = string.format(MUSICBRAINZ_DEFAULT_QUERY .. '-250', id)
+
+  media.thumbnail = res
+  grl.callback(media, 0)
+end


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]