mirror of
https://github.com/mii443/rbot.git
synced 2025-08-23 08:05:31 +00:00
Added min_args
This commit is contained in:
@ -6,15 +6,19 @@ module Bot
|
|||||||
require 'nokogiri'
|
require 'nokogiri'
|
||||||
require 'capybara/poltergeist'
|
require 'capybara/poltergeist'
|
||||||
|
|
||||||
STEAM_SEARCH_URL = 'https://steamcommunity.com/search/users/#text='
|
OSU_API = 'https://osu.ppy.sh/api/get_user'
|
||||||
PROFILE_REGEXP = /https?:\/\/steamcommunity.com\/profiles\//
|
FLAG_URL = 'https://github.com/SlavkoPekaric/Country-Flags-Responsive-CSS-Sprite/raw/master/img/separate/'
|
||||||
|
|
||||||
command(:osu, usage: 'osu <ユーザー名>', description: 'osu!のユーザー情報を表示') do |event, id|
|
STEAM_SEARCH_URL = 'https://steamcommunity.com/search/users/#text='
|
||||||
|
STEAM_PLAYER_API = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='
|
||||||
|
STEAM_VANITY_API = 'http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key='
|
||||||
|
STEAM_PROFILE_REGEXP = /https?:\/\/steamcommunity.com\/profiles\//
|
||||||
|
|
||||||
|
command(:osu, usage: 'osu <ユーザー名>', description: 'osu!のユーザー情報を表示', min_args: 1) do |event, id|
|
||||||
|
|
||||||
# osu!のユーザー情報取得
|
# osu!のユーザー情報取得
|
||||||
apiurl = CONFIG[:osu][:apiurl]
|
|
||||||
apikey = CONFIG[:osu][:apikey]
|
apikey = CONFIG[:osu][:apikey]
|
||||||
json = get_json("#{apiurl}?k=#{apikey}&u=#{id}&type=string")[0]
|
json = get_json("#{OSU_API}?k=#{apikey}&u=#{id}&type=string")[0]
|
||||||
|
|
||||||
rank = "**SS** : #{json["count_rank_ss"]} / **S** : #{json["count_rank_s"]} / **A** : #{json["count_rank_a"]}"
|
rank = "**SS** : #{json["count_rank_ss"]} / **S** : #{json["count_rank_s"]} / **A** : #{json["count_rank_a"]}"
|
||||||
country_rank = "##{json["pp_country_rank"].with_comma}"
|
country_rank = "##{json["pp_country_rank"].with_comma}"
|
||||||
@ -27,7 +31,7 @@ module Bot
|
|||||||
)
|
)
|
||||||
embed.footer = Discordrb::Webhooks::EmbedFooter.new(
|
embed.footer = Discordrb::Webhooks::EmbedFooter.new(
|
||||||
text: "#{json["country"]} (#{country_rank})",
|
text: "#{json["country"]} (#{country_rank})",
|
||||||
icon_url: "#{CONFIG[:flag][:url]}#{json["country"].downcase}.png"
|
icon_url: "#{FLAG_URL}#{json["country"].downcase}.png"
|
||||||
)
|
)
|
||||||
embed.thumbnail = Discordrb::Webhooks::EmbedThumbnail.new(
|
embed.thumbnail = Discordrb::Webhooks::EmbedThumbnail.new(
|
||||||
url: "https://a.ppy.sh/#{json["user_id"]}"
|
url: "https://a.ppy.sh/#{json["user_id"]}"
|
||||||
@ -83,7 +87,7 @@ module Bot
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
command(:steam, usage: 'steam <ユーザー名>', description: 'Steamのユーザー情報を表示') do |event, query|
|
command(:steam, usage: 'steam <ユーザー名>', description: 'Steamのユーザー情報を表示', min_args: 1) do |event, query|
|
||||||
|
|
||||||
# Capybara/Poltergistの設定
|
# Capybara/Poltergistの設定
|
||||||
Capybara.register_driver :poltergeist do |app|
|
Capybara.register_driver :poltergeist do |app|
|
||||||
@ -102,18 +106,18 @@ module Bot
|
|||||||
id = nil
|
id = nil
|
||||||
|
|
||||||
# Steam IDの取得
|
# Steam IDの取得
|
||||||
if url.match(PROFILE_REGEXP)
|
if url.match(STEAM_PROFILE_REGEXP)
|
||||||
# プロフィールページの場合
|
# プロフィールページの場合
|
||||||
id = url.match(/\d+/)[0]
|
id = url.match(/\d+/)[0]
|
||||||
else
|
else
|
||||||
# カスタムURLの場合
|
# カスタムURLの場合
|
||||||
vanityid = url.match(/id\/(.*)$/)[1]
|
vanityid = url.match(/id\/(.*)$/)[1]
|
||||||
vanitapi = "#{CONFIG[:steam][:vanitapi]}#{apikey}&vanityurl=#{vanityid}"
|
vanitapi = "#{STEAM_VANITY_API}#{apikey}&vanityurl=#{vanityid}"
|
||||||
json = get_json(vanitapi)
|
json = get_json(vanitapi)
|
||||||
id = json["response"]["steamid"]
|
id = json["response"]["steamid"]
|
||||||
end
|
end
|
||||||
|
|
||||||
playerapi = "#{CONFIG[:steam][:playerapi]}#{apikey}&steamids=#{id}"
|
playerapi = "#{STEAM_PLAYER_API}#{apikey}&steamids=#{id}"
|
||||||
json = get_json(playerapi)["response"]["players"][0]
|
json = get_json(playerapi)["response"]["players"][0]
|
||||||
|
|
||||||
event.channel.send_embed do |embed|
|
event.channel.send_embed do |embed|
|
||||||
@ -180,11 +184,6 @@ module Bot
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
command(:test) do |event|
|
|
||||||
server = event.server
|
|
||||||
server.default_channel.send_message("#{event.user.mention}, Welcome to #{server.name}")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
Reference in New Issue
Block a user