Skip to content

Core of the labeling component of T.EX, which provides a generic interface to other components.

License

Notifications You must be signed in to change notification settings

t-ex-tools/labeler-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T.EX Labeler Core

Core of the labeling component of T.EX, which provides a generic interface to other components. The core implements a data model to easily extend it by additional blocklists.

Usage

import BlockList from './labeler-core/BlockList.js';
import EasyListParser from './labeler-core/EasyListParser.js';
import EasyListEvaluator from './labeler-core/EasyListEvaluator.js';

let list = await fetch('https://easylist.to/easylist/easyprivacy.txt');
let evaluator = EasyListEvaluator(EasyListParser);
let labeler = new BlockList('EasyPrivacy', list, evaluator);

const request = {
  url: 'https://www.tccd.edu/images/.../2021-summer-update.jpg',
  source: 'https://www.tccd.edu/',
  type: 'image'
};

let result = labeler.isLabeled([r]);
// result: { isLabeled: false, rule: null, type: null } 

Model: Parser and Evaluator

Model the labeler implements

Figure 1

To extend the core by additional blocklists, which shall be used in an automated labeling process, adapt the model depicted in Figure 1.

Example Request

Requests to be labeled by the labeler must be serialized in JSON and each request must define the following properties: url, source, and type. See an example of a complete request recorded by T.EX.

{
  "frameId": 0,
  "initiator": "https://www.tccd.edu",
  "method": "GET",
  "parentFrameId": -1,
  "requestId": "923027",
  "tabId": 19696,
  "timeStamp": 1628773542862.1062,
  "type": "image",
  "url": "https://www.tccd.edu/images/.../2021-summer-update.jpg",
  "source": "https://www.tccd.edu/",
  "complete": true,
  "requestHeaders": [
    {
      "name": "User-Agent",
      "value": "Mozilla/5.0 ... Chrome/92.0.4515.131 Safari/537.36"
    },
    ...
  ],
  "response": {
    "frameId": 0,
    "fromCache": false,
    "initiator": "https://www.tccd.edu",
    "ip": "64.28.255.100",
    "method": "GET",
    "parentFrameId": -1,
    "requestId": "923027",
    "responseHeaders": [
      {
        "name": "Content-Type",
        "value": "image/jpeg"
      },
      ...
    ],
    "statusCode": 200,
    "statusLine": "HTTP/1.1 200 OK",
    "tabId": 19696,
    "timeStamp": 1628773543179.2751,
    "type": "image",
    "url": "https://www.tccd.edu/images/.../2021-summer-update.jpg"
  },
  "success": true
}

About

Core of the labeling component of T.EX, which provides a generic interface to other components.

Topics

Resources

License

Stars

Watchers

Forks