1.2.0 • Published 6 years ago

tracking-protection v1.2.0

Weekly downloads
25
License
MPL-2.0
Repository
github
Last release
6 years ago

tracking-protection

C++ tracking protection filter parser for lists like https://github.com/disconnectme/disconnect-tracking-protection/blob/master/services.json

Setup

npm install --save tracking-protection

Installation

  1. Clone the git repository from GitHub:

    git clone https://github.com/SergeyZhukovsky/tracking-protection
  2. Open the working directory:

    cd tracking-protection
  3. Install the Node (v5+) dependencies:

    npm install

Sample

#include <iostream>
#include "./TPParser.h"

using std::cout;
using std::endl;

int main(int argc, char **argv) {
    CTPParser parser;
    parser.addTracker("facebook.com");
    parser.addTracker("facebook.de");

    // Prints matches
    if (parser.matchesTracker("facebook.com")) {
        cout << "matches" << endl;
    }
    else {
        cout << "does not match" << endl;
    }

    // Prints does not match
    if (parser.matchesTracker("facebook1.com")) {
        cout << "matches" << endl;
    } else {
        cout << "does not match" << endl;
    }

    // Prints does not match
    if (parser.matchesTracker("subdomain.google-analytics.com.")) {
        cout << "matches" << endl;
    } else {
        cout << "does not match" << endl;
    }

    parser.addFirstPartyHosts("facebook.com", "facebook.fr,facebook.de");
    parser.addFirstPartyHosts("google.com", "2mdn.net,admeld.com");
    parser.addFirstPartyHosts("subdomain.google.com", "facebook.fr,facebook.de");

    // Returns combined result of third party hosts for "google.com" and for "subdomain.google.com"
    // "facebook.fr,facebook.de,2mdn.net,admeld.com"
    char* thirdPartyHosts = parser.findFirstPartyHosts("subdomain.google.com");
    if (nullptr != thirdPartyHosts) {
        cout << thirdPartyHosts << endl;
        delete []thirdPartyHosts;
    }

    unsigned int totalSize = 0;
    // Serialize data
    char* data = parser.serialize(&totalSize);

    // Deserialize data
    parser.deserialize(data);

    // Prints matches
    if (parser.matchesTracker("facebook.com")) {
        cout << "matches" << endl;
    }
    else {
        cout << "does not match" << endl;
    }
    // Prints does not match
    if (parser.matchesTracker("facebook1.com")) {
        cout << "matches" << endl;
    } else {
        cout << "does not match" << endl;
    }

    // Prints "2mdn.net,admeld.com"
    thirdPartyHosts = parser.findFirstPartyHosts("google.com");
    if (nullptr != thirdPartyHosts) {
        cout << thirdPartyHosts << endl;
    }

    if (data) {
        delete []data;
    }

    return 0;
}

Build everything in release

make

Build everything in debug

make build-debug

Running sample

make sample

Running tests

make test

Clearing build files

make clean
1.2.0

6 years ago

1.1.10

6 years ago

1.1.9

6 years ago

1.1.8

6 years ago

1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

7 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago