{"id":18314334,"url":"https://github.com/daviddahl/nuke-dialog","last_synced_at":"2025-06-29T13:37:07.997Z","repository":{"id":139544325,"uuid":"200247885","full_name":"daviddahl/nuke-dialog","owner":"daviddahl","description":"Nuke GDPR \u0026 Cookie dialogs on web pages. Free yourself from drudgery","archived":false,"fork":false,"pushed_at":"2019-08-25T16:12:18.000Z","size":100,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-15T06:41:27.385Z","etag":null,"topics":["browser-extension","cookie-law","eu","gdpr","javascript","modal-dialogs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daviddahl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-02T14:22:40.000Z","updated_at":"2019-08-25T16:38:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"d99d8785-026f-4c51-9401-1db86e7a259e","html_url":"https://github.com/daviddahl/nuke-dialog","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddahl%2Fnuke-dialog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddahl%2Fnuke-dialog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddahl%2Fnuke-dialog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddahl%2Fnuke-dialog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daviddahl","download_url":"https://codeload.github.com/daviddahl/nuke-dialog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248045220,"owners_count":21038552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["browser-extension","cookie-law","eu","gdpr","javascript","modal-dialogs"],"created_at":"2024-11-05T16:31:54.446Z","updated_at":"2025-04-09T12:41:25.288Z","avatar_url":"https://github.com/daviddahl.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nuke-dialog\n\nNuke cookie / GDPR dialogs on web pages\n\n## Concept\n\nThe concept here is that the web is full of un-desireable dialogs that one must - with fine motor control - click \"I agree, consent, yes master\", etc to dismiss.\n\nMost of the logic employed in `nuke-dialog` is via a `reverse css lookup` where we find the selectors to target via the css rules themselves.\n\nThe secondary mechanism for discovery is via a `MutationObserver` that looks for nodes that change: class and attribute changes or new nodes that are created wit z-index \u003e 0;\n\nThis is still naive as it depends on the textContent of `cookie` to exist in the nodes that we are targeting via the css or mutations.\n\n### TODOs\n\n* Package index.js in to browser extensions\n* ~~Keep track of the modals dismissed locally in `IndexDB`, check the cache for what to dismiss before running the heavy-ish script that potentially does XHRs etc~~\n* ~~\"Mark modal\" functionality: allow users to right click to mark a modal DOM node manually.~~\n* Discover modals that do not have z-index style rules. Ideas here will be great to hear about.\n* I18N: The miniscule UI and string testing should be localized as needed.\n\n#### MAYBEs\n\n* ~~Test for local IPFS gateway to post a newly-discovered modal CSS Selector and URL (or perhaps just the domain name) to a CRDT DB~~\n* ~~When the browser starts each URL visited is compared to the CRDT to be able to automatically discover the modals and dismiss them automatically.~~\n\n#### ML model?\n\nIs there a machine learning model that could be applied to the DOM to discover dialogs or other un-desired UX in web pages?","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaviddahl%2Fnuke-dialog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaviddahl%2Fnuke-dialog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaviddahl%2Fnuke-dialog/lists"}