fortniteapi 0.0.1
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 +7 -0
- data/lib/fortniteapi.rb +1 -0
- data/lib/fortniteapi/api.rb +132 -0
- metadata +57 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4de573efd34f764f42f3951df15929b7ffe392eb8340ac50e619416f1e876224
|
4
|
+
data.tar.gz: '087a5598fa707ed1968b31187456453fe63e898d4c611d2fb498672cd88c8b93'
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 480f0ea76b06f2e2dbe23fc1b9961761154739f38337a41932f487700d6d7905d64d93ada459f883054ad22eeb5ba3a3b75addf6f6348ad5c3f4cda6a815a30b
|
7
|
+
data.tar.gz: b7a9b9621115b49089b6566627b93230a6256a809db03dec603cb1de8728953c886a25688873b2d40913452543ec587d21dd61128c6b6415711096a2b8cc157b
|
data/lib/fortniteapi.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'fortniteapi/api.rb'
|
@@ -0,0 +1,132 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
class FortniteAPI
|
4
|
+
BRCosmetic = Struct.new(:id, :type, :backendType, :rarity, :displayRarity, :backendRarity, :name, :shortDescription, :description, :set, :setText, :backendSeries, :images, :variants, :gameplayTags, :displayAssetPath, :definition, :requiredItemId, :builtInEmoteId, :path, :lastUpdate, :added)
|
5
|
+
BRNews = Struct.new(:image, :hidden, :messageType, :type, :adspace, :spotlight, :title, :body)
|
6
|
+
STWNews = Struct.new(:image, :hidden, :messageType, :type, :adspace, :spotlight, :title, :body)
|
7
|
+
CreativeNews = Struct.new(:image, :hidden, :messageType, :type, :adspace, :spotlight, :title, :body)
|
8
|
+
ShopItem = Struct.new(:regularPrice, :finalPrice, :isBundle, :giftable, :refundable, :panel, :sortPriority, :banner, :items)
|
9
|
+
|
10
|
+
def search_cosmetic(searchQuery, tag='name', language='en', searchLanguage='en')
|
11
|
+
response = HTTParty.get("https://fortnite-api.com/cosmetics/br/search?#{tag}=#{searchQuery}&language=#{language}&searchLanguage=#{searchLanguage}")
|
12
|
+
body = JSON.parse(response.body)['data']
|
13
|
+
if response.code == 200
|
14
|
+
searchResult = BRCosmetic.new(body['id'], body['type'], body['backendType'], body['rarity'], body['displayRarity'], body['backendRarity'], body['name'], body['shortDescription'], body['description'], body['set'], body['setText'], body['backendSeries'], body['images'], body['variants'], body['gameplayTags'], body['displayAssetPath'], body['definition'], body['requiredItemId'], body['builtInEmoteId'], body['path'], body['lastUpdate'], body['added'])
|
15
|
+
searchResult
|
16
|
+
elsif response.code == 404
|
17
|
+
raise "Error when trying to fetch cosmetic: #{searchQuery} - #{body['error']}"
|
18
|
+
searchResult = BRCosmetic.new()
|
19
|
+
searchResult
|
20
|
+
elsif response.code == 400
|
21
|
+
raise "Error when using parameter, it might be that it is invalid.: #{tag} - #{body['error']}"
|
22
|
+
searchResult = BRCosmetic.new()
|
23
|
+
searchResult
|
24
|
+
else
|
25
|
+
raise "An unexpected error occured. Status code: #{response.code}, Request body: #{response.body}"
|
26
|
+
searchResult = BRCosmetic.new()
|
27
|
+
searchResult
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def search_cosmetic_id(searchQuery, language='en')
|
32
|
+
response = HTTParty.get("https://fortnite-api.com/cosmetics/br/#{searchQuery}&language=#{language}")
|
33
|
+
body = JSON.parse(response.body)['data']
|
34
|
+
if response.code == 200
|
35
|
+
searchResult = BRCosmetic.new(body['id'], body['type'], body['backendType'], body['rarity'], body['displayRarity'], body['backendRarity'], body['name'], body['shortDescription'], body['description'], body['set'], body['setText'], body['backendSeries'], body['images'], body['variants'], body['gameplayTags'], body['displayAssetPath'], body['definition'], body['requiredItemId'], body['builtInEmoteId'], body['path'], body['lastUpdate'], body['added'])
|
36
|
+
searchResult
|
37
|
+
elsif response.code == 404
|
38
|
+
raise "Error when trying to fetch cosmetic: #{searchQuery} - #{body['error']}"
|
39
|
+
searchResult = BRCosmetic.new()
|
40
|
+
searchResult
|
41
|
+
elsif response.code == 400
|
42
|
+
raise "Error when using parameter, it might be that it is invalid.: #{tag} - #{body['error']}"
|
43
|
+
searchResult = BRCosmetic.new()
|
44
|
+
searchResult
|
45
|
+
else
|
46
|
+
raise "An unexpected error occured. Status code: #{response.code}, Request body: #{response.body}"
|
47
|
+
searchResult = BRCosmetic.new()
|
48
|
+
searchResult
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def search_cosmetics(searchQuery, tag='name', language='en', searchLanguage='en')
|
53
|
+
cosmetics = []
|
54
|
+
response = HTTParty.get("https://fortnite-api.com/cosmetics/br/search/all?#{tag}=#{searchQuery}&language=#{language}&searchLanguage=#{searchLanguage}")
|
55
|
+
body = JSON.parse(response.body)['data']
|
56
|
+
if response.code == 200
|
57
|
+
for x in body
|
58
|
+
searchResult = BRCosmetic.new(x['id'], x['type'], x['backendType'], x['rarity'], x['displayRarity'], x['backendRarity'], x['name'], x['shortDescription'], x['description'], x['set'], x['setText'], x['backendSeries'], x['images'], x['variants'], x['gameplayTags'], x['displayAssetPath'], x['definition'], x['requiredItemId'], x['builtInEmoteId'], x['path'], x['lastUpdate'], x['added'])
|
59
|
+
cosmetics.push(searchResult)
|
60
|
+
end
|
61
|
+
cosmetics
|
62
|
+
elsif response.code == 404
|
63
|
+
raise "Error when trying to fetch cosmetic: #{searchQuery} - #{body['error']}"
|
64
|
+
searchResult = BRCosmetic.new()
|
65
|
+
searchResult
|
66
|
+
elsif response.code == 400
|
67
|
+
raise "Error when using parameter, it might be that it is invalid.: #{tag} - #{body['error']}"
|
68
|
+
searchResult = BRCosmetic.new()
|
69
|
+
searchResult
|
70
|
+
else
|
71
|
+
raise "An unexpected error occured. Status code: #{response.code}, Request body: #{response.body}"
|
72
|
+
searchResult = BRCosmetic.new()
|
73
|
+
searchResult
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def all_cosmetics()
|
78
|
+
response = HTTParty.get("https://fortnite-api.com/cosmetics/br")
|
79
|
+
JSON.parse(response.body)
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_br_news(language='en')
|
83
|
+
br_news_list = []
|
84
|
+
response = HTTParty.get("https://fortnite-api.com/news/br?language=#{language}")
|
85
|
+
messages = JSON.parse(response.body)['data']['messages']
|
86
|
+
for x in messages
|
87
|
+
newsResult = BRNews.new(x['image'], x['hidden'], x['messageType'], x['type'], x['adspace'], x['spotlight'], x['title'], x['body'])
|
88
|
+
br_news_list.push(newsResult)
|
89
|
+
end
|
90
|
+
br_news_list
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_stw_news(language='en')
|
94
|
+
stw_news_list = []
|
95
|
+
response = HTTParty.get("https://fortnite-api.com/news/stw?language=#{language}")
|
96
|
+
messages = JSON.parse(response.body)['data']['messages']
|
97
|
+
for x in messages
|
98
|
+
newsResult = STWNews.new(x['image'], x['hidden'], x['messageType'], x['type'], x['adspace'], x['spotlight'], x['title'], x['body'])
|
99
|
+
stw_news_list.push(newsResult)
|
100
|
+
end
|
101
|
+
stw_news_list
|
102
|
+
end
|
103
|
+
|
104
|
+
def get_creative_news(language='en')
|
105
|
+
creative_news_list = []
|
106
|
+
response = HTTParty.get("https://fortnite-api.com/news/creative?language=#{language}")
|
107
|
+
messages = JSON.parse(response.body)['data']['messages']
|
108
|
+
for x in messages
|
109
|
+
newsResult = CreativeNews.new(x['image'], x['hidden'], x['messageType'], x['type'], x['adspace'], x['spotlight'], x['title'], x['body'])
|
110
|
+
creative_news_list.push(newsResult)
|
111
|
+
end
|
112
|
+
creative_news_list
|
113
|
+
end
|
114
|
+
|
115
|
+
def get_br_store(language='en')
|
116
|
+
featured_items = []
|
117
|
+
daily_items = []
|
118
|
+
response = HTTParty.get("https://fortnite-api.com/shop/br?language=#{language}")
|
119
|
+
featured = JSON.parse(response.body)['data']['featured']
|
120
|
+
for x in featured
|
121
|
+
featuredItem = ShopItem.new(x['regularPrice'], x['finalPrice'], x['isBundle'], x['giftable'], x['refundable'], x['panel'], x['sortPriority'], x['banner'], x['items'])
|
122
|
+
featured_items.push(featuredItem)
|
123
|
+
end
|
124
|
+
daily = JSON.parse(response.body)['data']['daily']
|
125
|
+
for x in daily
|
126
|
+
dailyItem = ShopItem.new(x['regularPrice'], x['finalPrice'], x['isBundle'], x['giftable'], x['refundable'], x['panel'], x['sortPriority'], x['banner'], x['items'])
|
127
|
+
daily_items.push(dailyItem)
|
128
|
+
end
|
129
|
+
br_store = [featured_items, daily_items]
|
130
|
+
br_store
|
131
|
+
end
|
132
|
+
end
|
metadata
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fortniteapi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- xMistt
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-11-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.17.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.17.1
|
27
|
+
description:
|
28
|
+
email:
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/fortniteapi.rb
|
34
|
+
- lib/fortniteapi/api.rb
|
35
|
+
homepage: https://github.com/Fortnite-API/ruby-wrapper
|
36
|
+
licenses: []
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubygems_version: 3.0.6
|
54
|
+
signing_key:
|
55
|
+
specification_version: 4
|
56
|
+
summary: Ruby implementation for https://fortnite-api.com
|
57
|
+
test_files: []
|