lita-destiny 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|