inspire.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  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({
  23. content: "here is a piece of my wisdom:",
  24. files: [ result.result.body ]
  25. }));
  26. if (!messagePostResult.ok) {
  27. logger.error("Failed to get inspiration, error %s", messagePostResult.error);
  28. await message.reply("sorry, couldn't get inspiration :(.");
  29. }
  30. }
  31. }