{"id":20139058,"url":"https://github.com/threeletters/noswearingplease","last_synced_at":"2025-04-09T18:22:03.349Z","repository":{"id":65424826,"uuid":"71089769","full_name":"ThreeLetters/NoSwearingPlease","owner":"ThreeLetters","description":"Advanced profanity filter based on phonetics","archived":false,"fork":false,"pushed_at":"2019-02-13T18:16:35.000Z","size":75,"stargazers_count":13,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-23T20:22:23.630Z","etag":null,"topics":["censorship","filter","javascript","phonetics","profanity"],"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/ThreeLetters.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-17T01:39:40.000Z","updated_at":"2024-10-11T15:48:59.000Z","dependencies_parsed_at":"2023-01-23T02:05:11.838Z","dependency_job_id":null,"html_url":"https://github.com/ThreeLetters/NoSwearingPlease","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/ThreeLetters%2FNoSwearingPlease","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreeLetters%2FNoSwearingPlease/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreeLetters%2FNoSwearingPlease/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreeLetters%2FNoSwearingPlease/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThreeLetters","download_url":"https://codeload.github.com/ThreeLetters/NoSwearingPlease/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085658,"owners_count":21045193,"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":["censorship","filter","javascript","phonetics","profanity"],"created_at":"2024-11-13T21:43:49.591Z","updated_at":"2025-04-09T18:22:03.323Z","avatar_url":"https://github.com/ThreeLetters.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NoSwearingPlease\nAn advanced profanity filter based on English phonetics (how stuff sounds). For example, fck will get caught as fuck, but frck will not. Shat or shet will be caught as shit, but not shot.\n\n* Tells you what swears and where they are used in a message\n* Very resistant to filter bypassing attempts. Deviations to words will be caught and reported.\n* Words with special characters can get caught (EG: ⓕ*ⓒⓚ)\n* Words with certain deviations will get caught (EG: shat -\u003e shit)\n\n### Usage\n\n```js\nvar checker = require(\"noswearing\");\nvar result = checker(\"This Ⓕ*₵𝓴ing filter is the best shat I have ever seen\");\n\n/*\n[ { original: 'Ⓕ*₵𝓴ing', // Original word in message\n    word: 'fucking', // Word in dataset\n    deviations: 2, // Number of deviations\n    info: 2, // 0 = not very offensive, 1 = maybe, 2 = profane\n    start: 5, // Start index of swear in original message\n    end: 12 }, // End index of swear in original message\n  { original: 'shat',\n    word: 'shit',\n    deviations: 1,\n    info: 1,\n    start: 32,\n    end: 36 } ]\n*/\n```\n\n### Disclaimer about Phonetics\n\nLots of things can go wrong with phonetics, especially for a filter as simple as this. Usually, phonetic filters are much more advanced, with things like NLP and machine learning. However, I didnt have the time or the desire to do that since I only made this filter to be a little better than all the FREE filters out there. In addition, I am just a programmer, not an English expert. When making this, I took a different approach, and leaned more towards experimentation. Due to that there might be some cases where this filter will just be plain wrong. But, if you find something like that, please tell me so I can fix it. I can't fix a problem I dont know of.\n\n### Disclaimer about Data\nData is from Cuss - https://github.com/words/cuss\n\nI didnt make it. I did modify some of it though, because the words there arn't very well-rated.\n\nHere is their license:\n\n```\n(The MIT License)\n\nCopyright (c) 2016 Titus Wormer \u003ctituswormer@gmail.com\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreeletters%2Fnoswearingplease","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthreeletters%2Fnoswearingplease","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreeletters%2Fnoswearingplease/lists"}