From 66904b589ff9a1772133e4370032ddf158acdbdb Mon Sep 17 00:00:00 2001 From: Nathan Singer Date: Fri, 28 Feb 2025 00:42:27 -0500 Subject: [PATCH] json stuff --- Makefile | 2 +- build/book.json | 17 +++++++++ build/isbn-lookup | Bin 37640 -> 50256 bytes build/src/curl.c.o | Bin 26936 -> 26936 bytes build/src/json.c.o | Bin 0 -> 13768 bytes build/src/main.c.o | Bin 13416 -> 20432 bytes src/db.c | 3 ++ src/include/db.h | 13 +++++++ src/main.c | 86 +++++++++++++++++++++++++++++++++++++++------ 9 files changed, 110 insertions(+), 11 deletions(-) create mode 100644 build/book.json create mode 100644 build/src/json.c.o create mode 100644 src/db.c create mode 100644 src/include/db.h diff --git a/Makefile b/Makefile index c1b4188..9114482 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CC=gcc CFLAGS= -c -g -Wall -LDLIBS = -lcurl +LDLIBS = -lcurl -lcjson TARGET := isbn-lookup diff --git a/build/book.json b/build/book.json new file mode 100644 index 0000000..4144a2c --- /dev/null +++ b/build/book.json @@ -0,0 +1,17 @@ +{ + "author_key": ["OL6823800A"], + "author_name": ["Trisha Telep"], + "cover_edition_key": "OL24447972M", + "cover_i": 8159688, + "edition_count": 2, + "first_publish_year": 2009, + "has_fulltext": true, + "ia": ["mammothbookoftim0000tele"], + "ia_collection_s": "inlibrary;internetarchivebooks;openlibrary-d-ol;printdisabled", + "key": "/works/OL15483381W", + "language": ["eng"], + "lending_edition_s": "OL24447972M", + "lending_identifier_s": "mammothbookoftim0000tele", + "public_scan_b": false, + "title": "The Mammoth Book of Time Travel Romance" +} \ No newline at end of file diff --git a/build/isbn-lookup b/build/isbn-lookup index 9d675a7bf8b0b14beee64ab13e7aefdac055cefc..14bcd9f3d3175493df1bd689cb4b90ff68a81435 100755 GIT binary patch literal 50256 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 delta 6933 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 AsQ>@~ literal 13416 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≤{ysu{3HWD!q>?6LCZBX!kugDh1#maS>G>oGaeB^K zfOsDG*^Kx$;N^(Z^V=iD>G_bc5zUSf2Zyk^SSZUQ=#`Kk9c&}!OT>(g^p_8t5Rr(n z5ej4lsa5uajPz~1jqEx&Bt*!c#mY!!K*HeIa6YN}4~veB<+E<3zvr;+(My8aH|T7c zCy0sR$Ffbw3dDRH_Fr`RN?)u)IXrfz4f}IZ9Q&4kHu&X7aKnVbF?^Va|6^vt)+ZrL z?{DhP4KDD1szP{E8N>dIl=NLZ)l-ABf$WOLTNk!S>cZoUq5A;Yw+V-3W3Oas0&WO6 z#(h{$eEx6i+p~3vPY8SVN|tE*niN2e+aJtwDWd}eT?7a_BgaU_xUhP1gm8m;G}{gH zSE?f;Wd6t+(fV}$d|39Q_7}i}RLZJ<{Y&dpFpbuy0CM_0g6^l(jK@EjHTqX+6qI*b8#RM`6mGf%(EqY~3HN-*YQj3(vtZ zSwC{7p!Mnc{itnH^DW%CCJ;w@EF)({T%W`w>LN?n^QW#fV@#pGtRx#Ny(T%iJ%3dH QN?)1knk@VJ7tjCy0AX=mBme*a diff --git a/src/db.c b/src/db.c new file mode 100644 index 0000000..092f319 --- /dev/null +++ b/src/db.c @@ -0,0 +1,3 @@ +#include "include/db.h" + + diff --git a/src/include/db.h b/src/include/db.h new file mode 100644 index 0000000..75a2196 --- /dev/null +++ b/src/include/db.h @@ -0,0 +1,13 @@ +#ifndef DB_H +#define DB_H + +typedef struct { + char *title, *subtitle, *isbn; + char *authors, *subjects, *langs; + char *date_added, *pub_date; + char *image_url; + + int year_of_pub, page_len; +} book_t; + +#endif diff --git a/src/main.c b/src/main.c index 3e18e60..486154e 100644 --- a/src/main.c +++ b/src/main.c @@ -1,16 +1,82 @@ -#include +#include +#include +#include +#include #include "include/curl.h" +#include "include/json.h" -int main(void) +struct flags { + bool json, db, print; +}; + +static void init_flags(struct flags* flags) {flags->json = false;flags->db = false;flags->print = false;} + +const char* argp_program_version = "isbn-lookup 2.1"; +const char* argp_program_bug_address = "supernovaa41@gmx.com"; +static char doc[] = "Lookup details of a book from the ISBN. Using OpenLibrary API."; +static char args_doc[] = ""; +static struct argp_option options[] = { + {0, 'j', "json", 0, "output to json", 0}, + {0, 'd', "db", 0, "output to sqlite3 database", 0}, + {0, 'p', 0, 0, "print the full json response", 0}, + {0} +}; + +static error_t parse_opt(int key, char* arg, struct argp_state* state) { - get_response resp; - - book_api_call("9780762437818", &resp); - - puts(resp.buf); - - free_get_response(&resp); - + struct flags* flags = state->input; + switch (key) { + case 'j': + if (flags->db) { + fprintf(stderr, "-j and -d are mutually exclusive.\n"); + exit(EXIT_FAILURE); + } + flags->json = true; + break; + case 'd': + if (flags->json) { + fprintf(stderr, "-j and -d are mutually exclusive.\n"); + exit(EXIT_FAILURE); + } + flags->db = true; + break; + case 'p': + flags->print = true; + break; + case ARGP_KEY_END: + break; + default: + return ARGP_ERR_UNKNOWN; + } + return 0; +} + +static struct argp argp = {options, parse_opt, args_doc, doc, 0, 0, 0}; +struct flags flags; + +int main(int argc, char* argv[]) +{ + get_response resp; + cJSON* query; + + init_flags(&flags); + argp_parse(&argp, argc, argv, 0, 0, &flags); + + book_api_call("9780762437818", &resp); + + if (flags.print) + puts(resp.buf); + + get_json_book(&resp, &query); + free_get_response(&resp); + + if (flags.json) + json_out(&query); + else + // db out; + + + return 0; }