[gnome-software/wip/rancell/ubuntu-ratings-3-18] Drop set_rating support - will be done properly in the review branch



commit c46fe3ea66fd6e8057f2b4c05b196e33365925d7
Author: Robert Ancell <robert ancell canonical com>
Date:   Wed Jan 13 19:48:43 2016 +1300

    Drop set_rating support - will be done properly in the review branch

 src/plugins/gs-plugin-ubuntu-ratings.c |  167 +-------------------------------
 1 files changed, 3 insertions(+), 164 deletions(-)
---
diff --git a/src/plugins/gs-plugin-ubuntu-ratings.c b/src/plugins/gs-plugin-ubuntu-ratings.c
index 773588f..af9337b 100644
--- a/src/plugins/gs-plugin-ubuntu-ratings.c
+++ b/src/plugins/gs-plugin-ubuntu-ratings.c
@@ -25,7 +25,6 @@
 #include <libsoup/soup.h>
 #include <sqlite3.h>
 #include <json-glib/json-glib.h>
-#include <oauth.h>
 
 #include <gs-plugin.h>
 #include <gs-utils.h>
@@ -99,7 +98,7 @@ setup_networking (GsPlugin *plugin, GError **error)
        if (plugin->priv->session != NULL)
                return TRUE;
 
-       /* set up a session */
+       /* Set up a session */
        plugin->priv->session = soup_session_new_with_options (SOUP_SESSION_USER_AGENT,
                                                               "gnome-software",
                                                               NULL);
@@ -114,174 +113,14 @@ setup_networking (GsPlugin *plugin, GError **error)
        return TRUE;
 }
 
-static void
-add_string_member (JsonBuilder *builder, const gchar *name, const gchar *value)
-{
-       json_builder_set_member_name (builder, name);
-       json_builder_add_string_value (builder, value);
-}
-
-static void
-add_int_member (JsonBuilder *builder, const gchar *name, gint64 value)
-{
-       json_builder_set_member_name (builder, name);
-       json_builder_add_int_value (builder, value);
-}
-
-static void
-sign_message (SoupMessage *message, OAuthMethod method,
-              const gchar *oauth_consumer_key, const gchar *oauth_consumer_secret,
-              const gchar *oauth_token, const gchar *oauth_token_secret)
-{
-       g_autofree gchar *url = NULL, *oauth_authorization_parameters = NULL, *authorization_text = NULL;
-       gchar **url_parameters = NULL;
-       int url_parameters_length;
-
-       url = soup_uri_to_string (soup_message_get_uri (message), FALSE);
-
-       url_parameters_length = oauth_split_url_parameters(url, &url_parameters);
-       oauth_sign_array2_process (&url_parameters_length, &url_parameters,
-                                  NULL,
-                                  method,
-                                  message->method,
-                                  oauth_consumer_key, oauth_consumer_secret,
-                                  oauth_token, oauth_token_secret);
-       oauth_authorization_parameters = oauth_serialize_url_sep (url_parameters_length, 1, url_parameters, 
", ", 6);
-       oauth_free_array (&url_parameters_length, &url_parameters);
-       authorization_text = g_strdup_printf ("OAuth realm=\"Ratings and Reviews\", %s", 
oauth_authorization_parameters);
-       soup_message_headers_append (message->request_headers, "Authorization", authorization_text);
-}
-
-static void
-set_request (SoupMessage *message, JsonBuilder *builder)
-{
-       JsonGenerator *generator = json_generator_new ();
-       json_generator_set_root (generator, json_builder_get_root (builder));
-       gsize length;
-       gchar *data = json_generator_to_data (generator, &length);
-       soup_message_set_request (message, "application/json", SOUP_MEMORY_TAKE, data, length);
-       g_object_unref (generator);
-}
-
-static gboolean
-set_package_rating (GsPlugin *plugin,
-                    GsApp *app,
-                    const gchar *package_name,
-                    GError **error)
-{
-       g_autofree gchar *uri = NULL, *path = NULL;
-       g_autofree gchar *oauth_consumer_key = NULL, *oauth_consumer_secret = NULL, *oauth_token = NULL, 
*oauth_token_secret = NULL;
-       const gchar *review_text = NULL;
-       g_autoptr(GKeyFile) config = NULL;
-       gint rating, n_stars = 0;
-       g_autoptr(SoupMessage) msg = NULL;
-       JsonBuilder *builder;
-       guint status_code;
-
-       /* Ubuntu reviews require a summary and description - just make one up for now */
-       rating = gs_app_get_rating (app);
-       if (rating > 80) {
-               review_text = "★★★★★";
-               n_stars = 5;
-       }
-       else if (rating > 60) {
-               review_text = "★★★★";
-               n_stars = 4;
-       }
-       else if (rating > 40) {
-               review_text = "★★★";
-               n_stars = 3;
-       }
-       else if (rating > 20) {
-               review_text = "★★";
-               n_stars = 2;
-       }
-       else {
-               review_text = "★";
-               n_stars = 1;
-       }
-
-       /* Load OAuth token - FIXME needs to integrate with GNOME Online Accounts / libaccounts */
-       config = g_key_file_new ();
-       path = g_build_filename (g_get_user_config_dir (), "gnome-software", "ubuntu-one-credentials", NULL);
-       g_key_file_load_from_file (config, path, G_KEY_FILE_NONE, NULL);
-       oauth_consumer_key = g_key_file_get_string (config, "gnome-software", "consumer-key", NULL);
-       oauth_consumer_secret = g_key_file_get_string (config, "gnome-software", "consumer-secret", NULL);
-       oauth_token = g_key_file_get_string (config, "gnome-software", "token", NULL);
-       oauth_token_secret = g_key_file_get_string (config, "gnome-software", "token-secret", NULL);
-       if (!oauth_consumer_key || !oauth_consumer_secret || !oauth_token || !oauth_token_secret) {
-               g_set_error (error,
-                            GS_PLUGIN_ERROR,
-                            GS_PLUGIN_ERROR_FAILED,
-                            "%s", "No Ubuntu One OAuth tokens");
-               return FALSE;
-       }
-
-       uri = g_strdup_printf ("%s/api/1.0/reviews/", UBUNTU_REVIEWS_SERVER);
-       msg = soup_message_new (SOUP_METHOD_POST, uri);
-       builder = json_builder_new ();
-       json_builder_begin_object (builder);
-       add_string_member (builder, "package_name", package_name);
-       add_string_member (builder, "summary", review_text);
-       add_string_member (builder, "review_text", review_text);
-       add_string_member (builder, "language", "en"); // FIXME
-       add_string_member (builder, "origin", gs_app_get_origin (app));
-       add_string_member (builder, "distroseries", "xenial"); // FIXME
-       add_string_member (builder, "version", gs_app_get_version (app));
-       add_int_member (builder, "rating", n_stars);
-       add_string_member (builder, "arch_tag", "amd64"); // FIXME
-       json_builder_end_object (builder);
-       set_request (msg, builder);
-       g_object_unref (builder);
-       sign_message (msg, OA_HMAC, oauth_consumer_key, oauth_consumer_secret, oauth_token, 
oauth_token_secret);
-
-       status_code = soup_session_send_message (plugin->priv->session, msg);
-       if (status_code != SOUP_STATUS_OK) {
-               g_set_error (error,
-                            GS_PLUGIN_ERROR,
-                            GS_PLUGIN_ERROR_FAILED,
-                            "Failed to post review: %s",
-                            soup_status_get_phrase (status_code));
-               return FALSE;
-       }
-
-       return TRUE;
-}
-
 gboolean
 gs_plugin_app_set_rating (GsPlugin *plugin,
                           GsApp *app,
                           GCancellable *cancellable,
                           GError **error)
 {
-       GPtrArray *sources;
-       const gchar *package_name;
-       gboolean ret;
-       guint i;
-       g_autoptr(SoupMessage) msg = NULL;
-
-       /* get the package name */
-       sources = gs_app_get_sources (app);
-       if (sources->len == 0) {
-               g_warning ("no package name for %s", gs_app_get_id (app));
-               return TRUE;
-       }
-
-       if (!setup_networking (plugin, error))
-               return FALSE;
-
-       /* set rating for each package */
-       for (i = 0; i < sources->len; i++) {
-               package_name = g_ptr_array_index (sources, i);
-               ret = set_package_rating (plugin,
-                                         app,
-                                         package_name,
-                                         error);
-               if (!ret)
-                       return FALSE;
-       }
-
-       return TRUE;
+        /* We don't do ratings - needs a full review instead */
+       return FALSE;
 }
 
 static gint


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