rs_api-ruby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|