Partyhat offers easy to use methods for Runescape-related apps.
gem install partyhat
or in bundler:
gem "partyhat", "~> 0.0.1"
Partyhat offers a variety of general utilities used across the whole gem, and these can be found in the Partyhat::Util
module
experience = 15000
level = Partyhat::Util.experience_to_level(experience) # => 53
level = 99
experience = Partyhat::Util.level_to_experience(level) # => 13034431
number = 1500000
shortened = Partyhat::Util.shorten_number(number) # => 1.5M
shortened = "23.5M"
number = Partyhat::Util.parse_number(shortened) # => 23500000.0
Pretty much any data of skills or activities in Partyhat is encapsulated within a class instance of the corresponding type.
It also offers simple to use comparing methods for skills and activities. Initiating a new comparison gives you an object with the comparison results.
Results are calculated via the difference for the second to first. So level will return the difference of second-first, meaning negative values mean the first skill is better, except on ranks, where higher values means the first is higher (higher up in ranks, that is).
skill1 = Partyhat::Skill.new(:attack, 99, 13034431, 1)
skill2 = Partyhat::Skill.new(:attack, 97, 10692629, 3)
skill_comparison = skill1.compare_to(skill2)
skill_comparison.level # => -2 (skill2 is n levels lower)
skill_comparison.experience # => -2341802 (skill2 is n amount of xp behind)
skill_comparison.rank # => 1 (skill2 is n ranks lower)
Same goes for comparing activities, just the resulting values are obviously different:
activity1 = Partyhat::Activity.new(:conquest, 5000, 34)
activity2 = Partyhat::Activity.new(:conquest, 2384, 88)
activity_comparison = activity1.compare_to(activity2)
activity_comparison.score # => -2616 (activity2 has n less score)
activity_comparison.rank # => 54 (activity2 is n ranks lower)
Partyhat has a really easy to use highscores module, which exists in Partyhat::Highscores
stats = Partyhat::Highscores.find_player("Not Clooth")
stats[:attack] # => #<Partyhat::Skill:x @name=:attack, @level=81, @experience=2208951, @rank=250554>
stats[:ba_attackers] # => #<Partyhat::Activity:x @name=:ba_attackers, @score=nil, @rank=nil>
As you can see, we use the Partyhat::Skill
and Partyhat::Activity
classes in the returned stats hash for your convenience, so you can compare them and whatnot.
You can also save a player with its stats and name by creating a new Partyhat::Player
instance:
me = Partyhat::Player.new("Not Clooth")
This operation fetches the stats automatically and allows you to then access the stats and name afterwards.
me.name # => "Not Clooth"
me.stats[:attack].level # => 81
There is a combat calculator included in Partyhat, that you just give a player's stats hash to, and it calculates the combat level with them:
combat = Partyhat::Calculators.combat(me.stats)
combat[:level] # => 109.15
combat[:remainders] # => {:strength_attack=>3, :defence_constitution=>4, :prayer_summoning=>7}
Partyhat also offers a simple interface to parsing the Runescape official forums, that you can use the following ways:
thread = Partyhat::Forums::ForumThread.new("13-14-933-63418737")
thread.title # => "Behind The Scenes - December"
thread.link # => "http://services.runescape.com/m=forum/forums.ws?13,14,933,63418737"
After you have fetched the thread, you will have access to the posts of the thread (keep in mind only the first page is currently supported):
thread.posts.first.author # => "Mod Mark"
thread.posts.first.posted # => "01-Dec-2011 15:49:14"
thread.posts.first.contents # => "…"
A small utility function is also available for validating QFC codes:
Partyhat::Forums.valid_qfc? "13-14-933-6341873" # => true
Partyhat::Forums.valid_qfc? "12333-4955" # => false
- More tests!
- Player Comparison class
- Add avatar urls to Player object
- Progress to next (or given) level (or experience)
- Find by rank and stat for highscores
- Fetch multiple players at once (Curl.Multi)
- More data for forums and encoding issues
- Clan information parser (by clan name)
- Grand Exchange class with:
-
- Item search by name
-
- Item search by id
-
- Item comparison (price)
- Wiki search
- Forum search
- Runescape News Parser
- Adventurer's Log Aggregator
-
- With support for multiple players
-
- Different order modes (by day, etc.)
- Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
- Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
- Fork the project
- Start a feature/bugfix branch
- Commit and push until you are happy with your contribution
- Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
- Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
Copyright (c) 2011 Clooth. See LICENSE.txt for further details.