From 42eddac0e9f0216175fef223fd9b1023ed502a6e Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Tue, 12 Apr 2011 10:54:29 +0000 Subject: some quite significant changes to only receive/update recently-active torrents, if enabled. also use a hash table and tree row references for lookup. hopefully performance will be much better for people with large number of torrents. --- src/requests.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/requests.c') diff --git a/src/requests.c b/src/requests.c index d3edc3a..4c841e4 100644 --- a/src/requests.c +++ b/src/requests.c @@ -110,10 +110,18 @@ JsonNode *torrent_remove(JsonArray * array, gboolean removeData) return root; } -JsonNode *torrent_get(void) +JsonNode *torrent_get(gboolean recent) { JsonNode *root = base_request(METHOD_TORRENT_GET); + JsonObject *args = node_get_arguments(root); JsonArray *fields = json_array_new(); + + if (recent) { + JsonArray *ids = json_array_new(); + json_array_add_string_element(ids, FIELD_RECENTLY_ACTIVE); + json_object_set_array_member(args, PARAM_IDS, ids); + } + json_array_add_string_element(fields, FIELD_ETA); json_array_add_string_element(fields, FIELD_PEERS); json_array_add_string_element(fields, FIELD_FILES); @@ -151,7 +159,7 @@ JsonNode *torrent_get(void) json_array_add_string_element(fields, FIELD_ERRORSTR); json_array_add_string_element(fields, FIELD_WANTED); json_array_add_string_element(fields, FIELD_PRIORITIES); - json_object_set_array_member(node_get_arguments(root), + json_object_set_array_member(args, PARAM_FIELDS, fields); return root; } -- cgit v1.2.3