metrics plugged into interaction responses

This commit is contained in:
Owen
2025-01-09 15:06:39 +01:00
parent c2a442da63
commit 5c0c5ae960
+14 -3
View File
@@ -1,10 +1,12 @@
defmodule PlantIdDiscordBot.Cog.PlantNet do defmodule PlantIdDiscordBot.Cog.PlantNet do
require Logger require Logger
use Nostrum.Consumer use Nostrum.Consumer
alias Nostrum.Api
alias Nostrum.Cache.GuildCache
alias PlantIdDiscordBot.RateLimiter alias PlantIdDiscordBot.RateLimiter
alias PlantIdDiscordBot.PlantNet.Parser alias PlantIdDiscordBot.PlantNet.Parser
alias PlantIdDiscordBot.FileServer.File alias PlantIdDiscordBot.FileServer.File
alias Nostrum.Api alias PlantIdDiscordBot.Metrics
@api Application.compile_env(:plantid_discord_bot, :api) @api Application.compile_env(:plantid_discord_bot, :api)
@plantnet_api_base_url Application.compile_env(:plantid_discord_bot, :plantnet_api_base_url) @plantnet_api_base_url Application.compile_env(:plantid_discord_bot, :plantnet_api_base_url)
@@ -110,7 +112,12 @@ defmodule PlantIdDiscordBot.Cog.PlantNet do
case HTTPoison.get(query_uri) do case HTTPoison.get(query_uri) do
{:ok, %HTTPoison.Response{status_code: 200, body: body}} -> {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
response_message = Parser.parse(body) response_message = Parser.parse(body)
RateLimiter.increase_counter(interaction.guild_id)
guild_id = interaction.guild_id
{:ok, %{name: guild_name}} = GuildCache.get(guild_id)
RateLimiter.increase_counter(guild_id)
Metrics.put(guild_id, guild_name)
Api.create_followup_message(interaction.application_id, interaction.token, %{ Api.create_followup_message(interaction.application_id, interaction.token, %{
content: response_message <> "\n#{original_images}" content: response_message <> "\n#{original_images}"
@@ -129,7 +136,11 @@ defmodule PlantIdDiscordBot.Cog.PlantNet do
}) })
{:ok, %HTTPoison.Response{status_code: 404}} -> {:ok, %HTTPoison.Response{status_code: 404}} ->
RateLimiter.increase_counter(interaction.guild_id) guild_id = interaction.guild_id
{:ok, %{name: guild_name}} = GuildCache.get(guild_id)
RateLimiter.increase_counter(guild_id)
Metrics.put(guild_id, guild_name)
Api.create_followup_message(interaction.application_id, interaction.token, %{ Api.create_followup_message(interaction.application_id, interaction.token, %{
content: "Species Not Found" content: "Species Not Found"