Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Currency Exchange Grabber

by bladx (Chaplain)
on Aug 29, 2001 at 01:40 UTC ( [id://108613]=sourcecode: print w/replies, xml ) Need Help??
Category: Web Stuff
Author/Contact Info Andy Summers bladx
Description: Taken from a POD snippet within the code:

This progam's use and reason for being created, is simply for anyone that wantsto be able to check the exchange rates for different types of money, such as fromother countries. Say one was going on a trip to Japan, and they live currently in the United States. They would need to find out how much money they should bring, in order to have a good amount, and there isn't an easier way (almost) than to just enter in the amount you want converted using CEG and telling it to convert from what type of money, to the other country's money.
#!/usr/bin/perl -w
use strict;
use LWP::Simple;

# Popular currencies are: USD, GBP, EUR, and JPY.
my ($amount,$cf,$ct) = ($ARGV[0],$ARGV[1],$ARGV[2]);

$_=get("http://www.oanda.com/converter/classic?value=$amount&exch=$cf&
+expr=$ct");
s/^.*<!-- conversion result starts//s;
s/<!-- conversion result ends.*$//s;
s/<[^>]+>//g; s/[ \n]+/ /gs;
print $_, "\n"

=head1 NAME

CEG - Currency Exchange Grabber
 
=head1 SYNOPSIS
 
    perl ceg.pl 50 USD JPY
 
=head1 DESCRIPTION
 
    Here is a rough break-down of what each of the ARGV's are needed, 
+and mean:
    perl ceg.pl ($amount) ($cf - convert from) ($ct - convert to)

    This progam's use and reason for being created, is simply for anyo
+ne that wants 
    to be able to check the exchange rates for different types of mone
+y, such as from 
    other countries.  Say one was going on a trip to Japan, and they l
+ive currently in 
    the United States.  They would need to find out how much money the
+y should bring, 
    in order to have a good amount, and there isn't an easier way (alm
+ost) than to just 
    enter in the amount you want converted using CEG and telling it to
+ convert from what 
    type of money, to the other country's money.

    It is a very simple program, and is really the first time I have u
+sed LWP to do 
    something (useful,) so it could have a lot of new features to add 
+in the future, and 
    possible bug fixes, or efficiency caveats that could be changed, a
+nd so on.

=head1 POPULAR CURRENCIES

    Here are a few popular currencies you can use:
      USD - US Dollars
      GBP - UK
      EUR - EURO
      JPY - Japanese Yen

    You can find more at:
      http://www.oanda.com

=head1 HISTORY

    Derived from a snippet from mitd:
      http://www.perlmonks.org/index.pl?node_id=1553&lastnode_id=10799
+8
    Developed by Andy summers on 28/08/2001

=cut
Replies are listed 'Best First'.
Re: Currency Exchange Grabber
by myocom (Deacon) on Aug 29, 2001 at 03:22 UTC

    While I doubt that one would get into legal trouble with this sort of thing, one could, according to Oanda's Terms of Use. Better safe than sorry.

    "One word of warning: if you meet a bunch of Perl programmers on the bus or something, don't look them in the eye. They've been known to try to convert the young into Perl monks." - Frank Willison
Re: Currency Exchange Grabber
by robsv (Curate) on Aug 29, 2001 at 20:33 UTC
    bladx,
    I've got a suggestion or two for you:
    1. oanda doesn't like lowercase currency abbreviations. To be on the safe side, I'd do a uc on $cf and $ct.
    2. If someone tries this out, and they're behind a firewall (like me), it's not going to work. For those behind firewalls, I offer the following:
    #!/usr/local/bin/perl -w use strict; use LWP::UserAgent; use HTTP::Request::Common; my ($amount,$cf,$ct) = @ARGV[0..2]; my $request = GET "http://www.oanda.com/converter/classic?value=" . "$amount&exch=" . uc($cf) . "&expr=" . uc($ct); $request->proxy_authorization_basic('username','password'); (my $ua = (new LWP::UserAgent))->proxy('http','http://yourproxyhere.co +m:1080'); my $resp = $ua->request($request); die $resp->status_line if ($resp->is_error()); $_ = $resp->{_content}; s/^.*<!-- conversion result starts//s; s/<!-- conversion result ends.*$//s; s/<[^>]+>//g; s/[ \n]+/ /gs; print $_, "\n"
    You'll need to change username and password to your username/password for the proxy server. If you don't need to authenticate yourself, you can just skip the proxy_authorization_basic. You'll also need to change http://yourproxyhere.com:1080 to the name/port of your proxy server.
    I believe the original currency converter was in the article Five Quick Hacks: Downloading Web Pages, in TPJ #13, by Jon Orwant and Dan Gruhl. The modified code above is based on Downloading Web Pages Through A Proxy Server in TPJ #14, by, um, me.
    Happy converting (within the bounds of the Terms of Use pointed out by myocom)!

    - robsv
Re: Currency Exchange Grabber
by bladx (Chaplain) on Aug 29, 2001 at 21:55 UTC
    Thanks for the sage words of wisdom. I had better be more careful with terms of usage of my little programs.

    I don't think i'll continue developing this sort of thing for now. Thanks again for the help!

    Andy Summers

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://108613]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2024-04-18 13:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found