{"id":25163246,"url":"https://github.com/lexicalunit/spellbot","last_synced_at":"2025-04-09T15:04:07.507Z","repository":{"id":36976880,"uuid":"274802435","full_name":"lexicalunit/spellbot","owner":"lexicalunit","description":"The Discord bot for SpellTable.","archived":false,"fork":false,"pushed_at":"2025-04-08T15:59:09.000Z","size":9332,"stargazers_count":28,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T15:01:19.352Z","etag":null,"topics":["discord-bot","gaming","lfg","magic","magic-the-gathering","spelltable"],"latest_commit_sha":null,"homepage":"https://spellbot.io","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/lexicalunit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"lexicalunit","ko_fi":"lexicalunit"}},"created_at":"2020-06-25T01:12:05.000Z","updated_at":"2025-04-08T15:59:12.000Z","dependencies_parsed_at":"2023-02-18T03:05:49.562Z","dependency_job_id":"e94ab13b-838b-43b4-9da3-ecac1421c9f4","html_url":"https://github.com/lexicalunit/spellbot","commit_stats":{"total_commits":1368,"total_committers":4,"mean_commits":342.0,"dds":0.3720760233918129,"last_synced_commit":"69f024eff8cea156ed8203e32317e215e31b675c"},"previous_names":[],"tags_count":389,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexicalunit%2Fspellbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexicalunit%2Fspellbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexicalunit%2Fspellbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexicalunit%2Fspellbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lexicalunit","download_url":"https://codeload.github.com/lexicalunit/spellbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248055278,"owners_count":21040156,"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":["discord-bot","gaming","lfg","magic","magic-the-gathering","spelltable"],"created_at":"2025-02-09T03:36:06.666Z","updated_at":"2025-04-09T15:04:07.472Z","avatar_url":"https://github.com/lexicalunit.png","language":"Python","funding_links":["https://patreon.com/lexicalunit","https://ko-fi.com/lexicalunit","https://www.patreon.com/tolariancommunitycollege","https://www.patreon.com/PlayingWithPowerMTG","https://www.patreon.com/MythicTrack)!","https://www.patreon.com/lexicalunit"],"categories":[],"sub_categories":[],"readme":"# SpellBot\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg\n    width=\"200\"\n    alt=\"spellbot\"\n    src=\"https://raw.githubusercontent.com/lexicalunit/spellbot/main/spellbot.png\"\n/\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://discordapp.com/api/oauth2/authorize?client_id=725510263251402832\u0026permissions=2416045137\u0026scope=applications.commands%20bot\"\u003e\n    \u003cimg\n        align=\"center\"\n        alt=\"Add to Discord\"\n        src=\"https://user-images.githubusercontent.com/1903876/88951823-5d6c9a00-d24b-11ea-8523-d256ccbf4a3c.png\"\n    /\u003e\n\u003c/a\u003e\n\u003cbr /\u003e\nThe Discord bot for \u003ca href=\"https://spelltable.wizards.com/\"\u003eSpellTable\u003c/a\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n| \u003c!-- --\u003e | \u003c!-- --\u003e |\n| ---: | :---: |\n| **Deployment**    | [![build][build-badge]][build] [![heroku][heroku-badge]][heroku] |\n| **Dependencies**  | [![python][python-badge]][python] [![discord.py][discord-py-badge]][discord-py] |\n| **Distribution**  | [![pypi][pypi-badge]][pypi] [![docker][docker-badge]][docker-hub] [![mit][mit-badge]][mit] |\n| **Quality**       | [![codecov][codecov-badge]][codecov] [![ruff][ruff-badge]][ruff] [![pyright][pyright-badge]][pyright] |\n| **Observability** | [![uptime][uptime-badge]][uptime] [![metrics][metrics-badge]][metrics] [![datadog][datadog-badge]][datadog] |\n| **Socials**       | [![discord][discord-badge]][discord-invite] [![follow][follow-badge]][follow] |\n| **Funding**       | [![patreon][patreon-button]][patreon] [![kofi][kofi-button]][kofi] |\n\n\u003c/div\u003e\n\n## 🤖 Using SpellBot\n\nSpellBot helps you find _Magic: The Gathering_ games on [SpellTable][spelltable] or [Table Stream][tablestream]. Just looking to\nplay a game of Commander? Run the command `/lfg` and SpellBot will help you out!\n\n\u003cp align=\"center\"\u003e\n    \u003cimg\n        src=\"https://github.com/lexicalunit/spellbot/assets/1903876/39381709-8dfd-473e-8072-e7267c50b4ad\"\n        width=\"600\"\n        alt=\"/lfg\"\n    /\u003e\n\u003c/p\u003e\n\nSpellBot uses [Discord slash commands][slash]. Each command provides its own help documentation that\nyou can view directly within Discord itself before running the command. Take a look and see what's\navailable by typing `/` and browsing the commands for SpellBot!\n\n## 🔭 Where to Play?\n\nThese communities are using SpellBot to play Magic! Maybe one of them is right for you?\n\n\u003cdiv align=\"center\"\u003e\n\u003c!-- SERVERS BEGIN --\u003e\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.playedh.com/\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://user-images.githubusercontent.com/1903876/140843874-78510411-dcc8-4a26-a59a-0d6856698dcc.png\" alt=\"PlayEDH\" /\u003e\u003cbr /\u003ePlayEDH\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://discord.com/invite/cedh\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/32c324a3-b060-4bd2-8d8a-a72799acc0ff\" alt=\"cEDH\" /\u003e\u003cbr /\u003ecEDH\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.patreon.com/tolariancommunitycollege\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/92aa9c59-9f30-4f4e-83ab-fc86e72e8f40\" alt=\"Tolarian Community College\" /\u003e\u003cbr /\u003eTolarian\u0026nbsp;Community\u0026nbsp;College\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://disboard.org/server/815001383979450368\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/26b824c1-fa82-4b18-a47c-37114a0023b7\" alt=\"EDH Fight Club\" /\u003e\u003cbr /\u003eEDH\u0026nbsp;Fight\u0026nbsp;Club\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://disboard.org/server/757455940009328670\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/a2117868-cd86-44a9-8e92-91e5b2d639c2\" alt=\"Oath of the Gaywatch\" /\u003e\u003cbr /\u003eOath\u0026nbsp;of\u0026nbsp;the\u0026nbsp;Gaywatch\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://discord.gg/CfCb9fmgCD\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/user-attachments/assets/86bb3488-fa03-4fb6-80c7-3ef929fb8076\" alt=\"Top Tier Bangers\" /\u003e\u003cbr /\u003eTop\u0026nbsp;Tier\u0026nbsp;Bangers\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.facebook.com/EDHTambayan/\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://user-images.githubusercontent.com/1903876/161825614-64e432d4-85e8-481e-8f41-f66ab8c940cc.png\" alt=\"EDH Tambayan\" /\u003e\u003cbr /\u003eEDH\u0026nbsp;Tambayan\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.playtowinmtg.com/\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/e04abae7-394e-4f89-94e9-edbdbfd411fb\" alt=\"Play to Win\" /\u003e\u003cbr /\u003ePlay\u0026nbsp;to\u0026nbsp;Win\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.patreon.com/PlayingWithPowerMTG\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/60a984e4-8fa1-4d8f-bf0d-2e391776b56d\" alt=\"Playing with Power\" /\u003e\u003cbr /\u003ePlaying\u0026nbsp;with\u0026nbsp;Power\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://linktr.ee/cedhspain\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/823a2ed7-c59a-47da-886c-5f468a3b3032\" alt=\"Comunidad Española de cEDH\" /\u003e\u003cbr /\u003eComunidad\u0026nbsp;Española\u0026nbsp;de\u0026nbsp;cEDH\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://discord.gg/commander\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/user-attachments/assets/6f4cf0de-ed31-4d19-b2c2-78fb9b544992\" alt=\"The Commander Staple\" /\u003e\u003cbr /\u003eThe\u0026nbsp;Commander\u0026nbsp;Staple\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://discord.gg/ZmPsjrxe4h\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/47d68a5b-fe08-497c-a76b-c8dde5f56af3\" alt=\"Command the Cause\" /\u003e\u003cbr /\u003eCommand\u0026nbsp;the\u0026nbsp;Cause\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.ka0stournaments.com/\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/104dc2da-4aad-4998-a778-479b54d1c600\" alt=\"ka0s Tournaments\" /\u003e\u003cbr /\u003eka0s\u0026nbsp;Tournaments\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/TurboDCommander\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/d7d6c867-c857-4760-8552-8b8e7b4a1bad\" alt=\"Turbo Commander\" /\u003e\u003cbr /\u003eTurbo\u0026nbsp;Commander\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.cedh.uk/\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/34bcb78c-60e2-495a-b919-873d0d331798\" alt=\"cEDH UK\" /\u003e\u003cbr /\u003ecEDH\u0026nbsp;UK\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://disboard.org/server/689674672240984067\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/lexicalunit/spellbot/assets/1903876/322d1bdf-6b32-45f5-93b2-8d4963075772\" alt=\"MTG@Home\" /\u003e\u003cbr /\u003eMTG@Home\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.mtgdc.info/\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/user-attachments/assets/d7dfa16c-8b65-40e4-b449-4758fd3c3807\" alt=\"Duel Commander\" /\u003e\u003cbr /\u003eDuel\u0026nbsp;Commander\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://discord.gg/bA5tf3Xc8M\"\u003e\u003cimg width=\"200\" height=\"200\" src=\"https://github.com/user-attachments/assets/5a3dbc81-0867-4e86-8c9c-f3801f681f54\" alt=\"Proxy Pirates\" /\u003e\u003cbr /\u003eProxy\u0026nbsp;Pirates\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\u003c!-- SERVERS END --\u003e\n\u003c/div\u003e\n\nWant your community to be featured here as well? Please contact me at\n[spellbot@lexicalunit.com](mailto:spellbot@lexicalunit.com)!\n\n## 📊 Mythic Track\n\nSpellBot integrates seamlessly with [Mythic Track](https://www.mythictrack.com/spellbot) which allows you to track games within your Discord server. Visualize and explore your data to reveal interesting trends. To get started run the `/setup_mythic_track` command on your server. Please also consider [supporting Mythic Track](https://www.patreon.com/MythicTrack)!\n\u003cp align=\"center\"\u003e\n    \u003cimg\n        src=\"https://github.com/user-attachments/assets/07dacc71-baa6-4605-a44b-bacf8dc23076\"\n        width=\"617\"\n        alt=\"Mythic Track Setup\"\n    /\u003e\n\u003c/p\u003e\n\n## ❓ Help\n\nTwo of the most common issues people using SpellBot run into are related to receiving Direct Messages from the bot. SpellBot uses Discord embeds in the DMs that it sends and there are some settings you need to enable for this to work correctly.\n\nIn your `Settings ► Chat` make sure that you have enabled **Embeds and link previews**.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg\n        src=\"https://github.com/lexicalunit/spellbot/assets/1903876/0d584532-0689-44b5-ba18-882d44b4b808\"\n        width=\"700\"\n        alt=\"Settings - Chat\"\n    /\u003e\n\u003c/p\u003e\n\nAnd in your `Settings ► Privacy \u0026 Safety`, enable both **Allow direct message message for server members** and **Enable message requests from server members you may not know**.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg\n        src=\"https://github.com/lexicalunit/spellbot/assets/1903876/f16c943b-5120-4def-a254-d7fd04af2689\"\n        width=\"700\"\n        alt=\"Settings - Privacy \u0026 Safety\"\n    /\u003e\n\u003c/p\u003e\n\nIf you have more questions, please don't hesitate to join us on the [SpellBot Discord server][discord-invite] to get answers from our generous community.\n\n## 🎤 Feedback\n\nThoughts and suggestions? Come join us on the [SpellBot Discord server][discord-invite]! Please\nalso feel free to [directly report any bugs][issues] that you encounter. Or reach out to me on\nBlueSky at [@spellbot.io][follow].\n\n## 🙌 Supported By\n\nThe continued operation of SpellBot is supported by \u003ca href=\"https://www.playedh.com/\"\u003ePlayEDH\u003c/a\u003e as well as generous donations from [my patrons on Patreon][patreon] and [Ko-fi][kofi]. If you would like to help support SpellBot, please consider [signing up][patreon] for as little a _one dollar a month_ or [giving me a one-off tip][kofi] for whatever you feel is appropriate.\n\n## ❤️ Contributing\n\nIf you'd like to become a part of the SpellBot development community please first know that we have\na documented [code of conduct](CODE_OF_CONDUCT.md) and then see our\n[documentation on how to contribute](CONTRIBUTING.md) for details on how to get started.\n\n## 🐳 Docker Support\n\nSpellBot can be run via docker. Our image is published to\n[lexicalunit/spellbot][docker-hub]. See [our documentation on Docker Support](DOCKER.md) for help\nwith installing and using it.\n\n## 🔍 Fine-print\n\nAny usage of SpellBot implies that you accept the following policies.\n\n- [Privacy Policy](PRIVACY_POLICY.md)\n- [Terms of Service](TERMS_OF_SERVICE.md)\n\n---\n\n[MIT][mit] © [amy@lexicalunit][lexicalunit] et [al][contributors]\n\n[build-badge]: https://github.com/lexicalunit/spellbot/workflows/build/badge.svg\n[build]: https://github.com/lexicalunit/spellbot/actions\n[codecov-badge]: https://codecov.io/gh/lexicalunit/spellbot/branch/main/graph/badge.svg\n[codecov]: https://codecov.io/gh/lexicalunit/spellbot\n[contributors]: https://github.com/lexicalunit/spellbot/graphs/contributors\n[datadog-badge]: https://img.shields.io/badge/monitors-datadog-blueviolet.svg\n[datadog]: https://app.datadoghq.com/apm/home\n[discord-badge]: https://github.com/lexicalunit/spellbot/assets/1903876/871aca88-3636-4c38-bcc1-f4093f89146f\n[discord-invite]: https://discord.gg/HuzTQYpYH4\n[discord-py-badge]: https://img.shields.io/badge/discord.py-2.1.0-blue\n[discord-py]: https://github.com/Rapptz/discord.py\n[docker-badge]: https://img.shields.io/docker/pulls/lexicalunit/spellbot.svg\n[docker-hub]: https://hub.docker.com/r/lexicalunit/spellbot\n[follow-badge]: https://img.shields.io/badge/Bluesky-1185FE?style=flat\u0026logo=bluesky\u0026logoColor=white\n[follow]: https://bsky.app/profile/spellbot.io\n[heroku-badge]: https://img.shields.io/badge/cloud-heroku-green\n[heroku]: https://dashboard.heroku.com/apps/lexicalunit-spellbot\n[issues]: https://github.com/lexicalunit/spellbot/issues\n[kofi-button]: https://img.shields.io/badge/Ko--fi-F16061?style=flat\u0026logo=ko-fi\u0026logoColor=white\n[kofi]: https://ko-fi.com/lexicalunit\n[lexicalunit]: http://github.com/lexicalunit\n[metrics-badge]: https://img.shields.io/badge/metrics-grafana-orange.svg\n[metrics]: https://lexicalunit.grafana.net/d/4TSUCbcMz/spellbot?orgId=1\n[mit-badge]: https://img.shields.io/badge/License-MIT-yellow.svg\n[mit]: https://opensource.org/license/mit\n[patreon-button]: https://img.shields.io/badge/Patreon-F96854?style=flat\u0026logo=patreon\u0026logoColor=white\n[patreon]: https://www.patreon.com/lexicalunit\n[pypi-badge]: https://img.shields.io/pypi/v/spellbot\n[pypi]: https://pypi.org/project/spellbot/\n[pyright-badge]: https://img.shields.io/badge/types-pyright-c3c38f.svg\n[pyright]: https://github.com/microsoft/pyright\n[python-badge]: https://img.shields.io/badge/python-3.12-blue.svg\n[python]: https://www.python.org/\n[ruff-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\n[ruff]: https://github.com/astral-sh/ruff\n[slash]: https://discord.com/blog/slash-commands-are-here\n[spelltable]: https://spelltable.wizards.com/\n[tablestream]: https://table-stream.com/\n[uptime-badge]: https://img.shields.io/uptimerobot/ratio/m785764282-c51c742e56a87d802968efcc\n[uptime]: https://uptimerobot.com/dashboard#785764282\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flexicalunit%2Fspellbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flexicalunit%2Fspellbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flexicalunit%2Fspellbot/lists"}