{"id":16614449,"url":"https://github.com/belak/python-seabird","last_synced_at":"2026-04-24T14:02:18.941Z","repository":{"id":34314068,"uuid":"38231526","full_name":"belak/python-seabird","owner":"belak","description":"Simple proof of concept IRC bot using Python's asyncio module","archived":false,"fork":false,"pushed_at":"2022-09-16T17:42:15.000Z","size":120,"stargazers_count":0,"open_issues_count":24,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-18T00:43:17.444Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/belak.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-06-29T06:33:27.000Z","updated_at":"2019-08-28T20:26:25.000Z","dependencies_parsed_at":"2023-01-15T06:15:58.253Z","dependency_job_id":null,"html_url":"https://github.com/belak/python-seabird","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/belak/python-seabird","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belak%2Fpython-seabird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belak%2Fpython-seabird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belak%2Fpython-seabird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belak%2Fpython-seabird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/belak","download_url":"https://codeload.github.com/belak/python-seabird/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/belak%2Fpython-seabird/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32226408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"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-10-12T02:06:18.066Z","updated_at":"2026-04-24T14:02:18.908Z","avatar_url":"https://github.com/belak.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# seabird\n\n![Build Status](https://drone.coded.io/api/badges/belak/python-seabird/status.svg)\n\nAKA the bot formerly known as the bot formerly known as seabird\n\n## Goals\n\n* Simple framework\n* Clean code\n* Only stdlib in core (irc portion)\n\n## Setup\n\nRequired dependencies for core:\n\n* python3.5 or greater\n\nInstall python plugin dependencies:\n\n* pip install -r requirements.txt\n\nThe default distribution of seabird needs to be configured before it will do\nanything. It will import the config module. The simplest option is to copy the\nsample file provided at [config.dist.py](config.dist.py) to config.py, though\nthe important settings are outlined below:\n\n### Basic settings\n\n| Setting              | Required | Description                                             |\n|----------------------+----------+---------------------------------------------------------|\n| NICK                 | Yes      | IRC nickname                                            |\n| PASS                 |          | IRC password                                            |\n| USER                 | Yes      | IRC username                                            |\n| NAME                 | Yes      | IRC full name                                           |\n| HOST                 | Yes      | Hostname of the IRC server to connect to                |\n| PORT                 | Yes      | Port of the IRC server to connect to                    |\n| CMDS                 |          | List of commands to run after a welcome msg is received |\n| PLUGIN_CLASSES       |          | List of plugin classes to load                          |\n| PLUGIN_MODULES       |          | List of plugin modules to load                          |\n| RECONNECT_DELAY      |          | Delay between connection lost and reconnecting.         |\n| RECONNECT_ON_FAILURE |          | Reconnect on connection lost                            |\n| SSL                  |          | True if the server needs SSL, False otherwise           |\n| SSL_VERIFY           |          | True if the server has a valid cert, False otherwise    |\n\n### Plugin settings\n\n| Setting      | Required for plugin  | Description                                 |\n|--------------+----------------------+---------------------------------------------|\n| PREFIX       | For commands to work | Prefix to look for in messages for commands |\n| FORECAST_KEY | Weather              | API key for forecast.io                     |\n| DB_URI       | DB, karma, weather   | SQLAlchemy Database URI                     |\n\n### Running seabird\n\nseabird can be run with the command `python -m seabird`\n\n## asyncio\n\nIn order to start background processing, simply grab the event loop and add a\ntask. Events will be processed one at a time, but when you create a task it will\nfall back to the main event loop. This allows IRC messages to be processed in\nthe order they come in, but still makes it possible to move time consuming\noperations into the background.\n\nAs an example:\n\n``` python\nasync def callback(msg):\n    print('do a thing')\n\nloop = asyncio.get_event_loop()\nloop.create_task(callback(msg))\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbelak%2Fpython-seabird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbelak%2Fpython-seabird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbelak%2Fpython-seabird/lists"}