{"id":16487701,"url":"https://github.com/404-html/internet-cleaner","last_synced_at":"2025-10-19T09:03:38.934Z","repository":{"id":35098109,"uuid":"179769664","full_name":"404-html/internet-cleaner","owner":"404-html","description":"Bookmarklet which pick random file containing explicit content and replaces it with something nice in your behalf.","archived":false,"fork":false,"pushed_at":"2023-01-07T04:27:23.000Z","size":6110,"stargazers_count":9,"open_issues_count":12,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-12T13:35:43.011Z","etag":null,"topics":["automation","bookmarklet","bot","dom","es6","fun","funny","git","github","github-api","html","internet","javascript"],"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/404-html.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":"2019-04-05T23:58:11.000Z","updated_at":"2024-07-25T16:45:44.000Z","dependencies_parsed_at":"2023-01-15T13:48:28.749Z","dependency_job_id":null,"html_url":"https://github.com/404-html/internet-cleaner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/404-html%2Finternet-cleaner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/404-html%2Finternet-cleaner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/404-html%2Finternet-cleaner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/404-html%2Finternet-cleaner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/404-html","download_url":"https://codeload.github.com/404-html/internet-cleaner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221851018,"owners_count":16891702,"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":["automation","bookmarklet","bot","dom","es6","fun","funny","git","github","github-api","html","internet","javascript"],"created_at":"2024-10-11T13:35:38.273Z","updated_at":"2025-10-19T09:03:33.901Z","avatar_url":"https://github.com/404-html.png","language":"JavaScript","readme":"# Internet Cleaner®\n\n## Internet is like ️Wu Tang 🙌 for the children. Let's make it a better place!\n\nInternet Cleaner® ️️️️️is a bookmarklet which pick random file containing explicit content and replaces it with something nice in your behalf!\n\n```\njavascript:!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol\u0026\u0026Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1\u0026t\u0026\u0026(e=n(e)),8\u0026t)return e;if(4\u0026t\u0026\u0026\"object\"==typeof e\u0026\u0026e\u0026\u0026e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2\u0026t\u0026\u0026\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e\u0026\u0026e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";n.r(t);var r={GITHUB_SEARCH_PAGE_URL:\"https://github.com/search?o=desc\u0026p=PAGE\u0026q=QUERY\u0026s=indexed\u0026type=Code\",BAD_WORD:\"ZnVjaw==\",NICE_WORD:\"butterfly\"},o=e=\u003e{const t=document.createElement(\"div\");return t.innerHTML=e,t},a=e=\u003e{var t=document.createElement(\"p\");t.innerText=e,document.body.insertBefore(t,document.body.firstChild)},c={Clean(e,t,n){const r=t.toLowerCase(),o=t.toUpperCase(),a=t.charAt(0).toUpperCase()+t.slice(1),c=n.charAt(0).toUpperCase()+n.slice(1);return e.replace(new RegExp(r,\"g\"),n.toLowerCase()).replace(new RegExp(o,\"g\"),n.toUpperCase()).replace(new RegExp(a,\"g\"),c)}};let p=atob(r.BAD_WORD),u=r.NICE_WORD;(()=\u003enew Promise((e,t)=\u003e{p=prompt(\"Enter the word you want to get rid from Internet (leave empty to use custom):\")||p,u=prompt(\"Enter the word you want the previous word to be replaced with (leave empty to use custom):\")||u,e()}))().then(()=\u003enew Promise((e,t)=\u003e{a(\"Fetching search results...\");const n=new XMLHttpRequest;n.onreadystatechange=function(){4==n.readyState\u0026\u0026200==n.status\u0026\u0026e(n.responseText)},n.open(\"GET\",r.GITHUB_SEARCH_PAGE_URL.replace(\"QUERY\",p).replace(\"PAGE\",Math.floor(100*Math.random())+1),!0),n.send()})).then(e=\u003enew Promise((t,n)=\u003e{a(\"Picking random file...\");const r=o(e).querySelectorAll(\".code-list-item\");let c=r[Math.floor(Math.random()*r.length)+1].querySelector(\"a:nth-child(2)\").href;t(c=c.split(\"/\").map((e,t)=\u003e6===t?\"master\":e).join(\"/\"))})).then(e=\u003enew Promise((t,n)=\u003e{a(\"Fetching file form...\");const r=new XMLHttpRequest;r.onreadystatechange=function(){if(4==r.readyState\u0026\u0026200==r.status){const n=o(r.responseText).querySelector(\".octicon-pencil\").parentElement.parentElement.querySelectorAll(\"input\")[1];t({url:e,token:n.value})}},r.open(\"GET\",e),r.send()})).then(e=\u003enew Promise((t,n)=\u003e{const r=e.url.replace(\"/blob/\",\"/edit/\");a(\"Fetching edit form...\");const o=new XMLHttpRequest;o.onreadystatechange=function(){4==o.readyState\u0026\u0026200==o.status\u0026\u0026t({url:e.url,html:o.responseText})},o.open(\"POST\",r);var c=new FormData;c.append(\"utf8\",\"✓\"),c.append(\"authenticity_token\",e.token),o.send(c)})).then(e=\u003enew Promise((t,n)=\u003e{const r=e.url.replace(\"/blob/master/\",\"/tree-save/master/\");a(\"Sending propose change data...\");const s=o(e.html),l=new XMLHttpRequest;l.onreadystatechange=function(){4==l.readyState\u0026\u0026200==l.status\u0026\u0026t(l.responseURL)},l.open(\"POST\",r);var i=new FormData;i.append(\"utf8\",\"✓\"),i.append(\"authenticity_token\",s.querySelector(\".js-blob-form\u003einput[name=authenticity_token]\").value),i.append(\"filename\",s.querySelector(\"input[name=filename]\").value),i.append(\"new_filename\",s.querySelector(\"input[name=new_filename]\").value),i.append(\"commit\",s.querySelector(\".js-commit-oid\").value),i.append(\"quick_pull\",s.querySelector(\"input[name=quick_pull]\").value),i.append(\"pr\",\"\"),i.append(\"content_changed\",\"true\"),i.append(\"value\",c.Clean(s.querySelector(\".js-code-textarea\").value,p,u)),i.append(\"message\",\"\"),i.append(\"placeholder_message\",\"Internet cleaning\"),i.append(\"description\",\"Powered by [Internet Cleaner®️](https://github.com/404-html/internet-cleaner)\"),setTimeout(()=\u003e{l.send(i)},2e3)})).then(e=\u003e(a(\"Fetching propose change form...\"),new Promise((t,n)=\u003e{const r=new XMLHttpRequest;r.onreadystatechange=function(){4==r.readyState\u0026\u0026200==r.status\u0026\u0026t(r.responseText)},r.open(\"GET\",e,!0),r.send()}))).then(e=\u003e{document.open(\"text/html\",\"replace\"),document.write(e),document.close(),setTimeout(()=\u003e{document.querySelector(\".compare-pr-placeholder\u003ebutton\").click()},700),a(\"I'm done!\")}).catch(e=\u003e{a(\"Something went wrong! Bad side of Internet is defending itself...\"),a(e)})}]);\n```\n\n\u003cimg src=\"https://github.com/404-html/internet-cleaner/blob/master/assets/showcase.gif?raw=true\" alt=\"drawing\" width=\"100%\"/\u003e\n\n\n## Contributors\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003e\n\t\t\t\u003ca href=\"https://github.com/roottool\"\u003e\n\t\t\t\t\u003cimg src=\"https://avatars2.githubusercontent.com/u/11808736?s=400\u0026v=4\" width=\"100px;\" alt=\"roottool\" /\u003e\n\t\t\t\t\u003cbr /\u003e\u003csub\u003e\u003cb\u003eroottool\u003c/b\u003e\u003c/sub\u003e\n\t\t\t\u003c/a\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\n\t\t\t\u003ca href=\"https://github.com/500-html\"\u003e\n\t\t\t\t\u003cimg src=\"https://avatars1.githubusercontent.com/u/49574697?s=400\u0026v=4\" width=\"100px;\" alt=\"roottool\" /\u003e\n\t\t\t\t\u003cbr /\u003e\u003csub\u003e\u003cb\u003e500-html\u003c/b\u003e\u003c/sub\u003e\n\t\t\t\u003c/a\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n### Do you like it? Give it a star! ⭐️\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F404-html%2Finternet-cleaner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F404-html%2Finternet-cleaner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F404-html%2Finternet-cleaner/lists"}