{"id":20416475,"url":"https://github.com/redxtech/pingbot","last_synced_at":"2026-05-05T10:33:01.294Z","repository":{"id":40002746,"uuid":"408194526","full_name":"redxtech/pingbot","owner":"redxtech","description":"the embotiment of a shitpost","archived":false,"fork":false,"pushed_at":"2024-06-11T20:56:13.000Z","size":704,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-19T13:46:50.248Z","etag":null,"topics":["bot","discord","discord-bot","discord-js"],"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/redxtech.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}},"created_at":"2021-09-19T17:39:12.000Z","updated_at":"2024-06-11T20:56:16.000Z","dependencies_parsed_at":"2024-04-28T12:28:48.188Z","dependency_job_id":"79153f9e-f8f2-408a-adff-3dd9ae55fe90","html_url":"https://github.com/redxtech/pingbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redxtech%2Fpingbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redxtech%2Fpingbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redxtech%2Fpingbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redxtech%2Fpingbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redxtech","download_url":"https://codeload.github.com/redxtech/pingbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241960834,"owners_count":20049342,"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","discord","discord-bot","discord-js"],"created_at":"2024-11-15T06:20:06.803Z","updated_at":"2026-05-05T10:32:56.275Z","avatar_url":"https://github.com/redxtech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pingbot\n\u003e the em*bot*iment of a shitpost.\n\n## join server \u0026 invite pingbot\ni have an official pingbot instance and discord server. you are welcome to invite it to\nyour own server, and join the discord to discuss \u0026 get help with contributinig to\nand hosting pingbot.\n\n[**invite pingbot**](https://discord.com/api/oauth2/authorize?client_id=889104837243985932\u0026permissions=8\u0026scope=bot%20applications.commands)\n\n[**join discord**](https://discord.gg/sMTjxfkaBq)\n\n## features\n\n### chance-based\nfor each message that is sent, there is (configurable) chance that pingbot will:\n - ping @everyone (the original feature, how it got it's name)\n - react with a random emoji (often eerily in-tune to the mood of the message)\n - set your nickname to a string of random characters (most fun when on a server where users can't change their own\n     nicknames)\n - send you a random insult through dms\n - replying with an ascii chad face or rock look\n - one more secret bonus feature that i'm never gonna give up any hints about (spoilers in `src/things.ts`)\n\n### match based\nsome other features are triggered by the content of the message\n - **pingbot love:** if you send a message that shows appreciation for pingbot (if it matches this regex:\n\t\t`/(\\b((i|we)\\b.+\\b(love|like|appreciate))|(thanks))\\b.+\\bping\\s*bot\\b/`), pingbot will respond with\n\t\ta heart to show its appreciation of you.\n - **pingbot hate:** if you send a message that shows dislike for pingbot (if it matches this regex:\n \t\t`/(\\bi\\b.+\\b(hate|dislike)\\b.+\\bping\\s*bot\\b)|(\\bfuck\\b.+\\bping\\s*bot\\b)|(\\bping\\s*bot (suck|eat|munche)s (dick|cock)\\b)/`),\n\t\tpingbot will respond with a sad face that will randomly switch between forwards and backwards.\n - **o o f:** if you send a message that contains the word 'o o f' (any whitespace, including none),\n \t\tpingbot will do one of two things: 1) if you are in a voice channel, pingbot will join your voice\n\t\tchannel, play the roblox *oof* sound, and leave. 2) if you are not in a voice channel, pingbot\n\t\twill simply reply 'o o f' instead.\n - **oo oo aa aa:** there is also a monkey sound that is played for 'oo oo aa aa'\n - **birthday:** if you send a message that contains the word birthday, pingbot will react with\n \t\tthe first emoji on the server with birthday in its name\n - **no u:** pingbot will do the ol' uno reverse if you call him gay\n\n### dms\nif you send a dm to pingbot, he will respond by choosing from an array of replies, including\ntelling you to get out of his dms, he has a girlfriend already, and that's not what your mom\nsaid last night\n\n### god words \u0026 god passage\nif you send the message `!pingbot words` or `!pingbot passage`, it will generate a ten random words and bible\npassage respectively, a tribute to templeOS\n\n## invite\nto get an invite link for the current instance of the bot, run `/pingbot invite` and it will give you an\ninvite link\n\n## configuration\nif you are a server owner, you (and anyone else with `MANAGER_SERVER` permissions) can use the `/pingbot \u003cname\u003e \u003cvalue\u003e`\nto set the probabilities of each chance-based feature (autocompleted). additionally, you can view the current probabilities\nand reset them to default with `/pingbot-probabilities` \u0026 `/pingbot-reset` resepectively.\n\nif you are are the host, you can set the default probabilities in the `config.ts` file, but the server oweners\nwill be able to override this with the aforementioned command\n\n## options\nall options and configuration is done through `config.ts`.\n\nyou need to specify a bot token with the `token` key. the bot will not run without this.\n\nyou can configure how often pingbot will perform it's actions (a one in `x` chance of performing the action) with these\nconfig keys:\n - `probabilities.ping` chance of pingbot pinging everyone (default: `10000`).\n - `probabilities.react` chance of pingbot reacting to messages (default: `100`).\n - `probabilities.nickname` chance of pingbot changeing someone's nickname (default: `1000`).\n - `probabilities.dm` chance of pingbot sending you an insulting dm (defaults: `1000`)\n - `probabilities.chad` chance of pingbot responding with the chad face (default: `1000`)\n\n## setup\nsetup is simple:\n 1. clone the bot.\n 2. install the dependencies with `yarn` (or `npm install`). if either of these commands don't work, you need to install\n [node][2].\n 3. create a bot user \u0026 invite it to your server (follow [this guide][1], but use the code in this repo as the bot's\n code).\n 4. create a `config.ts` file and set `token` equal to the token obtained in the previous step (`export const token = '\u003ctoken\u003e'`).\n 5. add your desired options to the `config.ts` file.\n 6. run the bot with `yarn start` (or `npm run start`). alternatively you can run it with `node ./src/index.js`.\n 7. enjoy!\n\n if you prefer docker:\n 1. follow steps 1-5 of normal setup\n 2. run the bot with docker compose up --build\n 3. enjoy!\n\n[1]: https://www.howtogeek.com/364225/how-to-make-your-own-discord-bot/\n[2]: https://nodejs.org\n\nnote: if you want the 'o o f' function to work in the voice channels, you need to install ffmpeg.\n\n### personal recommendation\nwhen creating the bot user, you are most likely going to want to choose an image for pingbot to use as a profile\npicture. my personal favourite is shown below with two variations: pinged (the better choice) and boring. i\nrecommend these because they perfectly capture the essence of the bot, and the pinged variation was\nthe server icon of the server this bot was written for.\n\n![pingbot pinged][pinged]\n![pingbot boring][boring]\n\n[pinged]: resources/pingbot.png\n[boring]: resources/pingbot-boring.png\n\n## author\n**pingbot** © [gabe dunn](https://github.com/redxtech), released under the [MIT](./license.md) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredxtech%2Fpingbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredxtech%2Fpingbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredxtech%2Fpingbot/lists"}