Module: HackclubRequest
- Defined in:
- lib/server-bridge.rb
Constant Summary collapse
- DEFAULT_EMOJI =
:alibaba-question:
"https://emoji.slack-edge.com/T0266FRGM/alibaba-question/c5ba32ce553206b8.png"
Class Attribute Summary collapse
-
.host ⇒ Object
Returns the value of attribute host.
Class Method Summary collapse
- .make_request(path) ⇒ Object
- .raw_channel(channelid) ⇒ Object
- .raw_file(fileid) ⇒ Object
- .raw_user(userid) ⇒ Object
- .raw_usergroup(groupid) ⇒ Object
- .resolve_channel(channelid) ⇒ Object
- .resolve_emoji(id) ⇒ Object
- .resolve_usergroup(groupid) ⇒ Object
- .resolve_username(userid) ⇒ Object
Class Attribute Details
.host ⇒ Object
Returns the value of attribute host.
10 11 12 |
# File 'lib/server-bridge.rb', line 10 def host @host end |
Class Method Details
.make_request(path) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/server-bridge.rb', line 13 def self.make_request(path) uri = URI("#{host}#{path}") req = Net::HTTP::Get.new(uri) req['Referer'] = "jekyll-hackclub" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(req) end return JSON.parse(res.body), res rescue JSON::ParserError return {}, res rescue => e warn "Request to #{uri} failed: #{e}" return {}, nil end |
.raw_channel(channelid) ⇒ Object
62 63 64 65 |
# File 'lib/server-bridge.rb', line 62 def self.raw_channel(channelid) data, res = make_request("/conversations.info/#{channelid}") res&.is_a?(Net::HTTPSuccess) ? data : {} end |
.raw_file(fileid) ⇒ Object
35 36 37 38 |
# File 'lib/server-bridge.rb', line 35 def self.raw_file(fileid) data, res = make_request("/files.info/#{fileid}") res&.is_a?(Net::HTTPSuccess) ? data : {} end |
.raw_user(userid) ⇒ Object
40 41 42 43 |
# File 'lib/server-bridge.rb', line 40 def self.raw_user(userid) data, res = make_request("/users.info/#{userid}") res&.is_a?(Net::HTTPSuccess) ? data : {} end |
.raw_usergroup(groupid) ⇒ Object
45 46 47 48 |
# File 'lib/server-bridge.rb', line 45 def self.raw_usergroup(groupid) data, res = make_request("/usergroup/#{groupid}") res&.is_a?(Net::HTTPSuccess) ? data : {} end |
.resolve_channel(channelid) ⇒ Object
67 68 69 70 71 72 |
# File 'lib/server-bridge.rb', line 67 def self.resolve_channel(channelid) data, res = make_request("/conversations.info/#{channelid}") res&.is_a?(Net::HTTPSuccess) ? (data.dig("channel", "name") || "unknown") : "unknown" rescue "unavailable" end |
.resolve_emoji(id) ⇒ Object
30 31 32 33 |
# File 'lib/server-bridge.rb', line 30 def self.resolve_emoji(id) _, res = make_request("/emoji/#{id.strip}") res&.is_a?(Net::HTTPSuccess) ? res.body : DEFAULT_EMOJI end |
.resolve_usergroup(groupid) ⇒ Object
50 51 52 53 |
# File 'lib/server-bridge.rb', line 50 def self.resolve_usergroup(groupid) data = raw_usergroup(groupid) data["handle"] || "unknown" end |
.resolve_username(userid) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/server-bridge.rb', line 55 def self.resolve_username(userid) data, res = make_request("/users.info/#{userid}") res&.is_a?(Net::HTTPSuccess) ? (data.dig("user", "name") || "unknown") : "unknown" rescue "unavailable" end |