diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-09-16 21:07:35 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-09-16 21:07:35 +0000 |
commit | 7a75a09a624767a7ec12517157f7ba99e0544ec9 (patch) | |
tree | 655720086a5f86395f8556ef3846959c85496fca | |
parent | de3dcd18a22c1522267df53f9b34a775289f7443 (diff) |
issue 85
-rw-r--r-- | src/protocol-constants.h | 1 | ||||
-rw-r--r-- | src/requests.c | 1 | ||||
-rw-r--r-- | src/torrent.c | 5 | ||||
-rw-r--r-- | src/torrent.h | 1 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 18 |
5 files changed, 16 insertions, 10 deletions
diff --git a/src/protocol-constants.h b/src/protocol-constants.h index ff9b7ed..33ae051 100644 --- a/src/protocol-constants.h +++ b/src/protocol-constants.h @@ -83,6 +83,7 @@ #define FIELD_PEERS_GETTING_FROM_US "peersGettingFromUs" #define FIELD_PEERS_CONNECTED "peersConnected" #define FIELD_QUEUE_POSITION "queuePosition" +#define FIELD_ACTIVITY_DATE "activityDate" #define FIELD_FILES_WANTED "files-wanted" #define FIELD_FILES_UNWANTED "files-unwanted" diff --git a/src/requests.c b/src/requests.c index cb8b863..5deb94e 100644 --- a/src/requests.c +++ b/src/requests.c @@ -191,6 +191,7 @@ JsonNode *torrent_get(gint64 id) json_array_add_string_element(fields, FIELD_SEED_RATIO_LIMIT); json_array_add_string_element(fields, FIELD_SEED_RATIO_MODE); json_array_add_string_element(fields, FIELD_PEER_LIMIT); + json_array_add_string_element(fields, FIELD_ACTIVITY_DATE); json_array_add_string_element(fields, FIELD_ERRORSTR); json_array_add_string_element(fields, FIELD_WANTED); json_array_add_string_element(fields, FIELD_PRIORITIES); diff --git a/src/torrent.c b/src/torrent.c index 4f8cdaa..784668f 100644 --- a/src/torrent.c +++ b/src/torrent.c @@ -177,6 +177,11 @@ gdouble torrent_get_recheck_progress(JsonObject * t) return json_double_to_progress(json_object_get_member(t, FIELD_RECHECK_PROGRESS)); } +gint64 torrent_get_activity_date(JsonObject *t) +{ + return json_object_get_int_member(t, FIELD_ACTIVITY_DATE); +} + guint32 torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status, gint64 downRate, gint64 upRate) { guint32 flags = 0; diff --git a/src/torrent.h b/src/torrent.h index 03e3b7c..9d82e28 100644 --- a/src/torrent.h +++ b/src/torrent.h @@ -85,6 +85,7 @@ gint64 torrent_get_seed_ratio_mode(JsonObject * t); gint64 torrent_get_peer_limit(JsonObject * t); gboolean torrent_has_tracker(JsonObject * t, GRegex * rx, gchar * search); gint64 torrent_get_queue_position(JsonObject *args); +gint64 torrent_get_activity_date(JsonObject *t); /* outer response object */ diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c index 4cd6cd0..b32858c 100644 --- a/src/trg-torrent-model.c +++ b/src/trg-torrent-model.c @@ -58,7 +58,7 @@ static void trg_torrent_model_dispose(GObject * object) } static void -update_torrent_iter(TrgClient *tc, TrgTorrentModel * model, gint64 rpcv, +update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, GtkTreeIter * iter, JsonObject * t, trg_torrent_model_update_stats * stats); @@ -229,7 +229,7 @@ void trg_torrent_model_remove_all(TrgTorrentModel *model) } static void -update_torrent_iter(TrgClient *tc, TrgTorrentModel * model, gint64 rpcv, +update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, GtkTreeIter * iter, JsonObject * t, trg_torrent_model_update_stats * stats) { @@ -295,7 +295,7 @@ update_torrent_iter(TrgClient *tc, TrgTorrentModel * model, gint64 rpcv, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_ID, id, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_JSON, t, -1); - gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPDATESERIAL, trg_client_get_serial(tc), -1); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPDATESERIAL, serial, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_ADDED, torrent_get_added_date(t), -1); @@ -318,6 +318,7 @@ update_torrent_iter(TrgClient *tc, TrgTorrentModel * model, gint64 rpcv, gtk_list_store_set(ls, iter, TORRENT_COLUMN_TRACKERHOST, firstTracker ? tracker_stats_get_host(firstTracker) : "", -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_QUEUE_POSITION, torrent_get_queue_position(t), -1); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_LASTACTIVE, torrent_get_activity_date(t), -1); #else gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, @@ -341,6 +342,7 @@ update_torrent_iter(TrgClient *tc, TrgTorrentModel * model, gint64 rpcv, TORRENT_COLUMN_PEERS_TO_US, torrent_get_peers_sending_to_us(t), TORRENT_COLUMN_PEERS_FROM_US, torrent_get_peers_getting_from_us(t), TORRENT_COLUMN_QUEUE_POSITION, torrent_get_queue_position(t), + TORRENT_COLUMN_LASTACTIVE, torrent_get_activity_date(t), TORRENT_COLUMN_RATIO, uploaded > 0 @@ -353,13 +355,9 @@ update_torrent_iter(TrgClient *tc, TrgTorrentModel * model, gint64 rpcv, TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t, TORRENT_COLUMN_TRACKERHOST, firstTracker ? tracker_stats_get_host(firstTracker) : "", - TORRENT_COLUMN_UPDATESERIAL, trg_client_get_serial(tc), -1); + TORRENT_COLUMN_UPDATESERIAL, serial, -1); #endif - if (newFlags & TORRENT_FLAG_ACTIVE) - gtk_list_store_set(ls, iter, TORRENT_COLUMN_LASTACTIVE, - trg_client_get_last_update_unix_time(tc), -1); - if (lastJson) json_object_unref(lastJson); @@ -482,7 +480,7 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, if (!result) { gtk_list_store_append(GTK_LIST_STORE(model), &iter); - update_torrent_iter(tc, model, rpcv, &iter, t, stats); + update_torrent_iter(model, rpcv, trg_client_get_serial(tc), &iter, t, stats); path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &iter); rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(model), path); @@ -500,7 +498,7 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, if (path) { if (gtk_tree_model_get_iter (GTK_TREE_MODEL(model), &iter, path)) { - update_torrent_iter(tc, model, rpcv, &iter, t, + update_torrent_iter(model, rpcv, trg_client_get_serial(tc), &iter, t, stats); } gtk_tree_path_free(path); |