diff --git a/src/db.c b/src/db.c index de7fdfd..2af28d2 100644 --- a/src/db.c +++ b/src/db.c @@ -6,7 +6,7 @@ sqlite3 *db; -int h_db_open(const char *db_name) { +int db_open(const char *db_name) { int ret; char *err_msg; @@ -18,7 +18,7 @@ int h_db_open(const char *db_name) { ret = sqlite3_open(db_name, &db); if (ret != SQLITE_OK) { fprintf(stderr, "%s\n", sqlite3_errmsg(db)); - h_db_close(); + db_close(); return 1; } @@ -27,14 +27,14 @@ int h_db_open(const char *db_name) { if (ret != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", err_msg); sqlite3_free(err_msg); - h_db_close(); + db_close(); return 1; } return 0; } -void h_db_close() { +void db_close() { sqlite3_close(db); } @@ -158,7 +158,7 @@ char* get_artist_from_url(const char *url, const char *website_name) { return artist_name; } -int h_db_add(char *db_row, const char *url) { +int db_add(char *db_row, const char *url) { char *sql = malloc(10000); int result; char *error_msg; @@ -186,7 +186,7 @@ int h_db_add(char *db_row, const char *url) { return 0; } -int h_db_add_custom_name(char *db_row, const char *url, const char *custom_name) { +int db_add_custom_name(char *db_row, const char *url, const char *custom_name) { char *sql = malloc(10000); int result; char *error_msg; @@ -208,7 +208,7 @@ int h_db_add_custom_name(char *db_row, const char *url, const char *custom_name) return 0; } -int h_db_generate_file(FILE *fptr, const char *website_name) { +int db_generate_file(FILE *fptr, const char *website_name) { char *sql = malloc(10000); int result; char *error_msg; @@ -224,7 +224,7 @@ int h_db_generate_file(FILE *fptr, const char *website_name) { return 0; } -int h_db_update_artist_name(const char *url, const char *new_artist_name) { +int db_update_artist_name(const char *url, const char *new_artist_name) { char *sql = malloc(10000); int result; char *error_msg; @@ -240,7 +240,7 @@ int h_db_update_artist_name(const char *url, const char *new_artist_name) { return 0; } -int h_db_delete(const char *url) { +int db_delete(const char *url) { char *sql = malloc(10000); int result; char *error_msg; diff --git a/src/db.h b/src/db.h index 37816bb..64be1f9 100644 --- a/src/db.h +++ b/src/db.h @@ -3,12 +3,12 @@ #include -int h_db_open(const char *db_name); -void h_db_close(); -int h_db_add(char *db_row, const char *url); -int h_db_add_custom_name(char *db_row, const char *url, const char *artist_name); -int h_db_generate_file(FILE *fptr, const char *website_name); -int h_db_update_artist_name(const char *url, const char *new_artist_name); -int h_db_delete(const char *url); +int db_open(const char *db_name); +void db_close(); +int db_add(char *db_row, const char *url); +int db_add_custom_name(char *db_row, const char *url, const char *artist_name); +int db_generate_file(FILE *fptr, const char *website_name); +int db_update_artist_name(const char *url, const char *new_artist_name); +int db_delete(const char *url); #endif /* HENTAI_DB_H */ diff --git a/src/main.c b/src/main.c index 031286d..0d15f16 100644 --- a/src/main.c +++ b/src/main.c @@ -19,7 +19,7 @@ typedef struct { char *yt_dlp_conf; } Config; -int h_config_parser(Config *config) { +int config_parser(Config *config) { char *config_location = malloc(10000); char *user_name = getenv("USER"); if (user_name == NULL) { @@ -78,54 +78,7 @@ int h_config_parser(Config *config) { return 0; } -int h_has_internet() { - int ret; - - /* https://www.man7.org/linux/man-pages/man3/getaddrinfo.3.html */ - struct addrinfo hints; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = 0; - hints.ai_protocol = 0; - struct addrinfo *res, *rp; - ret = getaddrinfo("hopeless-cloud.xyz", "80", 0, &res); - if (ret != 0) { - return 1; - } - int sockfd; - for (rp = res; rp != NULL; rp = rp->ai_next) { - /* https://www.man7.org/linux/man-pages/man2/socket.2.html */ - sockfd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); - if (sockfd == -1) { continue; } - - /* https://www.man7.org/linux/man-pages/man2/connect.2.html */ - if (connect(sockfd, rp->ai_addr, rp->ai_addrlen) == 0) { break; } - - close(sockfd); - } - freeaddrinfo(res); - if (rp == NULL) { - return 1; - } - - /* https://www.man7.org/linux/man-pages/man2/write.2.html */ - char *req_msg = "GET / HTTP/1.1\r\n\r\n"; - if (write(sockfd, req_msg, strlen(req_msg)) != strlen(req_msg)) { - return 1; - } - - /* https://www.man7.org/linux/man-pages/man2/recv.2.html */ - size_t count = 1000000; - char buf[count]; - if (recv(sockfd, buf, count-1, MSG_WAITALL) == -1 ) { - return 1; - } - close(sockfd); - return 0; -} - -int h_download(char *line, Config config) { +int download(char *line, Config config) { int ret; char *url = malloc(strlen(line)); char *artist_name = malloc(strlen(line)); @@ -134,7 +87,7 @@ int h_download(char *line, Config config) { char *args[7]; char *tmp = malloc(10000); if (strstr(website_name, "Iwara") != NULL) { - sprintf(tmp, "%s/%s/%s/%(id)s.%(ext)s", config.data_dir, artist_name, website_name); + sprintf(tmp, "%s/%s/%s/%%(id)s.%%(ext)s", config.data_dir, artist_name, website_name); args[0] = "yt-dlp"; args[1] = "--config-locations"; args[2] = config.yt_dlp_conf; @@ -153,39 +106,28 @@ int h_download(char *line, Config config) { args[6] = NULL; printf("Starting download using %s\n", args[0]); - size_t i; - for (i = 5; i > 0; i--) { - /* Keep for later debugging or logging - size_t j; - for (j = 0; args[j] != NULL; j++) { - printf("args[%d] = %s\n", j, args[j]); - } - */ - - pid_t pid = fork(); - - if (pid == -1) { - printf("Couldn't fork'\n"); - return 1; - } else if (pid > 0) { - waitpid(pid, &ret, 0); - } else { - execvp(args[0], args); - } - - if (ret == 0) { - break; - } - - fprintf(stderr, "Command exited with non-zero code. code = %d\n", ret); - - /* TODO: move contents of h_has_internet here */ - ret = h_has_internet(); - if (ret != 0) { - fprintf(stderr, "No internet\n"); - return 1; - } + /* Keep for later debugging or logging + size_t j; + for (j = 0; args[j] != NULL; j++) { + printf("args[%d] = %s\n", j, args[j]); } + */ + + pid_t pid = fork(); + + if (pid == -1) { + printf("Couldn't fork'\n"); + return 1; + } else if (pid > 0) { + waitpid(pid, &ret, 0); + } else { + execvp(args[0], args); + } + + if (ret != 0) { + fprintf(stderr, "Command exited with non-zero code. code = %d\n", ret); + } + free(url); free(artist_name); free(website_name); @@ -198,7 +140,7 @@ int main(int argc, char **argv) { Config config = { 0 }; config.tmp_dir = "/tmp/HDB"; - ret = h_config_parser(&config); + ret = config_parser(&config); if (ret != 0) { fprintf(stderr, "Failed to parse config\n"); return 1; @@ -214,7 +156,7 @@ int main(int argc, char **argv) { return 1; } - ret = h_db_open("HDB.db"); + ret = open("HDB.db"); if (ret != 0) { return 1; } @@ -224,35 +166,35 @@ int main(int argc, char **argv) { memset(db_row, 0, strlen(argv[2])); if (argc == 3) { - ret = h_db_add(db_row, argv[2]); + ret = db_add(db_row, argv[2]); if (ret != 0) { - h_db_close(); + db_close(); return 1; } } else if (argc == 4) { - ret = h_db_add_custom_name(db_row, argv[2], argv[3]); + ret = db_add_custom_name(db_row, argv[2], argv[3]); if (ret != 0) { - h_db_close(); + db_close(); return 1; } } else { - h_db_close(); + db_close(); fprintf(stderr, "Incorrect amount of arguments\n"); return 1; } printf("Successfully added to DB\n"); - ret = h_download(db_row, config); + ret = download(db_row, config); free(db_row); if (ret != 0) { printf("Failed download\n"); - h_db_close(); + 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(); + db_close(); return 1; } char *file_name = malloc(10000); @@ -260,30 +202,30 @@ int main(int argc, char **argv) { FILE *fptr = fopen(file_name, "w+"); if (fptr == NULL) { fprintf(stderr, "Couldn't open file '%s'\n", file_name); - h_db_close(); + db_close(); return 1; } - ret = h_db_generate_file(fptr, argv[2]); + ret = db_generate_file(fptr, argv[2]); fclose(fptr); if (ret != 0) { - h_db_close(); + 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(); + db_close(); return 1; } char *line = malloc(10000); printf("Ready to download\n"); while(fgets(line, 10000, fptr) != NULL) { - ret = h_download(line, config); + ret = download(line, config); if (ret != 0) { fclose(fptr); - h_db_close(); + db_close(); return 1; } } @@ -293,10 +235,10 @@ int main(int argc, char **argv) { free(file_name); } else { fprintf(stderr, "Invalid argument\n"); - h_db_close(); + db_close(); return 1; } - h_db_close(); + db_close(); return 0; }