summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Marçalo <raroma09@gmail.com>2021-09-17 23:39:47 +0000
committerRafael Marçalo <raroma09@gmail.com>2021-09-17 23:39:47 +0000
commit425d179be16e2f16595dd0d5c913eefe99884407 (patch)
treeac4030cc4fc09eff0e4f1cfdab10d5b974255d29
parent2fd3a9d009d19e48eefda098cbedcf1aa02b660d (diff)
parentcbf64d0333234b22d3fa4a0a2cc00dcb82675019 (diff)
Merge branch 'algorithm' into 'main'
Cleanup 🍝 Algorithm See merge request rafa_99/queryt!1
-rw-r--r--include/utils.h3
-rw-r--r--libs/curl.c1
-rw-r--r--libs/json.c2
-rw-r--r--libs/string.c1
-rw-r--r--src/utils.c99
5 files changed, 5 insertions, 101 deletions
diff --git a/include/utils.h b/include/utils.h
index 48ada10..3dd902a 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -1,9 +1,6 @@
#pragma once
#include "video.h"
-int tokenCount (char *string, char *delimiter);
-char **tokenizer (char *string, char *delimiter);
-void freeTokens (char **tokens, int size);
char *queryNormalizer (char *query);
char *extractQueryJSON (char *youtubeurl);
int checkNumber (char *num);
diff --git a/libs/curl.c b/libs/curl.c
index 03509d9..73ecdc3 100644
--- a/libs/curl.c
+++ b/libs/curl.c
@@ -2,7 +2,6 @@
#include "string.h"
#include <curl/curl.h>
#include <curl/easy.h>
-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/libs/json.c b/libs/json.c
index 03d8aab..2756e1a 100644
--- a/libs/json.c
+++ b/libs/json.c
@@ -1,8 +1,6 @@
#include "json.h"
#include "../include/video.h"
#include <json-c/json.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
json_object *
diff --git a/libs/string.c b/libs/string.c
index 8c2eab2..1e65ac1 100644
--- a/libs/string.c
+++ b/libs/string.c
@@ -1,5 +1,4 @@
#include "string.h"
-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/utils.c b/src/utils.c
index 5391e6d..7c3cb7c 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -3,77 +3,10 @@
#include "../libs/curl.h"
#include "../libs/string.h"
#include <ctype.h>
-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-int
-tokenCount (char *string, char *delimiter)
-{
- int totalCount = 0;
-
- if (string != NULL && delimiter != NULL)
- {
- char *auxString = (char *)calloc (strlen (string) + 1, sizeof (char));
- strcpy (auxString, string);
-
- char *token = strtok (auxString, delimiter);
-
- while (token != NULL)
- {
- totalCount++;
- token = strtok (NULL, delimiter);
- }
-
- free (auxString);
- }
-
- return totalCount;
-}
-
-char **
-tokenizer (char *string, char *delimiter)
-{
- char **tokens = NULL;
-
- if (string != NULL && delimiter != NULL)
- {
- char *auxString = (char *)calloc (strlen (string) + 1, sizeof (char));
- strcpy (auxString, string);
-
- tokens = (char **)calloc (tokenCount (auxString, delimiter),
- sizeof (char *));
- char *tempToken = strtok (auxString, delimiter);
-
- for (int i = 0; tempToken != NULL; i++)
- {
- tokens[i] = (char *)calloc (strlen (tempToken) + 1, sizeof (char));
- strcpy (tokens[i], tempToken);
- tempToken = strtok (NULL, delimiter);
- }
-
- free (auxString);
- }
- else
- {
- tokens = (char **)calloc (1, sizeof (char));
- }
-
- return tokens;
-}
-
-void
-freeTokens (char **tokens, int size)
-{
- if (size > 0)
- {
- for (int i = 0; i < size; i++)
- {
- free (tokens[i]);
- }
- }
- free (tokens);
-}
+#define JSONVAR "ytInitialData = "
char *
queryNormalizer (char *query)
@@ -153,34 +86,12 @@ extractQueryJSON (char *youtubeurl)
char *htmlPage = downloadPage (youtubeurl);
if (htmlPage != NULL && strlen (htmlPage) > 0)
{
- // Setting Up Vars
- char jsonVar[] = "ytInitialData",
- needlessHTML[] = ";</script><script",
- **tokens = tokenizer (htmlPage, " ");
- int numberOfTokens = tokenCount (htmlPage, " ");
- json = (char *)calloc (1, sizeof (char));
-
- // Extracting JSON String
- for (int i = 0, j = 1;
- i < numberOfTokens
- && strstr (tokens[j - 1], needlessHTML) == NULL;
- i++)
+ char *jsonVar = strstr (htmlPage, JSONVAR) + strlen (JSONVAR);
+ if (jsonVar != NULL && strlen (jsonVar) > 0)
{
- if (strcmp (tokens[i], jsonVar) == 0)
- {
- for (j = i + 2; strstr (tokens[j - 1], needlessHTML) == NULL;
- j++)
- {
- json = realloc (
- json, (strlen (json) + strlen (tokens[j]) + 2));
- strcat (json, tokens[j]);
- strcat (json, " ");
- }
- }
+ json = (char *)calloc (strlen (jsonVar) + 1, sizeof (char));
+ strcpy (json, jsonVar);
}
-
- json[strlen (json) - strlen (needlessHTML)] = '\0';
- freeTokens (tokens, numberOfTokens);
}
free (htmlPage);
}