{"id":24617710,"url":"https://github.com/jacoblincool/pure-cat","last_synced_at":"2025-05-07T05:25:01.450Z","repository":{"id":56778458,"uuid":"524755034","full_name":"JacobLinCool/pure-cat","owner":"JacobLinCool","description":"A Modular Discord Bot (Framework).","archived":false,"fork":false,"pushed_at":"2023-12-15T14:53:18.000Z","size":497,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-06T11:46:56.209Z","etag":null,"topics":["discord-bot"],"latest_commit_sha":null,"homepage":"https://jacoblincool.github.io/pure-cat","language":"TypeScript","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/JacobLinCool.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}},"created_at":"2022-08-14T18:55:34.000Z","updated_at":"2023-12-09T04:38:58.000Z","dependencies_parsed_at":"2023-12-15T15:49:22.614Z","dependency_job_id":"5c7133d1-03ca-4a18-935a-1a9bb3ffb270","html_url":"https://github.com/JacobLinCool/pure-cat","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2Fpure-cat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2Fpure-cat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2Fpure-cat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2Fpure-cat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JacobLinCool","download_url":"https://codeload.github.com/JacobLinCool/pure-cat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252819672,"owners_count":21809063,"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"],"created_at":"2025-01-24T23:40:05.553Z","updated_at":"2025-05-07T05:25:01.425Z","avatar_url":"https://github.com/JacobLinCool.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pure Cat\n\nA Modular Discord Bot (Framework).\n\n## Features\n\n- Write slash commands declaration and implementation in one place.\n- Modular usage.\n\nFor example, we have three files: `bot.ts`, `register.ts`, `run.ts`:\n\n```ts\n// bot.ts - Define what the bot should look like.\nimport { Bot } from \"pure-cat\";\nimport { DNS } from \"pure-cat-module-dns\";\nimport { EventLog } from \"pure-cat-module-event-log\";\nimport { Marquee } from \"pure-cat-module-marquee\";\nimport { Welcome } from \"pure-cat-module-welcome\";\nimport { LoggerControl } from \"pure-cat-module-logger-control\";\nimport { Click } from \"pure-cat-module-click\";\nimport { BOT_ID, STORAGE } from \"./config\";\n\nexport const bot = new Bot(BOT_ID, STORAGE)\n    .use(new EventLog())\n    .use(new Marquee([\"I am a cool bot!\", \"Beep boop!\"]))\n    .use(new DNS())\n    .use(new LoggerControl())\n    .use(new Click())\n    .use(new Welcome({ messages: [\"Hi \u003c@${id}\u003e!\"] }));\n```\n\n```ts\n// register.ts - Register slash commands.\nimport { bot } from \"./bot\";\nimport { BOT_TOKEN } from \"./config\";\n\nbot.register(BOT_TOKEN);\n```\n\n```ts\n// run.ts - Run the bot.\nimport { bot } from \"./bot\";\nimport { BOT_TOKEN } from \"./config\";\n\nbot.login(BOT_TOKEN);\n```\n\n## Docker\n\nFirst, create an `.env` file with the following contents:\n\n```ts\nBOT_ID=\u003cYOUR_BOT_ID\u003e\nBOT_TOKEN=\u003cYOUR_BOT_TOKEN\u003e\n```\n\nThen, run:\n\n```sh\ndocker compose up -d\n```\n\nEvery thing should just work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacoblincool%2Fpure-cat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacoblincool%2Fpure-cat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacoblincool%2Fpure-cat/lists"}