summaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c153
1 files changed, 84 insertions, 69 deletions
diff --git a/src/utils.c b/src/utils.c
index 45735ad..8600406 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,86 +1,91 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
#include "utils.h"
+#include "../include/video.h"
#include "../libs/curl.h"
#include "../libs/string.h"
-#include "../include/video.h"
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
-int tokenCount(char *string, char *delimiter)
+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 *auxString = (char *)calloc (strlen (string) + 1, sizeof (char));
+ strcpy (auxString, string);
- char *token = strtok(auxString, delimiter);
+ char *token = strtok (auxString, delimiter);
while (token != NULL)
{
totalCount++;
- token = strtok(NULL, delimiter);
+ token = strtok (NULL, delimiter);
}
- free(auxString);
+ free (auxString);
}
return totalCount;
}
-char **tokenizer(char *string, char *delimiter)
+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);
+ 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);
+ 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);
+ tokens[i] = (char *)calloc (strlen (tempToken) + 1, sizeof (char));
+ strcpy (tokens[i], tempToken);
+ tempToken = strtok (NULL, delimiter);
}
- free(auxString);
+ free (auxString);
}
else
{
- tokens = (char **)calloc(1, sizeof(char));
+ tokens = (char **)calloc (1, sizeof (char));
}
return tokens;
}
-void freeTokens(char **tokens, int size)
+void
+freeTokens (char **tokens, int size)
{
- if ( size > 0 )
+ if (size > 0)
{
- for ( int i = 0; i < size; i++ )
+ for (int i = 0; i < size; i++)
{
- free(tokens[i]);
+ free (tokens[i]);
}
}
- free(tokens);
+ free (tokens);
}
-char *queryNormalizer(char *query)
+char *
+queryNormalizer (char *query)
{
char *norm = NULL;
- if (query != NULL && strlen(query) > 0)
+ if (query != NULL && strlen (query) > 0)
{
// Declaring Initial Query Size
- int querySize = strlen(query);
+ int querySize = strlen (query);
// Calculating Normalized Query Size Allocation
- for (int i = 0; i < strlen(query); i++)
+ for (int i = 0; i < strlen (query); i++)
{
if (query[i] == '+' || query[i] == '#' || query[i] == '&')
{
@@ -89,10 +94,10 @@ char *queryNormalizer(char *query)
}
// Allocating Memory
- norm = (char *)calloc(querySize + 1, sizeof(char));
+ norm = (char *)calloc (querySize + 1, sizeof (char));
// Creating New Normalized Query
- for (int i = 0, added = 0; i < strlen(query); i++)
+ for (int i = 0, added = 0; i < strlen (query); i++)
{
switch (query[i])
{
@@ -138,105 +143,115 @@ char *queryNormalizer(char *query)
return norm;
}
-char* extractQueryJSON(char *youtubeurl)
+char *
+extractQueryJSON (char *youtubeurl)
{
char *json = NULL;
- if (youtubeurl != NULL && strlen(youtubeurl) > 0)
+ if (youtubeurl != NULL && strlen (youtubeurl) > 0)
{
- char *htmlPage = downloadPage(youtubeurl);
- if ( htmlPage != NULL && strlen(htmlPage) > 0 )
+ 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));
+ 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++)
+ for (int i = 0, j = 1;
+ i < numberOfTokens
+ && strstr (tokens[j - 1], needlessHTML) == NULL;
+ i++)
{
- if ( strcmp(tokens[i], jsonVar) == 0 )
+ if (strcmp (tokens[i], jsonVar) == 0)
{
- for ( j = i + 2; strstr(tokens[j-1], needlessHTML) == NULL; j++ )
+ 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 = realloc (
+ json, (strlen (json) + strlen (tokens[j]) + 2));
+ strcat (json, tokens[j]);
+ strcat (json, " ");
}
}
}
- json[strlen(json) - strlen(needlessHTML)] = '\0';
- freeTokens(tokens, numberOfTokens);
+ json[strlen (json) - strlen (needlessHTML)] = '\0';
+ freeTokens (tokens, numberOfTokens);
}
- free(htmlPage);
+ free (htmlPage);
}
return json;
}
-int checkNumber(char *num)
+int
+checkNumber (char *num)
{
int number = 0, charCheck = 1;
- if( num != NULL && strlen(num) > 0 && strlen(num) < 3 )
+ if (num != NULL && strlen (num) > 0 && strlen (num) < 3)
{
- for( int i = 0; i < strlen(num) && charCheck; i++ )
+ for (int i = 0; i < strlen (num) && charCheck; i++)
{
- if( !isdigit(num[i]) )
+ if (!isdigit (num[i]))
{
charCheck--;
}
}
- number = ( charCheck ) ? atoi(num) : 0;
+ number = (charCheck) ? atoi (num) : 0;
}
return number;
}
-void printVideoInfo(char *format, Video *videos, int numberOfVideos)
+void
+printVideoInfo (char *format, Video *videos, int numberOfVideos)
{
- if ( format != NULL && strlen(format) > 0 )
+ if (format != NULL && strlen (format) > 0)
{
- for ( int i = 0; i < numberOfVideos; i++ )
+ for (int i = 0; i < numberOfVideos; i++)
{
- for ( int j = 0; j < strlen(format); j++ )
+ for (int j = 0; j < strlen (format); j++)
{
- switch(format[j])
+ switch (format[j])
{
case 'a':
- printf("%s", videos[i].author);
+ printf ("%s", videos[i].author);
break;
case 'd':
- printf("%s", videos[i].duration);
+ printf ("%s", videos[i].duration);
break;
case 'i':
- printf("%s", videos[i].id);
+ printf ("%s", videos[i].id);
break;
case 't':
- printf("%s", videos[i].title);
+ printf ("%s", videos[i].title);
break;
case 'R':
- printf("\n");
+ printf ("\n");
break;
case 'T':
- printf("\t");
+ printf ("\t");
break;
default:
- if( !isalpha(format[j]) )
+ if (!isalpha (format[j]))
{
- printf("%c", format[j]);
+ printf ("%c", format[j]);
}
}
}
- printf("\n");
+ printf ("\n");
}
}
else
{
- for( int i = 0; i < numberOfVideos; i++ )
+ for (int i = 0; i < numberOfVideos; i++)
{
- printf("%s\t%s\n", videos[i].id, videos[i].title);
+ printf ("%s\t%s\n", videos[i].id, videos[i].title);
}
}
}