{"id":22111648,"url":"https://github.com/phx/parental_control_squid","last_synced_at":"2025-08-21T10:16:18.457Z","repository":{"id":121578698,"uuid":"440635846","full_name":"phx/parental_control_squid","owner":"phx","description":"Python3-based parental control script comparing Squid forward proxy access log entries to a word list","archived":false,"fork":false,"pushed_at":"2021-12-21T20:20:19.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T04:40:49.483Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/phx.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":"2021-12-21T19:58:23.000Z","updated_at":"2021-12-21T20:20:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"531e94b5-9b44-4d9a-bb17-bdf2c8271fa6","html_url":"https://github.com/phx/parental_control_squid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phx/parental_control_squid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phx%2Fparental_control_squid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phx%2Fparental_control_squid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phx%2Fparental_control_squid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phx%2Fparental_control_squid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phx","download_url":"https://codeload.github.com/phx/parental_control_squid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phx%2Fparental_control_squid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271462089,"owners_count":24763858,"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","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"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":[],"created_at":"2024-12-01T10:50:07.901Z","updated_at":"2025-08-21T10:16:18.417Z","avatar_url":"https://github.com/phx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![logo](./logo.png?raw=true)\n\n# Parental Control Squid\n\n**Dependencies:**\n\n- any *nix OS\n- squid forward proxy (local or remote)\n- python3 (all native library)\n- bash (not `sh` -- optional for keeping the list sorted via `sortlist.sh`)\n\nThis is a python script that I wrote in order to help keep an eye on my kids.  They are young, but they have their own computers, and I'm not very fond of commercial spyware, so I decided to roll my own.\n\nThe script is compatible with any local or remote host running Squid forward proxy that you want to monitor for URL content.  Setting up Squid is beyond the scope of this guide, so please feel free to Google\nthat on your own.\n\nBasically, I have both of my kid's WiFi MAC addresses in a LAN NAT rule that forwards all outgoing HTTP/HTTPS traffic to my squid forward proxy.\n\nI found a list of really bad words (some not necessarily bad, but stuff that my wife and I would want to know about if they were interested in finding out about).\n\nI have the script running on my management server via cronjob every hour, and if it finds any interesting traffic from the kids' laptops, it will send a text to my wife and myself.\n\nThe wordlist is not exhaustive, and I have removed numerous terms that caused false positives, but it seems to work very well. \n\n## sortlist.sh\n\nThis is a bash script used for adding and removing terms from `wordlist.txt`, while at the same time, keeping that file deduplicated and organized.\n\n### Examples:\n\nRemove `weed` from `wordlist.txt` because it causes a false positive for `seaweed flavored pringles`:\n\n`./sortlist.sh -d weed`\n\nRemove `puss`, `butt`, and `pee` from `wordlist.txt` because of false positives containing `button`, `shopee`, and a weird Dragonball Z URL -- additionally, we will remove `gspot`, because of false positives from `blogspot.com`:\n\n`./sortlist.sh -d puss butt pee gspot`\n\nLet's not let ourselves get too comfortable, let's go ahead and add a few more specific/explicit entries:\n\n`./sortlist -a pussy pussies butts peeing g-spot`\n\n## Running the main script:\n\nSimply run `./parental_control.py`, and everything will work smoothly, as long as you have the `config.ini` populated correctly.\n\nAlternately, if you are testing some things and don't want email/texts to be sent, you can also run `./parental_control.py -noemail`.\n\n## Details:\n\nThis should run on pretty much any OS except for Windows.\n\nIf you have any questions, please feel free to submit an issue.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphx%2Fparental_control_squid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphx%2Fparental_control_squid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphx%2Fparental_control_squid/lists"}