lita-destiny 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/destiny/base_api.rb +40 -9
- data/lib/lita/handlers/destiny.rb +25 -6
- data/lita-destiny.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ea830396e445d516960ab39d3814072db20ff09
|
4
|
+
data.tar.gz: 3672eea695235e4e1bfb5e09efbf6f89c6298118
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55ea8d63db94359252f2a77ce88465b80546d5497ef1859d974e63ef13bff7eabe6ad2f8cb015e47ae7ebd1001fea0869af3269091f8c86fa0b70bb57bb5f32d
|
7
|
+
data.tar.gz: b63ea11f2e98dfc4e6f09652d1285ab1b6da82390c31f290fbb0d75d7f04fac21bbe23738b47fc87812ecca70fe9eb115465e4a1bd431a5423368f167651a4cc
|
data/lib/destiny/base_api.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'httparty'
|
2
|
-
|
2
|
+
require 'pp'
|
3
3
|
# DestinyAPI module wrapper
|
4
4
|
module DestinyAPI
|
5
5
|
# Base API Class
|
@@ -13,7 +13,7 @@ module DestinyAPI
|
|
13
13
|
# Auto-parse responses from Bungie as JSON
|
14
14
|
format :json
|
15
15
|
# Set base uri
|
16
|
-
base_uri 'www.bungie.net/
|
16
|
+
base_uri 'www.bungie.net/Platform/Destiny/'
|
17
17
|
|
18
18
|
|
19
19
|
# Init the Destiny API with Bungie API stored in ENV variable
|
@@ -34,7 +34,7 @@ module DestinyAPI
|
|
34
34
|
# destiny.advisors
|
35
35
|
#
|
36
36
|
def advisors
|
37
|
-
raw_data = self.class.get('/
|
37
|
+
raw_data = self.class.get('/Advisors', headers: @headers)
|
38
38
|
parsed = raw_data.parsed_response['Response']['data']
|
39
39
|
end
|
40
40
|
|
@@ -50,7 +50,7 @@ module DestinyAPI
|
|
50
50
|
# raw: (Boolean)
|
51
51
|
#
|
52
52
|
def activity(activity_hash, raw=false)
|
53
|
-
raw_data = self.class.get("/
|
53
|
+
raw_data = self.class.get("/Manifest/Activity/#{activity_hash}").parsed_response['Response']['data']['activity']
|
54
54
|
skulls = []
|
55
55
|
raw_data['skulls'].each do |skull|
|
56
56
|
skulls << skull['displayName']
|
@@ -98,11 +98,42 @@ module DestinyAPI
|
|
98
98
|
# No known endpoints.
|
99
99
|
def arena(options={})
|
100
100
|
end
|
101
|
+
|
102
|
+
def search_destiny_player(player_name, platform_type)
|
103
|
+
raw_data = self.class.get("/SearchDestinyPlayer/#{platform_type}/#{player_name}/").parsed_response['Response']['membershipId']
|
104
|
+
end
|
105
|
+
|
106
|
+
def get_destiny_account(player_name, platform_type)
|
107
|
+
member_id = self.search_destiny_player(player_name, platform_type)
|
108
|
+
raw_data = self.class.get("/#{platform_type}/Account/#{member_id}/").parsed_response['Response']['data']
|
109
|
+
end
|
110
|
+
|
111
|
+
def get_manifest_item(type_id, item_id)
|
112
|
+
raw_data = self.class.get("/Manifest/#{type_id}/#{item_id}").parsed_response['Response']['data']['inventoryItem']
|
113
|
+
end
|
101
114
|
|
102
115
|
# WIP: Pull xur inventory
|
103
|
-
# http://www.bungie.net/platform/destiny/advisors/xur
|
104
|
-
def xur
|
105
|
-
raw_data = self.class.get('/
|
116
|
+
# http://www.bungie.net/platform/destiny/advisors/xur/
|
117
|
+
def xur(raw=false)
|
118
|
+
raw_data = self.class.get('/Advisors/Xur/').parsed_response['Response']['data']
|
119
|
+
vendor_hash = raw_data['vendorHash']
|
120
|
+
sale_items = {}
|
121
|
+
|
122
|
+
# Hacky? Probs.
|
123
|
+
raw_data['saleItemCategories'].each do |category|
|
124
|
+
items = { category['categoryTitle'] => category['saleItems'].map!{|item| {:item_hash => item['item']['itemHash'], :item_cost => item['costs'][0]['value'], :item_cost_hash => item['costs'][0]['itemHash']} } }
|
125
|
+
sale_items.merge!(items)
|
126
|
+
end
|
127
|
+
|
128
|
+
if raw
|
129
|
+
raw_data
|
130
|
+
else
|
131
|
+
sale_items
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def vendor(vendor_hash)
|
136
|
+
raw_data = self.class.get("/Manifest/Vendor/#{vendor_hash}").parsed_response['Response']['data']['vendor']['summary']
|
106
137
|
end
|
107
138
|
|
108
139
|
# Pull the days bounties
|
@@ -118,7 +149,7 @@ module DestinyAPI
|
|
118
149
|
# place_hash: (String)
|
119
150
|
#
|
120
151
|
def place(place_hash)
|
121
|
-
raw data = self.class.get('/
|
152
|
+
raw data = self.class.get('/Manifest/Place/#{place_hash}').parsed_response['Response']['data']['place']
|
122
153
|
response = { place_name: raw_data['placeName'], place_desc: raw_data['placeDescription'] }
|
123
154
|
end
|
124
155
|
|
@@ -131,7 +162,7 @@ module DestinyAPI
|
|
131
162
|
# destination_hash: (String)
|
132
163
|
#
|
133
164
|
def destination(destination_hash)
|
134
|
-
raw_data = self.class.get('/
|
165
|
+
raw_data = self.class.get('/Manifest/Destination/#{destination_hash}').parsed_response['Response']['data']
|
135
166
|
response = { dest_name: raw_data['destinationName'], dest_desc: raw_data['destinationDescription'] }
|
136
167
|
end
|
137
168
|
end
|
@@ -73,8 +73,15 @@ module Lita
|
|
73
73
|
def build_activity_message(activity, response)
|
74
74
|
# Set activity
|
75
75
|
activity_hash = activity
|
76
|
-
# Send response
|
77
|
-
|
76
|
+
# Send response based on adapter
|
77
|
+
case robot.config.robot.adapter
|
78
|
+
when :slack
|
79
|
+
# Send response
|
80
|
+
response.reply("*#{activity_hash[:activityName]}*\n#{activity_hash[:activityDescription]}\n*Skulls:* #{activity_hash[:skulls].join(', ')}")
|
81
|
+
else
|
82
|
+
# Send response
|
83
|
+
response.reply("#{activity_hash[:activityName]}\n#{activity_hash[:activityDescription]}\nSkulls: #{activity_hash[:skulls].join(', ')}")
|
84
|
+
end
|
78
85
|
end
|
79
86
|
|
80
87
|
# Xur Response Method
|
@@ -86,13 +93,25 @@ module Lita
|
|
86
93
|
destiny_client = DestinyAPI::Base.new(api_key)
|
87
94
|
# Set xur to our clients xur method
|
88
95
|
xur = destiny_client.xur
|
96
|
+
|
97
|
+
items = []
|
98
|
+
xur.each do |key, value|
|
99
|
+
value.each do |key, value|
|
100
|
+
item_name = destiny_client.get_manifest_item(6, key[:item_hash])['itemName']
|
101
|
+
item_cost = key[:item_cost]
|
102
|
+
item_cost_name = destiny_client.get_manifest_item(6, key[:item_cost_hash])['itemName']
|
103
|
+
constructed_item = "#{item_name}, #{item_cost} #{item_cost_name}"
|
104
|
+
items << constructed_item
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
89
108
|
# Check vendorDetails to see if anything is availible.
|
90
|
-
if xur
|
109
|
+
if xur.nil?
|
91
110
|
# If nothing, send to chat that he isn't there.
|
92
|
-
response.reply "Xur isn't in
|
111
|
+
response.reply "Xur isn't in game right now."
|
93
112
|
else
|
94
|
-
|
95
|
-
response.reply "Xur is selling
|
113
|
+
#If something, send to chat what he is selling.
|
114
|
+
response.reply "*Xur is selling:*\n#{items.join("\n")}"
|
96
115
|
end
|
97
116
|
end
|
98
117
|
end
|
data/lita-destiny.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-destiny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PDaily
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|