{"id":23093573,"url":"https://github.com/ohmrr/quabos-discord","last_synced_at":"2025-08-16T10:32:04.567Z","repository":{"id":225051216,"uuid":"755831906","full_name":"ohmrr/quabos-discord","owner":"ohmrr","description":"Discord.js v14 bot made with TypeScript. Uses a markov chaining algorithm to create new strings from a dataset of messages from servers.","archived":false,"fork":false,"pushed_at":"2024-12-13T08:22:37.000Z","size":924,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-13T09:24:24.830Z","etag":null,"topics":["bot","chatbot","discord","discord-js-v14","discordjs","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/ohmrr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2024-02-11T07:46:29.000Z","updated_at":"2024-12-13T08:22:41.000Z","dependencies_parsed_at":"2024-08-16T00:47:06.701Z","dependency_job_id":"caa105ab-3fb9-4ff8-b931-b64d155bf836","html_url":"https://github.com/ohmrr/quabos-discord","commit_stats":null,"previous_names":["ohmrr/quabos","ohmrr/quabos-discord"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmrr%2Fquabos-discord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmrr%2Fquabos-discord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmrr%2Fquabos-discord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmrr%2Fquabos-discord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohmrr","download_url":"https://codeload.github.com/ohmrr/quabos-discord/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230031202,"owners_count":18162287,"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","chatbot","discord","discord-js-v14","discordjs","nodejs","typescript"],"created_at":"2024-12-16T21:47:46.886Z","updated_at":"2025-08-16T10:32:04.551Z","avatar_url":"https://github.com/ohmrr.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 👽 Quabos\n\nQuabos is an entertainment Discord bot built with TypeScript, Discord.js v14 and MongoDB. Using a Markov chaining algorithm, it will read in messages sent in your server and generate its own messages. Quabos is heavily inspired by the [nMarkov bot](https://nmarkov.vixenteam.xyz/).\n\n## 🌙 Requirements\n\n- Node.js 18 or newer\n- [Discord Developer Portal Bot Token](https://discordjs.guide/preparations/setting-up-a-bot-application.html#creating-your-bot)\n- [Free MongoDB Atlas Cluster](https://www.mongodb.com/docs/atlas/tutorial/deploy-free-tier-cluster/)\n\n## 🛸 Installation\n\n```sh\ngit clone https://github.com/ohmrr/quabos-discord.git\ncd quabos-discord\npnpm install\n```\n\n## ⚙️ Configuration\n\nIn the `packages/bot` directory, you can create or rename `.env.example` to `.env`.\n\nFill out all of the values with your Discord Bot Token, and with your MongoDB connection string.\n\n**⚠️ Never share your connection string or discord token with anyone. Also ensure that your .env file is not being tracked by Git.**\n\n```sh\nNODE_ENV=\"production\"    # Required, must either \"development\" or \"production\".\nDATABASE_URL=\"\"          # Required, MongoDB Atlas connection string.\nDISCORD_TOKEN=\"\"         # Required, from Discord Developer Portal.\nDEV_DISCORD_TOKEN=\"\"     # Optional, secondary token for development.\nDEV_GUILD_ID=\"\"          # Optional, only necessary if NODE_ENV=\"development\".\nTZ=\"America/Los_Angeles\" # Optional, IANA Time Zone.\n```\n\n**Note**: See `/packages/bot/.env.example` for more information.\n\n## 🚀 Getting Started\n\n### 💻 Option 1: Regular Setup\n\n```sh\npnpm --filter=bot build\npnpm --filter=bot start\n```\n\nThis will transpile the TypeScript code to JavaScript, and then start your own instance of Quabos as long as you have followed the above steps correctly.\n\n### 🐋 Option 2: Docker Setup\n\nIf you would prefer to setup Quabos using a Docker container instead, you **must** configure your `.env` file first as shown above, then you may run the following:\n\n```sh\ndocker-compose up --build -d\n```\n\nThis will build the Docker image and start your Quabos instance in a container running in the background.\n\n## 🌌 Features \u0026 Commands\n\nQuabos is still a work in progress, but below are many of the commands that are currently supported.\n\n`/config channels add [channel]` - Adds a new channel for Quabos to read messages from.\n\n`/config channels remove [channel]` - Removes a tracked channel.\n\n`/config channels list` - Lists all the channels currently being tracked by Quabos.\n\n`/config probability set [percentage]` - Changes the percent chance that Quabos will randomly respond when a message is sent in the server (5% by default).\n\n`/config probability view` - Sends the current server's probability of Quabos randomly responding to messages sent.\n\n`/config resetlog` - Deletes all messages stored in the database for that specific guild.\n\n`/privacy opt-out [scope]` - Allows you to opt-out of message collection in that specific server or globally (in all servers you share with Quabos).\n\n`/privacy opt-in [scope]` - Allows you to opt-in and allow Quabos to collect messages from you in that specific server or globally (in all servers you share with Quabos).\n\n`/generate` - Forces Quabos to send a message in the current chanel. May fail if there have not been enough messages collected.\n\n`/serverinfo` - Sends information about the current server.\n\n`/help` - Get information on any command. Uses autocompletion to only allow commands that exist.\n\n`/info bot` - Sends information about Quabos, such as uptime.\n\n`/info stats` - Sends a breakdown of all the messages collected in the guild by channel.\n\n`/avatar [user]` - Will display the discord avatar of the selected user.\n\n## Locales\n\nQuabos will work with any language, but commands currently only support English. Future support for more locales is planned.\n\n## Contributing\n\n1. Fork the [repository](https://github.com/ohmrr/quabos-discord/fork) on GitHub\n2. Clone your fork: `git clone [repository]`\n3. Create a branch for your feature or fix: `git checkout -b feature/my-new-feature`\n4. Stage any changes: `git add .`\n5. Commit your changes: `git commit -m [message]`\n6. Push your changes to the forked repository.\n7. Back on GitHub, create a pull request and describe the changes you have made.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohmrr%2Fquabos-discord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohmrr%2Fquabos-discord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohmrr%2Fquabos-discord/lists"}