From 73393bfab65515c68159a649c10856659b5ac016 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 15 Jul 2020 09:28:51 +0200 Subject: Use transmission rpc, fixes rss torrent name --- src/rss.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'src/rss.c') diff --git a/src/rss.c b/src/rss.c index ebbb1cf..005bd03 100644 --- a/src/rss.c +++ b/src/rss.c @@ -364,7 +364,7 @@ static int rss_update_latest(char *rss_tracked_dir, TrackedRss *tracked_rss, con init_json_value_str(&title_json_value, &title_json_value_str); struct json_string_s filename_json_key; - create_json_string(&filename_json_key, "title", 5); + create_json_string(&filename_json_key, "filename", 8); struct json_string_s filename_json_value_str; create_json_string(&filename_json_value_str, filename, strlen(filename)); @@ -473,37 +473,31 @@ static int rss_update_latest(char *rss_tracked_dir, TrackedRss *tracked_rss, con return result; } -static int add_torrents_in_reverse(Buffer *download_items_buffer, TrackedRss *tracked_rss, char *rss_tracked_dir) { +static int add_torrents_in_reverse(TransmissionSession *transmission_session, Buffer *download_items_buffer, TrackedRss *tracked_rss, char *rss_tracked_dir) { DownloadItemsData *download_items_it = buffer_end(download_items_buffer); DownloadItemsData *download_items_end = buffer_begin(download_items_buffer); download_items_it--; download_items_end--; for(; download_items_it != download_items_end; --download_items_it) { - if(transmission_add_torrent(download_items_it->link) != 0) { + char *torrent_name; + if(transmission_add_torrent(transmission_session, download_items_it->link, &torrent_name) != 0) { fprintf(stderr, "Failed to add torrent: %s\n", download_items_it->link); return 1; } - /* TODO: Verify if the last torrent is immediately accessible or if it gets an old torrent... */ - int id; - float percentage_done; - char torrent_name[256]; - if(transmission_get_last_added_torrent(&id, &percentage_done, torrent_name) != 0) { - fprintf(stderr, "Failed to get added torrent name for torrent: %s\n", download_items_it->link); - return 1; - } - if(rss_update_latest(rss_tracked_dir, tracked_rss, download_items_it->title, download_items_it->link, torrent_name) != 0) { + free(torrent_name); fprintf(stderr, "Failed to update rss tracked data for %s\n", download_items_it->title); return 1; } + free(torrent_name); /* Show notification that download has started? */ } return 0; } -int sync_rss(TrackedRss *tracked_rss, char *rss_config_dir) { +int sync_rss(TransmissionSession *transmission_session, TrackedRss *tracked_rss, char *rss_config_dir) { /* TODO: This can be cached */ int rss_config_dir_len = strlen(rss_config_dir); @@ -534,7 +528,7 @@ int sync_rss(TrackedRss *tracked_rss, char *rss_config_dir) { char *rss_tracked_dir = rss_config_dir; strcat(rss_tracked_dir, "/tracked/"); - result = add_torrents_in_reverse(&download_items_buffer, tracked_rss, rss_tracked_dir); + result = add_torrents_in_reverse(transmission_session, &download_items_buffer, tracked_rss, rss_tracked_dir); if(result != 0) { fprintf(stderr, "Failed while adding torrents for url: %s\n", tracked_rss->link); goto cleanup; -- cgit v1.2.3