inspire.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import got from "got";
  2. import { logger } from "src/logging";
  3. import { Command, ICommandData, Plugin } from "src/model/plugin";
  4. import { tryDo } from "@shared/common/async_utils";
  5. @Plugin
  6. export class Inspire {
  7. @Command({
  8. type: "mention",
  9. pattern: "inspire me",
  10. documentation: {
  11. description: "Generates an inspiring quote just for you",
  12. example: "inspire me"
  13. }
  14. })
  15. async inspire({ message }: ICommandData): Promise<void> {
  16. const result = await tryDo(got.get("https://inspirobot.me/api?generate=true"));
  17. if(!result.ok) {
  18. logger.error("Failed to get inspiration, error %s", result.error);
  19. await message.reply("sorry, couldn't get inspiration :(.");
  20. return;
  21. }
  22. const messagePostResult = await tryDo(message.reply("here is a piece of my wisdom:", {
  23. files: [ result.result.body ]
  24. }));
  25. if (!messagePostResult.ok) {
  26. logger.error("Failed to get inspiration, error %s", messagePostResult.error);
  27. await message.reply("sorry, couldn't get inspiration :(.");
  28. }
  29. }
  30. }