#define _POSIX_C_SOURCE 200112L /* needed for struct addrinfo */ #include "db.h" #include #include #include #include #include #include #include #include #include #include int main(int argc, char **argv) { int ret; if (argc < 2) { fprintf(stderr, "Incorrect amount of arguments\n"); return 1; } ret = h_db_open("HDB.db"); if (ret != 0) { return 1; } if (strcmp(argv[1], "add") == 0) { char *db_row = malloc(strlen(argv[2]) * 2); memset(db_row, 0, strlen(argv[2])); if (argc == 3) { ret = h_db_add(db_row, argv[2]); if (ret != 0) { h_db_close(); return 1; } } else if (argc == 4) { ret = h_db_add_custom_name(db_row, argv[2], argv[3]); if (ret != 0) { h_db_close(); return 1; } } else { h_db_close(); fprintf(stderr, "Incorrect amount of arguments\n"); return 1; } printf("Successfully added to DB\n"); ret = h_download(db_row, config); free(db_row); if (ret != 0) { printf("Failed download\n"); h_db_close(); return 1; } printf("Succesfully downladed\n"); } else if (strcmp(argv[1], "download_website") == 0) { if (argc != 3) { fprintf(stderr, "Incorrect amount of arguments\n"); h_db_close(); return 1; } char *file_name = malloc(10000); sprintf(file_name, "%s/%s_generated.txt", config.tmp_dir, argv[2]); FILE *fptr = fopen(file_name, "w+"); if (fptr == NULL) { fprintf(stderr, "Couldn't open file '%s'\n", file_name); h_db_close(); return 1; } ret = h_db_generate_file(fptr, argv[2]); fclose(fptr); if (ret != 0) { h_db_close(); return 1; } fptr = fopen(file_name, "r"); if (fptr == NULL) { fprintf(stderr, "Couldn't open file '%s'\n", file_name); h_db_close(); return 1; } char *line = malloc(10000); printf("Ready to download\n"); while(fgets(line, 10000, fptr) != NULL) { ret = h_download(line, config); if (ret != 0) { fclose(fptr); h_db_close(); return 1; } } free(line); fclose(fptr); free(file_name); } else { fprintf(stderr, "Invalid argument\n"); h_db_close(); return 1; } h_db_close(); return 0; }