{"id":17239862,"url":"https://github.com/pbui/bobbit","last_synced_at":"2025-07-25T12:40:23.256Z","repository":{"id":39990640,"uuid":"151083073","full_name":"pbui/bobbit","owner":"pbui","description":"Bobbit (Simple Asynchronous IRC / Slack Bot)","archived":false,"fork":false,"pushed_at":"2025-05-22T18:43:31.000Z","size":374,"stargazers_count":16,"open_issues_count":10,"forks_count":26,"subscribers_count":1,"default_branch":"bobbit-0.2.x","last_synced_at":"2025-05-22T18:51:48.381Z","etag":null,"topics":["aiohttp","asyncio","bot","hacktoberfest","irc","irc-bot","python","pyyaml","slack"],"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/pbui.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,"zenodo":null}},"created_at":"2018-10-01T12:15:56.000Z","updated_at":"2025-05-22T18:43:34.000Z","dependencies_parsed_at":"2024-02-23T04:56:17.184Z","dependency_job_id":"1b35e2a8-f429-4e0c-a6b4-07b7bee0b6fe","html_url":"https://github.com/pbui/bobbit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pbui/bobbit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbui%2Fbobbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbui%2Fbobbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbui%2Fbobbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbui%2Fbobbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pbui","download_url":"https://codeload.github.com/pbui/bobbit/tar.gz/refs/heads/bobbit-0.2.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbui%2Fbobbit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264003318,"owners_count":23542604,"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":["aiohttp","asyncio","bot","hacktoberfest","irc","irc-bot","python","pyyaml","slack"],"created_at":"2024-10-15T05:49:57.211Z","updated_at":"2025-07-07T02:40:38.967Z","avatar_url":"https://github.com/pbui.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bobbit\n\n**bobbit** is a simple and modular *asynchronous* IRC / Slack bot written in\n[Python].  The current version uses [asyncio] as its core networking and event\nprocessing backend.\n\n## Requirements\n\n- [Python]  3.6+\n- [PyYAML]\n- [aiohttp]\n\n## Configuration\n\nBobbit requires a configuration YAML file (`bobbit.yaml`) to run, which should\nbe in the directory specified by `config-dir` (default: `~/.config/bobbit`). An\nexample config file looks like this:\n\n```\nnick:       \"bobbit\"\npassword:   \u003cpassword\u003e\nowners:\n    - \u003cowner\u003e\nhost:       \u003circ server\u003e\nport:       6667\nchannels:\n    - \u003cchannel\u003e\n```\n\nThe following modules also require configuration files (in `config-dir`):\n\n- lookup: requires `lookup.yaml`. Here's an example:\n\n  ```\n  cool kids:\n  - I wish that I could be like the cool kids \\\\ 'Cause all the cool kids, they seem to fit in\n  ```\n\n- weather: optionally reads `weather.yaml`. Here's an example:\n\n  ```\n  default:    \u003czipcode\u003e\n  ```\n\n### Slack\n\nTODO: Describe how to get Slack token.\n\nhttps://medium.com/@andrewarrow/how-to-get-slack-api-tokens-with-client-scope-e311856ebe9\n\n## Execution\n\nTo start the the bot, run `bin/bobbit`:\n\n```\n$ ./bin/bobbit -h\nusage: bobbit [--config-dir CONFIG_DIR] [--log-path LOG_PATH] [--debug]\n              [--local] [-h]\n\nSimple Asynchronous IRC/Slack Bot\n\noptional arguments:\n  --config-dir CONFIG_DIR  Configuration directory (default: ~/.config/bobbit)\n  --log-path LOG_PATH      Path to log file (default: None)\n  --debug                  Enable debug logging (default: False)\n  --local                  Enable local client (default: False)\n  -h, --help               Show this help message and exit\n```\n\n**Note**: The *local* client (ie. `--local`) allows you to test the modules\ndirectly in the terminal by using *standard input* rather than connecting to an\nactual IRC or Slack network.\n\n[Python]:   https://python.org\n[PyYAML]:   http://pyyaml.org/\n[aiohttp]:  https://docs.aiohttp.org/en/stable/\n[asyncio]:  https://docs.python.org/3/library/asyncio.html\n\n\n### Docker\n\nYou can also start application using docker:\n\nBuilding container\n\n```\ndocker build --no-cache -t 'bobbit' .\n```\n\nRunning:\n\n```\ndocker run -it bobbit\n```\n\nYou can pass args to application directly, also you can mount your config file using docker volumes, for example:\n\n```\ndocker run -v /my-config-dir:/tmp/my-config-dir bobbit --config-dir /tmp/config-dir\n```\n\nAnd change default user with using --env argument, for example:\n\n```\ndocker run -e USER=MYFANCYUSER bobbit --config-dir /tmp/config-dir\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbui%2Fbobbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbui%2Fbobbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbui%2Fbobbit/lists"}