{"id":15013160,"url":"https://github.com/tauri-apps/tauri-discord-bot","last_synced_at":"2025-06-28T09:32:47.202Z","repository":{"id":37071290,"uuid":"337536257","full_name":"tauri-apps/tauri-discord-bot","owner":"tauri-apps","description":"Tauri's Discord Bot","archived":false,"fork":false,"pushed_at":"2024-10-29T01:55:19.000Z","size":811,"stargazers_count":18,"open_issues_count":15,"forks_count":4,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-10-29T15:44:18.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/tauri-apps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_MIT","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":"2021-02-09T21:05:37.000Z","updated_at":"2024-10-29T05:07:55.000Z","dependencies_parsed_at":"2023-12-15T02:17:38.786Z","dependency_job_id":"4fea80ba-3670-4eef-a6f2-84eadecd1e81","html_url":"https://github.com/tauri-apps/tauri-discord-bot","commit_stats":{"total_commits":465,"total_committers":12,"mean_commits":38.75,"dds":0.7827956989247312,"last_synced_commit":"2b19c7e72c505da31bbb7a84556a65a175dc7850"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauri-apps%2Ftauri-discord-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauri-apps%2Ftauri-discord-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauri-apps%2Ftauri-discord-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauri-apps%2Ftauri-discord-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tauri-apps","download_url":"https://codeload.github.com/tauri-apps/tauri-discord-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237143900,"owners_count":19262295,"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":[],"created_at":"2024-09-24T19:43:50.108Z","updated_at":"2025-02-04T15:33:07.601Z","avatar_url":"https://github.com/tauri-apps.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tauri-discord-bot\n\nThis bot is based off of the amazing [Svelte Bot](https://github.com/pngwn/svelte-bot/). It's hosted on a DigitalOcean App instance that will automatically detect any updates to the `main` branch and deploy those changes.\n\n## Configuration\n\n-   Environment: All secrets should be in a `.env` file. The template/example can be found at [env.example](./.env.example)\n    -   `NODE_ENV`: Any value other than `production` will set the bot use the dev IDs defined below\n    -   `DISCORD_TOKEN`: The bot's private token from Discord\n    -   `DEV_GUILD_ID`: Guide/server to test the bot in\n    -   `DEV_ADMIN_ROLE`: A role or user ID that the bot will consider an administrator\n    -   `DEV_HELP_CHANNEL`: Channel(s) to automatically thread any messages in (see the Threads functionality below)\n    -   `DEV_SUPPORT_FORUM_CHANNEL`: Support forum channel id\n-   `src/config.ts`: The bots main config is located at [src/config.ts](src/config.ts)\n    -   `ADMIN_ROLES`: Role or user IDs that the bot will consider administrators\n    -   `BOT_DEVS`: Currently the same functionality as `ADMIN_ROLES`\n    -   `AUTO_THREAD_CHANNELS`: Channel(s) that automatically thread any messages sent in them (extends `HELP_CHANNELS` below)\n    -   `HELP_CHANNELS`: Channel(s) that in addition to being auto threaded also come with issue handling capabilities\n\n## Events\n\n-   `on_message_auto_thread`: Monitors the channels set in `AUTO_THREAD_CHANNELS` and automatically turns any messages posted there into their own threads\n\n## Commands\n\n-   `thread`: These are commands to manage the autothreads created by the bot. They can be used by the person who initiated the thread or by people/roles defined in the role.\n    -   `/thread rename`: Renames the current thread\n    -   `/thread solve`: Removes ? and adds ✅ at the beginning of the thread name and sets the archive duration to 1hr\n    -   `/thread archive`: Archive an active thread without marking it as solved\n    -   `/thread reopen`: Reopen a thread that's been accidentally marked as solved\n-   `threads`: These are commands to manage all threads in the guild\n    -   `/threads list`: Lists currently active threads in the channel the command was ran in\n\n## Stack\n\nClick on the links below to view the documentation on the different parts of the bot's tech stack:\n\n-   [TypeScript](https://www.typescriptlang.org/docs/)\n-   [JellyCommands](https://github.com/ghostdevv/jellycommands)\n\n## Contributing\n\nAll contributions are welcome, please try and make an issue first since most new features might warrant a discussion beforehand. Bug fixes probably won't need an issue and direct pull requests are ok for them.\n\n### Running for development\n\n1. Once you have the bot cloned then you need to make a .env file and fill out the fields:\n\n    ```sh\n    cp .env.example .env\n    ```\n\n2. Run the bot with `pnpm dev`\n\n### Code Conventions\n\nSince there is no user facing code, prefer `snake_case` for variables and function names wherever possible. Local constants follow the same, whereas global constants should be in `SCREAMING_SNAKE_CASE`.\n\n## Deploying\n\nThe bot uses the [tsm](https://github.com/lukeed/tsm) module loader to transpile its Typescript code on the fly so there's no build step involved.\n\n```sh\npnpm start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftauri-apps%2Ftauri-discord-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftauri-apps%2Ftauri-discord-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftauri-apps%2Ftauri-discord-bot/lists"}