From 957738c38ce7a364cc4886b5151a8891cae2a028 Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 6 Jun 2008 10:55:54 +0100 Subject: Added section download support --- src/getht.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'src/getht.c') diff --git a/src/getht.c b/src/getht.c index 8f52d6f..6528652 100644 --- a/src/getht.c +++ b/src/getht.c @@ -67,6 +67,7 @@ int main(int argc, char *argv[]) int downall = 0; int downissue = 0, downissueno = -1; + int downsection = 0, downsectionno = -1; int listissues = 0; int force = 0; int option = 0; @@ -90,6 +91,7 @@ int main(int argc, char *argv[]) { {"download-all", no_argument, 0, 'a'}, {"download-issue", required_argument, 0, 'd'}, + {"download-section", required_argument, 0, 's'}, {"force", no_argument, 0, 'f'}, {"list-issues", no_argument, 0, 'l'}, {"quiet", no_argument, 0, 'q'}, @@ -99,7 +101,7 @@ int main(int argc, char *argv[]) {"version", no_argument, 0, 'V'}, {0, 0, 0, 0} }; - while((c = getopt_long(argc, argv, "ad:fhluqvV", long_opts, NULL)) != -1) { + while((c = getopt_long(argc, argv, "ad:fs:hluqvV", long_opts, NULL)) != -1) { switch(c) { case 'a': downall = 1; @@ -111,6 +113,11 @@ int main(int argc, char *argv[]) downissueno = atoi(optarg); option = 1; break; + case 's': + downsection = 1; + downsectionno = atoi(optarg); + option = 1; + break; case 'l': listissues = 1; option = 1; @@ -189,7 +196,21 @@ int main(int argc, char *argv[]) downloadissue(&options, issue[i], force); } else if(downissueno >= 0 && downissueno <= no_of_issues) - downloadissue(&options, issue[downissueno], force); + { + if(downsection && downsectionno >= 0 && downsectionno <= issue[downissueno]->no_of_sections) + { + char downdir[STR_MAX]; + sec * cursec; + strncpy(downdir, (char *) getissuedir(&options, issue[downissueno]), STR_MAX); + cursec = issue[downissueno]->section[downsectionno]; + + printf("Downloading %s to %s\n", cursec->title, downdir); + + downloadsection(&options, cursec, &downdir, force); + } + else + downloadissue(&options, issue[downissueno], force); + } } -- cgit v1.2.3