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
| [reply] |
bladx,
I've got a suggestion or two for you:
- oanda doesn't like lowercase currency abbreviations. To be on the safe side, I'd do a uc on $cf and $ct.
- 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 | [reply] [d/l] [select] |
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 | [reply] |