{"id":21040997,"url":"https://github.com/chfoo/pleaseopme","last_synced_at":"2026-01-23T07:34:42.715Z","repository":{"id":27855100,"uuid":"31345659","full_name":"chfoo/pleaseopme","owner":"chfoo","description":"Auto Op bot script for IRC","archived":false,"fork":false,"pushed_at":"2022-06-30T18:16:32.000Z","size":66,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-15T16:43:27.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chfoo.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}},"created_at":"2015-02-26T01:51:29.000Z","updated_at":"2024-07-13T07:41:51.000Z","dependencies_parsed_at":"2022-09-03T11:31:46.340Z","dependency_job_id":null,"html_url":"https://github.com/chfoo/pleaseopme","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/chfoo/pleaseopme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfoo%2Fpleaseopme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfoo%2Fpleaseopme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfoo%2Fpleaseopme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfoo%2Fpleaseopme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chfoo","download_url":"https://codeload.github.com/chfoo/pleaseopme/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfoo%2Fpleaseopme/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28683458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-11-19T13:49:40.745Z","updated_at":"2026-01-23T07:34:42.700Z","avatar_url":"https://github.com/chfoo.png","language":"Python","readme":"# PleaseOpMe\n\nAuto Op bot for IRC.\n\nInspired by EFnet's CHANFIX, this bot attempts to keep operator or voice mode to users in the channel.\n\n## Install\n\nRequires:\n\n* Python 3+\n* IRC module 19.0\n* SQLAlchemy module\n\nInstall Python, then use pip to install the Python libraries:\n\n        pip3 install --user irc sqlalchemy\n\nThen, set up the bot by editing the sample configuration file and run it:\n\n        python3 pleaseopme.py my_config_file.ini\n\nNote: This script was formerly a Willie Bot module. It is now a standalone script for stability reasons. You may still use the older versions by navigating to the older branch in the Git repository.\n\n## Usage\n\nTo get the bot to join a channel, use the `/invite` command.\n\nThe bot will monitor active users with operator (@) or voice (+) and give them back when they rejoin if they fit the criteria. The user must\n\n* have the same hostmask (same nick, user, and host),\n* have said (or `/me`) something so the bot knows the user's hostmask if the bot has not done a WHOIS/WHO query on the user yet,\n* have op or voice for at least 60 seconds,\n* and be back in the channel within 24 hours.\n\n### Channel operators\n\n\nTo force the bot to leave, `/kick` the bot.\n\nTo force it to clear its privilege table for the current channel, message the bot `revokeall` (say `BOT_NAME: revokeall`).\n\n### Bot admin\n\nPassword authentication is done by sending a private message with `auth PASSWORD`. The password is cached for 5 minutes.\n\nTo force the bot to leave a channel, send a private message to the bot with `part CHANNEL_NAME`.\n\nTo get ops, message the bot `op` (say `BOT_NAME: op`) in the channel.\n\nTo get a list of currently joined channels, send a private message `channels` .\n\n## Tips\n\n* The bot may occasionally need to be restarted due to bugs or updates. Run at least two bots with each on different servers and connected to a different IRC server.\n* Start the bot with a daemon system such as Upstart or Systemd and configure it to restart if the bot dies (with appropriate restart intervals if applicable).\n* If the daemon system supports delays, include a delay of about 45 to 60 seconds to avoid flooding the server. Otherwise, use the sleep command as part of the start up script.\n\n## Credits\n\n* [Sponsors](sponsors.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchfoo%2Fpleaseopme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchfoo%2Fpleaseopme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchfoo%2Fpleaseopme/lists"}