rs_api-ruby 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/rs_api-ruby.rb +13 -0
- data/lib/rs_api-ruby/beastiary.rb +65 -0
- data/lib/rs_api-ruby/grandexchange.rb +27 -0
- data/lib/rs_api-ruby/highscores.rb +55 -0
- data/lib/rs_api-ruby/player.rb +63 -0
- data/lib/rs_api-ruby/utilities.rb +34 -0
- metadata +50 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: db5909b7855236683b6e6b55db6e2ac617bba9b2
|
4
|
+
data.tar.gz: d467db3018afb249e6cc899248152d1b7fa5ee1a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 409cda9c3f12e11239e513755a9af91eee1323e108958b5e4939946d4dec8fb2cbe33bfab8f28a90dcd92c37a247e5adc4e4cc9dea91991bf9f1336de24edf93
|
7
|
+
data.tar.gz: 56e4173b8a8a1df3314c573411b56c2f1cf1ab262bc4ec9cedee63d78bc1082086ad19f8e2c49fa6b8a51bb85245a18d9530897279b144e77b197c202d3e2379
|
data/lib/rs_api-ruby.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
class RS_API
|
2
|
+
def initialize
|
3
|
+
puts "RS_API Initialized."
|
4
|
+
end
|
5
|
+
|
6
|
+
require 'open-uri'
|
7
|
+
require 'json'
|
8
|
+
require "rs_api-ruby/player"
|
9
|
+
require "rs_api-ruby/highscores"
|
10
|
+
require "rs_api-ruby/grandexchange"
|
11
|
+
require "rs_api-ruby/beastiary"
|
12
|
+
require "rs_api-ruby/utilities"
|
13
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
class Beastiary
|
2
|
+
|
3
|
+
class Search
|
4
|
+
def self.byName(name)
|
5
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/beastSearch.json?term=' + name.to_s).read
|
6
|
+
return JSON.parse(jsonRequest)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.byID(id)
|
10
|
+
uri = Utils.baseURI + 'itemdb_rs/bestiary/beastData.json?beastid=' + id.to_s
|
11
|
+
jsonRequest = open(uri).read
|
12
|
+
jsonRequest = jsonRequest.gsub("", "")
|
13
|
+
return JSON.parse(jsonRequest)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.byLetter(letter)
|
17
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/bestiaryNames.json?letter=' + letter.to_s).read
|
18
|
+
return JSON.parse(jsonRequest)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class ByArea
|
23
|
+
def self.getNames
|
24
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/bestiary/areaNames.json').read
|
25
|
+
return JSON.parse(jsonRequest)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.getBeasts(identifier)
|
29
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/areaBeasts.json?identifier=' + identifier.to_s).read
|
30
|
+
return JSON.parse(jsonRequest)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class BySlayerCategory
|
35
|
+
def self.getNames
|
36
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/bestiary/slayerCatNames.json').read
|
37
|
+
return JSON.parse(jsonRequest)
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.getBeasts(identifier)
|
41
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/slayerBeasts.json?identifier=' + identifier.to_s).read
|
42
|
+
return JSON.parse(jsonRequest)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class ByWeakness
|
47
|
+
def self.getNames
|
48
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/bestiary/weaknessNames.json').read
|
49
|
+
return JSON.parse(jsonRequest)
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.getBeasts(identifier)
|
53
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/weaknessBeasts.json?identifier=' + identifier.to_s).read
|
54
|
+
return JSON.parse(jsonRequest)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
class ByLevel
|
59
|
+
def self.getBeasts(identifier)
|
60
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/bestiary/levelGroup.json?identifier=' + identifier.to_s).read
|
61
|
+
return JSON.parse(jsonRequest)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class GrandExchange
|
2
|
+
|
3
|
+
class Categories
|
4
|
+
def self.getInformation(categoryID)
|
5
|
+
uri = Utils.baseURI + 'itemdb_rs/api/catalogue/category.json?category=' + categoryID.to_s
|
6
|
+
jsonRequest = open(uri).read
|
7
|
+
return JSON.parse(jsonRequest)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.getPrices(categoryID, alpha, pageNumber)
|
11
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/api/catalogue/items.json?category='+ categoryID.to_s + '&alpha=' + alpha.to_s + '&page=' + pageNumber.to_s).read
|
12
|
+
return JSON.parse(jsonRequest)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Items
|
17
|
+
def self.graphData(itemID)
|
18
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/api/graph/' + itemID.to_s + '.json').read
|
19
|
+
return JSON.parse(jsonRequest)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.itemDetails(itemID)
|
23
|
+
jsonRequest = open(Utils.baseURI + 'itemdb_rs/api/catalogue/detail.json?item=' + itemID.to_s).read
|
24
|
+
return JSON.parse(jsonRequest)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
class HighScores
|
2
|
+
|
3
|
+
class EOC
|
4
|
+
|
5
|
+
class SeasonalEvents < String
|
6
|
+
def getEvents(status)
|
7
|
+
jsonRequest = open(Utils.baseURI + 'temp-hiscores/getRankings.json?player=DisplayName&status=' + status.to_s).read
|
8
|
+
return JSON.parse(jsonRequest)
|
9
|
+
end
|
10
|
+
|
11
|
+
def getPlayerData(displayName, status)
|
12
|
+
jsonRequest = open(Utils.baseURI + 'temp-hiscores/getRankings.json?player=' + displayName.to_s + '&status=' + status.to_s).read
|
13
|
+
return JSON.parse(jsonRequest)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
class OS
|
20
|
+
|
21
|
+
def self.getPlayer(name)
|
22
|
+
parseCSV(getCSV(name.to_s))
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def self.getCSV(name)
|
28
|
+
if open('http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=' + name).read; else return false end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.parseCSV(csv)
|
32
|
+
|
33
|
+
if csv != ''
|
34
|
+
csv = rawData.gsub("-1", "0")
|
35
|
+
|
36
|
+
stats = rawData.split("\n")
|
37
|
+
|
38
|
+
skills = Array.new { Hash.new }
|
39
|
+
|
40
|
+
stats.each_with_index { |stat, k|
|
41
|
+
bits = stat.split(",")
|
42
|
+
|
43
|
+
hash = {'skill' => Utils.SkillLabels.os[k], 'rank' => bits[0], 'level' => bits[1], 'xp' => bits[2]}
|
44
|
+
|
45
|
+
skills << hash
|
46
|
+
}
|
47
|
+
|
48
|
+
return skills
|
49
|
+
else return false end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
class Player
|
2
|
+
|
3
|
+
class OS
|
4
|
+
|
5
|
+
#Class Variables
|
6
|
+
@@name
|
7
|
+
@@skills
|
8
|
+
|
9
|
+
def initialize(name)
|
10
|
+
@name = name
|
11
|
+
@skills = HighScores::OS.getPlayer(name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def getName
|
15
|
+
return @@name
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
class EOC
|
21
|
+
|
22
|
+
#Class Variables
|
23
|
+
@@name
|
24
|
+
@@skills
|
25
|
+
|
26
|
+
def initialize(name)
|
27
|
+
@@name = name
|
28
|
+
#@skills = HighScores::OS.getPlayer(name)
|
29
|
+
end
|
30
|
+
|
31
|
+
def getName
|
32
|
+
return @@name
|
33
|
+
end
|
34
|
+
|
35
|
+
def getClan
|
36
|
+
uri = URI.encode(Utils.baseURI + "website-data/playerDetails.ws?names=[\"" + @@name + "\"]&callback=jQuery000000000000000_0000000000")
|
37
|
+
jsonRequest = open(uri).read
|
38
|
+
jsonRequest = jsonRequest.gsub("jQuery000000000000000_0000000000([", "")
|
39
|
+
jsonRequest = jsonRequest.gsub("]);", "")
|
40
|
+
data = JSON.parse(jsonRequest)
|
41
|
+
return { "clan" => data["clan"], "recruiting" => data["recruiting"] }
|
42
|
+
end
|
43
|
+
|
44
|
+
def getTitle
|
45
|
+
uri = URI.encode(Utils.baseURI + 'website-data/playerDetails.ws?names=["' + @@name + '"]&callback=jQuery000000000000000_0000000000')
|
46
|
+
jsonRequest = open(uri).read
|
47
|
+
jsonRequest = jsonRequest.gsub("jQuery000000000000000_0000000000([", "")
|
48
|
+
jsonRequest = jsonRequest.gsub("]);", "")
|
49
|
+
json = JSON.parse(jsonRequest)
|
50
|
+
return json["title"]
|
51
|
+
end
|
52
|
+
|
53
|
+
def getAvatarFull
|
54
|
+
return Utils.baseURI + "avatar-rs/" + @@name + "/full.png"
|
55
|
+
end
|
56
|
+
|
57
|
+
def getAvatarChat
|
58
|
+
return Utils.baseURI + "avatar-rs/" + @@name + "/chat.png"
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
class Utils
|
2
|
+
|
3
|
+
def self.baseURI
|
4
|
+
return "http://services.runescape.com/m="
|
5
|
+
end
|
6
|
+
|
7
|
+
class SkillLabels
|
8
|
+
|
9
|
+
def os
|
10
|
+
['Overall', 'Attack', 'Defence',
|
11
|
+
'Strength', 'Constitution', 'Ranged',
|
12
|
+
'Prayer', 'Magic', 'Cooking',
|
13
|
+
'Woodcutting', 'Fletching', 'Fishing',
|
14
|
+
'Firemaking', 'Crafting', 'Smithing',
|
15
|
+
'Mining', 'Herblore', 'Agility',
|
16
|
+
'Thieving', 'Slayer', 'Farming',
|
17
|
+
'Runecrafting', 'Hunter', 'Construction']
|
18
|
+
end
|
19
|
+
|
20
|
+
def eoc
|
21
|
+
['Overall', 'Attack', 'Defence',
|
22
|
+
'Strength', 'Constitution', 'Ranged',
|
23
|
+
'Prayer', 'Magic', 'Cooking',
|
24
|
+
'Woodcutting', 'Fletching', 'Fishing',
|
25
|
+
'Firemaking', 'Crafting', 'Smithing',
|
26
|
+
'Mining', 'Herblore', 'Agility',
|
27
|
+
'Thieving', 'Slayer', 'Farming',
|
28
|
+
'Runecrafting', 'Hunter', 'Construction',
|
29
|
+
'Summoning', 'Dungeoneering', 'Divination']
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rs_api-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Corey DeMarse
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-05-03 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A powerful, yet simple ruby library for RuneScape.
|
14
|
+
email: ''
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/rs_api-ruby.rb
|
20
|
+
- lib/rs_api-ruby/beastiary.rb
|
21
|
+
- lib/rs_api-ruby/grandexchange.rb
|
22
|
+
- lib/rs_api-ruby/highscores.rb
|
23
|
+
- lib/rs_api-ruby/player.rb
|
24
|
+
- lib/rs_api-ruby/utilities.rb
|
25
|
+
homepage: http://github.com/matadoer
|
26
|
+
licenses:
|
27
|
+
- MIT
|
28
|
+
metadata: {}
|
29
|
+
post_install_message:
|
30
|
+
rdoc_options: []
|
31
|
+
require_paths:
|
32
|
+
- lib
|
33
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
requirements: []
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 2.2.2
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: rs_api-ruby is the rubygem port of the powerful, yet simple rs_api library.
|
49
|
+
rs_api is a library with useful tools for managing and querying RuneScape data.
|
50
|
+
test_files: []
|