Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <netdb.h>
- #include <assert.h>
- //TOOLS
- void remove_line_return(char * new_line, char * line) {
- int i = 0;
- int n = strlen(line);
- while ( (i < n) && (line[i] != '\n') ) {
- new_line[i] = line[i];
- i++;
- }
- new_line[i] = '\0';
- }
- void what_is_left_and_right(char* star_url, char* left, char* right){
- char c = star_url[0];
- int i=0;
- int star_indice;
- while (c!='*'){
- left[i] = c;
- i++;
- c = star_url[i];
- }
- star_indice = i;
- while (c!='\0'){
- i++;
- c = star_url[i];
- right[i-star_indice-1] = c;
- }
- }
- //ADD FUNCTION
- void add_to_file(char* newElement, char* fileName){
- FILE* fichier = NULL;
- fichier = fopen(fileName,"a");
- fprintf(fichier,"%s\n",newElement);
- fclose(fichier);
- }
- //CREATION
- void create_files(char* blacklist){
- FILE* fichier = NULL;
- fichier = fopen(blacklist, "r");
- if (fichier != NULL) {
- size_t len = 0;
- char * line = NULL;
- int read = getline(&line, &len, fichier);
- while (read != -1){
- remove_line_return(line, line);
- char * found_star = strstr(line, "*");
- char * found_http = strstr(line, "@@||");
- char * found_pipes = strstr(line, "||");
- char * found_hashtags = strstr(line, "#");
- char * found_arobases = strstr(line, "@@");
- if (found_star &&
- !found_http &&
- !found_pipes &&
- !found_hashtags &&
- !found_arobases) {
- add_to_file(line,"starFile.txt");
- }
- read = getline(&line, &len, fichier);
- }
- free(line);
- fclose(fichier);
- }
- else {
- printf("Impossible to open %s file\n", blacklist);
- }
- }
- //PARSING
- char* search_in_star_file(char* url){
- FILE* fichier = NULL;
- fichier = fopen("starFile.txt", "r");
- if (fichier != NULL) {
- char* left = malloc(strlen(url) * sizeof(char));
- char* right = malloc(strlen(url) * sizeof(char));
- what_is_left_and_right(url,left,right);
- printf("left : %s\n", left);
- printf("right : %s\n", right);
- size_t len = 0;
- char * line = NULL;
- int read = getline(&line, &len, fichier);
- while (read != -1){
- remove_line_return(line, line);
- char* line_left = malloc(strlen(line) * sizeof(char));
- char* line_right = malloc(strlen(line) * sizeof(char));
- what_is_left_and_right(line,line_left,line_right);
- //printf("left line : %s\n", line_left);
- //printf("right line : %s\n", line_right);
- char* found_left = strstr(left,line_left);
- char* found_right = strstr(right,line_right);
- printf("left found: %s\n", found_left);
- printf("right found: %s\n", found_right);
- if (found_left && found_right) {
- free(line_left);
- free(line_right);
- free(left);
- free(right);
- fclose(fichier);
- return line;
- }
- free(line_left);
- free(line_right);
- read = getline(&line, &len, fichier);
- }
- free(line);
- free(left);
- free(right);
- fclose(fichier);
- return "none";
- }
- else {
- return "Impossible to open starFile.txt\n";
- }
- }
- char* blacklist(char* url){
- return search_in_star_file(url);
- }
- int main(int argc, char* argv[]){
- //create_files("../Library/easylist.txt");
- //blacklist("");
- char* star_url = "http://&prvtof=*&poru=x";
- printf("res: %s\n", blacklist(star_url));
- //char* res = strstr(star_url,"&poru=");
- //printf("str: %s\n", res);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement