{"id":19372314,"url":"https://github.com/anantduhan/web-behaviour-detection","last_synced_at":"2026-04-15T05:32:17.229Z","repository":{"id":61984487,"uuid":"539894413","full_name":"AnantDuhan/Web-Behaviour-Detection","owner":"AnantDuhan","description":"A browser extension that uses sentiment analysis to make your web more positive by reducing negative content visibility.","archived":false,"fork":false,"pushed_at":"2022-10-27T07:37:29.000Z","size":1111,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T14:50:32.873Z","etag":null,"topics":["chrome-extension","ci","javascript","python","sentiment","web-extension","wellbeing"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnantDuhan.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-22T09:12:30.000Z","updated_at":"2022-10-24T17:07:56.000Z","dependencies_parsed_at":"2023-01-20T14:18:19.966Z","dependency_job_id":null,"html_url":"https://github.com/AnantDuhan/Web-Behaviour-Detection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AnantDuhan/Web-Behaviour-Detection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnantDuhan%2FWeb-Behaviour-Detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnantDuhan%2FWeb-Behaviour-Detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnantDuhan%2FWeb-Behaviour-Detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnantDuhan%2FWeb-Behaviour-Detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnantDuhan","download_url":"https://codeload.github.com/AnantDuhan/Web-Behaviour-Detection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnantDuhan%2FWeb-Behaviour-Detection/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31828531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"online","status_checked_at":"2026-04-15T02:00:06.175Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome-extension","ci","javascript","python","sentiment","web-extension","wellbeing"],"created_at":"2024-11-10T08:22:50.704Z","updated_at":"2026-04-15T05:32:17.205Z","avatar_url":"https://github.com/AnantDuhan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/anantduhan/Web-Behaviour-Detection/workflows/CI/badge.svg) ![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/anantduhan/Web-Behaviour-Detection?label=dockerhub\u0026logo=docker)\n\n# Web Behaviour Detection:\nUse sentiment analysis to reduce negative content visibility to make your web more positive.\n\n## What does this do?\nA browser extension that finds negative elements on the page and makes them less visible:\n- Negativity is calculated using either inin-browserule-based logic or an **optional** deep learning model running locally in the background (in a docker container).\n- The user controls various options (negativity threshold, restyling options) via the options menu:\n    - Visibility is reduced by adjusting transparency, or by hiding the element completely.\n    - Colours can be added for inspection, or for examining the positivity.\n    - Settings can be saved per site or globally.\n    - An overall positivity score per page is displayed.\n\n## Sentiment \"Scoring\" options:\n\n1. Use `Vader (JS)` or `AFINN (JS)` in the drop-down for browser side, rule-based calculations.\n\n2. For the `FlairNLP (Py)` option a local python inference server needs to be running:\n    Running in docker (simplest if you have docker)\n\n    \u003e Please wait a few seconds after starting to be ready to serve requests.\n\n    Run interactively once (e.g to try it out):\n    - Start: `docker run -p 8000:8000 -it --rm anantduhan/web-behaviour-detection`\n\n    - Stop just Ctrl+C in the terminal where you're running it.\n\n    Run in detached and persistent mode (e.g. for actual usage):\n    - Start: `docker run -p 8000:8000 -dit --restart unless-stopped --name web-behaviour-detection anantduhan/web-behaviour-detection`\n\n    - Stop: `docker rm -f web-behaviour-detection`.\n\n\n    Local python (e.g. for development)\n\n    1. Clone repo.\n    2. `make install` to create a local virtual environment and install dependencies in it. \n    3. `make server` to run the server. \n\n\n## Using local extension\n\n### Build\nBuilding instructions\n\n- Clone and go to the `extension/` folder:\n- To install in the local environment: `npm install`\n- Building: `npm start` for development, `npm run build` for packaging into a zip file.\n\n### Load browser extension into Chrome or Firefox:\nChrome\n\n- Extensions -\u003e Enable \"developer mode\" -\u003e \n\"Load unpacked extensions\" -\u003e Navigate to `/extension/dist` folder in this project.\n- To update (on code changes): go to extension details and press update / reload.\n- Docs: [Chrome docs](https://developer.chrome.com/extensions/getstarted#manifest)\n\nFirefox\n\n- To load for development (will be removed after browser close, but easier to reload on code change):\n    - Go to `about:debugging` -\u003e This Firefox -\u003e \"Load Temporary Add-on..\" -\u003e \n    Navigate to `/extension/dist` -\u003e select manifest file.\n    - Press \"Reload\" to update on code changes.\n- To load for continuous usage (persistent after closing):\n    - Go to `about: config` and set `xpinstall.signatures.required` to False to be able to load a local extension.\n    - Run `npm run-script build` to package the extensions into a zip file.\n    - Go to `about:addons` -\u003e \"gear\" icon -\u003e \"Install add-on from file..\" -\u003e \n    Navigate to `/extension/` folder in this project -\u003e choose `web-behaviour-detection-.zip`.\n    - To update (on code changes): repeat the previous two steps.\n- Docs: [Firefox docs](https://extensionworkshop.com/documentation/develop/testing-persistent-and-restart-features/)\n\n## Credits and references:\n\n- Python (DL-based) sentiment analysis model and package: [flair NLP](https://github.com/flairNLP/flair)\n- JS sentiment analysis packages:\n    - [vaderSentiment](https://github.com/cjhutto/vaderSentiment) (called JS-Vader in options menu)\n    - [AFINNSentiment](https://github.com/thisandagain/sentiment ) (called JS-AFINN in options menu)\n- Backend API framework: [fastapi](https://github.com/tiangolo/fastapi)\n- Initial code for browser extension functionality copied from [Trump-Filter](https://github.com/RobSpectre/Trump-Filter)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanantduhan%2Fweb-behaviour-detection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanantduhan%2Fweb-behaviour-detection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanantduhan%2Fweb-behaviour-detection/lists"}