gboolean grl_tmdb_source_plugin_init (GrlRegistry *registry, GrlPlugin *plugin, GList *configs) { GrlConfig *config; char *api_key; GRL_LOG_DOMAIN_INIT (tmdb_log_domain, "tmdb"); GRL_DEBUG ("grl_tmdb_source_plugin_init"); /* Initialize i18n */ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); if (!configs) { GRL_INFO ("No configuration provided. Will not load plugin"); return FALSE; } config = GRL_CONFIG (configs->data); api_key = grl_config_get_api_key (config); if (!api_key) { GRL_INFO ("Missing API Key, cannot load plugin"); return FALSE; } GRL_TMDB_METADATA_KEY_BACKDROP = register_metadata_key (registry, "tmdb-backdrop", "tmdb-backdrop", "A list of URLs for movie backdrops"); GRL_TMDB_METADATA_KEY_POSTER = register_metadata_key (registry, "tmdb-poster", "tmdb-poster", "A list of URLs for movie posters"); GRL_TMDB_METADATA_KEY_IMDB_ID = register_metadata_key (registry, "tmdb-imdb-id", "tmdb-imdb-id", "ID of this movie at imdb.org"); GRL_TMDB_METADATA_KEY_TMDB_ID = register_metadata_key (registry, "tmdb-id", "tmdb-id", "ID of this movie at tmdb.org"); GrlTmdbSource *source = grl_tmdb_source_new (api_key); grl_registry_register_source (registry, plugin, GRL_SOURCE (source), NULL); g_free (api_key); return TRUE; }
gboolean grl_local_metadata_source_plugin_init (GrlRegistry *registry, GrlPlugin *plugin, GList *configs) { guint config_count; gboolean guess_video = TRUE; GrlConfig *config; GRL_LOG_DOMAIN_INIT (local_metadata_log_domain, "local-metadata"); GRL_DEBUG ("grl_local_metadata_source_plugin_init"); /* Initialize i18n */ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); if (!configs) { GRL_INFO ("\tConfiguration not provided! Using default configuration."); } else { config_count = g_list_length (configs); if (config_count > 1) { GRL_INFO ("\tProvided %i configs, but will only use one", config_count); } config = GRL_CONFIG (configs->data); guess_video = grl_config_get_boolean (config, "guess-video"); } GrlLocalMetadataSource *source = grl_local_metadata_source_new (guess_video); grl_registry_register_source (registry, plugin, GRL_SOURCE (source), NULL); return TRUE; }
gboolean grl_tmdb_source_plugin_init (GrlRegistry *registry, GrlPlugin *plugin, GList *configs) { GrlConfig *config; char *api_key; GRL_LOG_DOMAIN_INIT (tmdb_log_domain, "tmdb"); GRL_DEBUG ("grl_tmdb_source_plugin_init"); /* Initialize i18n */ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); if (!configs) { GRL_INFO ("No configuration provided. Will not load plugin"); return FALSE; } config = GRL_CONFIG (configs->data); api_key = grl_config_get_api_key (config); if (!api_key) { GRL_INFO ("Missing API Key, cannot load plugin"); return FALSE; } GrlTmdbSource *source = grl_tmdb_source_new (api_key); grl_registry_register_source (registry, plugin, GRL_SOURCE (source), NULL); g_free (api_key); return TRUE; }
gboolean grl_vimeo_plugin_init (GrlRegistry *registry, GrlPlugin *plugin, GList *configs) { gchar *vimeo_key; gchar *vimeo_secret; gchar *format; GrlConfig *config; gint config_count; gboolean init_result = FALSE; GrlVimeoSource *source; GRL_LOG_DOMAIN_INIT (vimeo_log_domain, "vimeo"); GRL_DEBUG ("vimeo_plugin_init"); /* Initialize i18n */ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); if (!configs) { GRL_INFO ("Configuration not provided! Plugin not loaded"); return FALSE; } config_count = g_list_length (configs); if (config_count > 1) { GRL_INFO ("Provided %d configs, but will only use one", config_count); } config = GRL_CONFIG (configs->data); vimeo_key = grl_config_get_api_key (config); vimeo_secret = grl_config_get_api_secret (config); if (!vimeo_key || !vimeo_secret) { GRL_INFO ("Required API key or secret configuration not provided." " Plugin not loaded"); goto go_out; } source = grl_vimeo_source_new (); source->priv->vimeo = g_vimeo_new (vimeo_key, vimeo_secret); format = grl_config_get_string (config, "format"); if (format) { g_object_set (source->priv->vimeo, "quvi-format", format, NULL); g_free (format); } grl_registry_register_source (registry, plugin, GRL_SOURCE (source), NULL); init_result = TRUE; go_out: g_clear_pointer (&vimeo_key, g_free); g_clear_pointer (&vimeo_secret, g_free); return init_result; }