C++ tracking protection filter parser for lists like https://github.com/disconnectme/disconnect-tracking-protection/blob/master/services.json
npm install --save tracking-protection
-
Clone the git repository from GitHub:
git clone https://github.com/SergeyZhukovsky/tracking-protection
-
Open the working directory:
cd tracking-protection
-
Install the Node (v5+) dependencies:
npm install
#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;
}
make
make build-debug
make sample
make test
make clean