summaryrefslogtreecommitdiff
path: root/plugins/shotwell-publishing/shotwell-publishing.vala
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/shotwell-publishing/shotwell-publishing.vala')
-rw-r--r--plugins/shotwell-publishing/shotwell-publishing.vala39
1 files changed, 34 insertions, 5 deletions
diff --git a/plugins/shotwell-publishing/shotwell-publishing.vala b/plugins/shotwell-publishing/shotwell-publishing.vala
index bbd5ddb..dce5954 100644
--- a/plugins/shotwell-publishing/shotwell-publishing.vala
+++ b/plugins/shotwell-publishing/shotwell-publishing.vala
@@ -14,12 +14,41 @@ private class ShotwellPublishingCoreServices : Object, Spit.Module {
// module file directory
public ShotwellPublishingCoreServices(GLib.File module_file) {
GLib.File resource_directory = module_file.get_parent();
-
- pluggables += new FacebookService(resource_directory);
- pluggables += new PicasaService(resource_directory);
- pluggables += new FlickrService(resource_directory);
- pluggables += new YouTubeService(resource_directory);
+ var factory = Publishing.Authenticator.Factory.get_instance();
+ var authenicators = factory.get_available_authenticators();
+
+ // Prevent vala complaining when all authenticators from this plugin
+ // are disabled
+ debug("Looking for resources in %s", resource_directory.get_path());
+ debug("Found %d authenicators", authenicators.size);
+
+#if HAVE_FACEBOOK
+ if (authenicators.contains("facebook")) {
+ pluggables += new FacebookService(resource_directory);
+ }
+#endif
+
+#if HAVE_PICASA
+ if (authenicators.contains("picasa")) {
+ pluggables += new PicasaService(resource_directory);
+ }
+#endif
+
+#if HAVE_FLICKR
+ if (authenicators.contains("flickr")) {
+ pluggables += new FlickrService(resource_directory);
+ }
+#endif
+
+#if HAVE_YOUTUBE
+ if (authenicators.contains("youtube")) {
+ pluggables += new YouTubeService(resource_directory);
+ }
+#endif
+
+#if HAVE_PIWIGO
pluggables += new PiwigoService(resource_directory);
+#endif
}
public unowned string get_module_name() {