mirror of
https://github.com/TheRealOwenRees/plantid-discord-bot.git
synced 2026-07-22 20:16:57 +00:00
02372f2076
* added list of tasks to achieve * update deps * update elixir version in CI/CD pipeline * update todo with branch push checks * underscores separation of large numbers * update elixir version and deps * add basic module docs * remove IO.inspect call * check if list is empty rather than traversing list for length * revert empty list code * duration tests * add mime type tests * use logger instread of inspect, remove todos * replace list length check with Enum.empty * replace list length check with !Enum.empty? * numbers readability fix by using underscores on large numbers * iucn parser replaced case with multiclause function and added test * replace map and join with map_join * fix multiple spec issues where map() must be inside a list
41 lines
1.3 KiB
Elixir
41 lines
1.3 KiB
Elixir
defmodule PlantIdDiscordBot.Consumer do
|
|
@moduledoc """
|
|
A Discord bot that identifies plants from photos of their organs.
|
|
"""
|
|
use Nostrum.Consumer
|
|
alias Nostrum.Api
|
|
alias PlantIdDiscordBot.{Cog, Consumer}
|
|
|
|
@global_application_commands Consumer.Commands.global_application_commands()
|
|
|
|
def handle_event({:READY, _data, _ws_state}) do
|
|
Api.create_global_application_command(@global_application_commands)
|
|
Api.update_status(:online, "Guess the Plant | /help")
|
|
end
|
|
|
|
def handle_event({:INTERACTION_CREATE, %{data: %{name: command}} = interaction, _ws_state}) do
|
|
case command do
|
|
"source" -> Cog.Info.source(interaction)
|
|
"invite" -> Cog.Info.invite(interaction)
|
|
"help" -> Cog.Info.help(interaction)
|
|
"info" -> Cog.Info.info(interaction)
|
|
"stats" -> Cog.Info.stats(interaction)
|
|
"status" -> Cog.Info.status(interaction)
|
|
"servers" -> Cog.Info.servers(interaction)
|
|
end
|
|
end
|
|
|
|
def handle_event({:MESSAGE_CREATE, %{attachments: attachments} = message, _ws_state}) do
|
|
if !Enum.empty?(attachments) do
|
|
Api.start_typing!(message.channel_id)
|
|
Cog.PlantNetMessage.id(message)
|
|
end
|
|
|
|
# if length(attachments) > 0 do
|
|
# # deprecated -> Nostrum.Api.Channel.start_typing/1 in v1.0
|
|
# Api.start_typing!(message.channel_id)
|
|
# Cog.PlantNetMessage.id(message)
|
|
# end
|
|
end
|
|
end
|