Module: ChatgptAssistant::Bots::Discord::Validations

Defined in:
lib/chatgpt_assistant/bots/discord/validations.rb

Instance Method Summary collapse

Instance Method Details

#discord_next_action?Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
# File 'lib/chatgpt_assistant/bots/discord/validations.rb', line 7

def discord_next_action?
  return true if evnt.channel.type != 1 && evnt.channel.name != "ai-spaces"

  %w[login register start help new_chat sl_chat ask
     list hist connect disconnect speak].each do |action|
    return true if evnt.message.content.include?("#{discord_prefix}#{action}")
  end
  false
end

#discord_voice_bot_connected?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/chatgpt_assistant/bots/discord/validations.rb', line 21

def discord_voice_bot_connected?
  user && evnt.user.voice_channel && evnt.voice && !chat.nil?
end

#discord_voice_bot_disconnected?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/chatgpt_assistant/bots/discord/validations.rb', line 17

def discord_voice_bot_disconnected?
  user && evnt.user.voice_channel && !evnt.voice && !chat.nil?
end

#valid_for_list_action?Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
# File 'lib/chatgpt_assistant/bots/discord/validations.rb', line 29

def valid_for_list_action?
  evnt.respond(error_messages[:user_not_logged_in]) if user.nil?
  evnt.respond(error_messages[:account_not_verified]) unless user.active?
  evnt.respond(error_messages[:chat_not_found]) if user.chats.count.zero? && user.active?
  !user.nil? && user.active? && user.chats.count.positive?
end

#visitor_user?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/chatgpt_assistant/bots/discord/validations.rb', line 25

def visitor_user?
  visitor&.dis_user.nil?
end