Bump version and update Changes
[www-backpacktf.git] / lib / WWW / BackpackTF.pm
index 6f4535a199340c776b0ffa9b92efd6435187c6df..ad39d73175774356775477f0a1d31cd1cedb246d 100644 (file)
@@ -4,12 +4,13 @@ use 5.014000;
 use strict;
 use warnings;
 use parent qw/Exporter/;
-our $VERSION = '0.000_001';
+our $VERSION = '0.001001';
 our @EXPORT_OK = qw/TF2 DOTA2/;
 
-use constant +{
+use constant +{ ## no critic (Capitalization)
        TF2 => 440,
        DOTA2 => 570,
+       CSGO => 730,
        QUALITIES => [qw/Normal Genuine rarity2 Vintage rarity3 Unusual Unique Community Valve Self-Made Customized Strange Completed Haunted Collector's/],
 };
 
@@ -22,20 +23,24 @@ BEGIN {
        }
 }
 
-use JSON qw/decode_json/;
-use LWP::Simple qw/get/;
+use JSON::MaybeXS qw/decode_json/;
+use HTTP::Tiny;
 use PerlX::Maybe;
 use WWW::BackpackTF::Currency;
 use WWW::BackpackTF::Item;
 use WWW::BackpackTF::User;
 
+my $ht = HTTP::Tiny->new(agent => "WWW-BackpackTF/$VERSION");
+
 sub request {
        my ($self, $url, %params) = @_;
-       $params{key} = $self->{key};
+       $params{key} = $self->{key} if $self->{key};
        $url = $self->{base} . $url;
        $url .= "&$_=$params{$_}" for keys %params;
-       my $response = decode_json(get $url)->{response};
-       die $response->{message} unless $response->{success};
+       my $htr = $ht->get($url);
+       die $htr->{reason} unless $htr->{success}; ## no critic (RequireCarping)
+       my $response = decode_json($htr->{content})->{response};
+       die $response->{message} unless $response->{success}; ## no critic (RequireCarping)
        $response
 }
 
@@ -48,25 +53,27 @@ sub new{
 sub get_prices {
        my ($self, $appid, $raw) = @_;
        my $response = $self->request('IGetPrices/v4/?compress=1', maybe appid => $appid, maybe raw => $raw);
-       map { WWW::BackpackTF::Item->new($_, $response->{items}{$_}) } keys $response->{items}
+       map { WWW::BackpackTF::Item->new($_, $response->{items}{$_}) } keys %{$response->{items}}
 }
 
 sub get_users {
        my ($self, @users) = @_;
        my $response = $self->request('IGetUsers/v3/?compress=1', steamids => join ',', @users);
-       @users = map { WWW::BackpackTF::User->new($_) } values $response->{players};
+       @users = map { WWW::BackpackTF::User->new($_) } values %{$response->{players}};
        wantarray ? @users : $users[0]
 }
 
 sub get_currencies {
        my ($self, $appid) = @_;
        my $response = $self->request('IGetCurrencies/v1/?compress=1', maybe appid => $appid);
-       map { WWW::BackpackTF::Currency->new($_, $response->{currencies}{$_}) } keys $response->{currencies};
+       map { WWW::BackpackTF::Currency->new($_, $response->{currencies}{$_}) } keys %{$response->{currencies}};
 }
 
 1;
 __END__
 
+=encoding utf-8
+
 =head1 NAME
 
 WWW::BackpackTF - interface to the backpack.tf trading service
@@ -85,7 +92,7 @@ WWW::BackpackTF - interface to the backpack.tf trading service
 
 =head1 DESCRIPTION
 
-WWW::BackpackTF is an interface to the backpack.tf Team Fortress 2/Dota 2 trading service.
+WWW::BackpackTF is an interface to the backpack.tf Team Fortress 2/Dota 2/Counter-Strike: Global Offensive trading service.
 
 =head2 METHODS
 
@@ -135,6 +142,10 @@ Constant (440) representing Team Fortress 2.
 
 Constant (570) representing Dota 2.
 
+=item B<CSGO>
+
+Constant (730) representing Counter-Strike: Global Offensive
+
 =item B<NORMAL>
 
 The Normal item quality (0).
@@ -207,7 +218,7 @@ Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2014 by Marius Gavrilescu
+Copyright (C) 2014-2016 by Marius Gavrilescu
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.18.2 or,
This page took 0.012119 seconds and 4 git commands to generate.