{"id":13715636,"url":"https://github.com/woodruffw/yossarian-bot","last_synced_at":"2026-07-26T15:30:15.580Z","repository":{"id":25275193,"uuid":"28700798","full_name":"woodruffw/yossarian-bot","owner":"woodruffw","description":"An IRC bot with a bunch of features.","archived":false,"fork":false,"pushed_at":"2025-02-18T15:55:10.000Z","size":1095,"stargazers_count":32,"open_issues_count":11,"forks_count":20,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-18T16:38:01.798Z","etag":null,"topics":["bot","irc-bot","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/woodruffw.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},"funding":{"github":"woodruffw","thanks_dev":"u/gh/woodruffw"}},"created_at":"2015-01-02T01:58:45.000Z","updated_at":"2025-02-18T15:55:10.000Z","dependencies_parsed_at":"2024-03-18T16:36:00.072Z","dependency_job_id":"da30d2d6-da24-4a23-83c6-d2d37242c337","html_url":"https://github.com/woodruffw/yossarian-bot","commit_stats":{"total_commits":933,"total_committers":22,"mean_commits":42.40909090909091,"dds":0.3386923901393355,"last_synced_commit":"018d8b3624b88a39beccff37ef075391a357f4fc"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodruffw%2Fyossarian-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodruffw%2Fyossarian-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodruffw%2Fyossarian-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodruffw%2Fyossarian-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woodruffw","download_url":"https://codeload.github.com/woodruffw/yossarian-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240778250,"owners_count":19855979,"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":["bot","irc-bot","ruby"],"created_at":"2024-08-03T00:01:01.398Z","updated_at":"2026-07-26T15:30:15.468Z","avatar_url":"https://github.com/woodruffw.png","language":"Ruby","funding_links":["https://github.com/sponsors/woodruffw","https://thanks.dev/u/gh/woodruffw"],"categories":["Bots"],"sub_categories":["Self-hosted"],"readme":"yossarian-bot\n=============\n\n![license](https://raster.shields.io/badge/license-MIT%20with%20restrictions-green.png)\n\nAn entertaining IRC bot that's easy to extend.\n\n## Features:\n* Simple real-time administration.\n* Unix fortunes (`fortune` must be present)\n* Catch-22 quotes\n* UrbanDictionary queries\n* Wolfram|Alpha queries\n* Smart weather queries (Wunderground)\n* Google searches\n* YouTube searches\n* ROT13 message \"encryption\"\n* Magic 8 Ball queries\n* Dictionary queries (Merriam-Webster)\n* Cleverbot discussions\n* Channel 'seen' log\n* Link compression (TinyURL)\n* ...and [much more](COMMANDS.md)!\n\n## Installation\n\nFirst, clone the repo and install `yossarian-bot`'s dependencies:\n\n```bash\n$ git clone https://github.com/woodruffw/yossarian-bot\n$ cd yossarian-bot\n$ bundle install\n```\n\nIf you get errors during the bundle installation process, make sure that you're\nusing Ruby 3.0 or later and have Ruby's development headers installed. You may need them\nfrom your package manager. Earlier versions of Ruby *might* work, but are\nnot guaranteed or tested.\n\n`yossarian-bot` also requires API keys for several services. Make sure that\nthey are exported to the environment (or set in the configuration) as follows:\n\n* Wolfram|Alpha - `WOLFRAM_ALPHA_APPID_KEY`\n* Weather Underground - `WUNDERGROUND_API_KEY`\n* WeatherStack - `WEATHERSTACK_API_KEY`\n* Merriam-Webster - `MERRIAM_WEBSTER_API_KEY`\n* YouTube (v3) - `YOUTUBE_API_KEY`\n* Last.fm - `LASTFM_API_KEY`, `LASTFM_API_SECRET`\n* Open Exchange Rates - `OEX_API_KEY`\n* Giphy - `GIPHY_API_KEY`\n* BreweryDB - `BREWERYDB_API_KEY`\n* AirQuality - `AIRNOW_API_KEY`\n* OMDB - `OMDB_API_KEY`\n\nAdditionally, the `fortune` utility must be present in order for Unix fortunes\nto work correctly. Some package managers also provide the `fortunes`,\n`fortunes-off`, and `fortunes-bofh-excuses` packages for additional fortune\nmessages.\n\n### Running\n\nOnce all dependencies are installed, `yossarian-bot` can be run as follows:\n\n```bash\n$ ruby bot-control.rb start\n$ # OR:\n$ ruby yossarian-bot.rb # not run in background\n```\n\n### Using Docker\n\n```bash\ndocker build -t yossarian-bot:latest .\ndocker run -v $PWD/config.yml:/config.yml yossarian-bot\n```\n\n## Using the bot\n\n### Configuration Options\n\n`yossarian-bot` is configured via a YAML file named *config.yml*.\n\nLook at [the example config.yml](config.yml.example) to see a list of optional\nand required keys.\n\n### Commands\n\nThere are a bunch of commands that `yossarian-bot` accepts. You can\nsee a complete list in the [COMMANDS](COMMANDS.md) file.\n\n### Matches\n\n`yossarian-bot` matches all HTTP(S) links and messages the title of the linked\nHTML page. This feature can be disabled by adding `LinkTitling` to the server's\n`disabled_plugins` array in `config.yml`.\n\nMessages of the form `s/(.+)/(.+)` are also matched, and the first pattern\nmatched is applied to the user's last previous message, with the second match\nreplacing it. For example, a typo like \"this is a setnence\" can be corrected\nwith `s/setnence/sentence`. This feature can be disabled by adding\n`RegexReplace` to the server's `disabled_plugins` array in `config.yml`.\n\n## Contributing\n\nContributions to `yossarian-bot` are welcomed and appreciated.\n\nIf you're writing a plugin, check out the\n[quick style guide](WRITING_PLUGINS.md) to writing plugins for `yossarian-bot`.\n\nIf you'd like to contribute but don't have any contributions in mind, check out\nthe [open issues](https://github.com/woodruffw/yossarian-bot/issues?q=is%3Aopen+is%3Aissue).\nThey're regularly updated with things that can be fixed, improved, and added.\n\n## License\n\n`yossarian-bot` is licensed under a restricted modification of the MIT license.\n\nFor the exact terms, see the [license](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoodruffw%2Fyossarian-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoodruffw%2Fyossarian-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoodruffw%2Fyossarian-bot/lists"}