aboutsummaryrefslogtreecommitdiff
path: root/src/rss.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-07-15 09:28:51 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-15 09:28:51 +0200
commit73393bfab65515c68159a649c10856659b5ac016 (patch)
tree67cb37484cccc0cf9d3cbe88a58095c2040bd79e /src/rss.c
parent35aca1f0582c43b5f6818c8fc00b924247e45881 (diff)
Use transmission rpc, fixes rss torrent name
Diffstat (limited to 'src/rss.c')
-rw-r--r--src/rss.c22
1 files changed, 8 insertions, 14 deletions
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;