[2812] in BarnOwl Developers
[PATCH] Download Twitter consumer keys from barnowl.mit.edu
daemon@ATHENA.MIT.EDU (David Benjamin)
Fri Nov 26 04:42:27 2010
From: David Benjamin <davidben@MIT.EDU>
To: barnowl-dev@mit.edu
Cc: Nelson Elhage <nelhage@mit.edu>
Date: Fri, 26 Nov 2010 04:41:57 -0500
In-Reply-To: <alpine.DEB.1.10.1011260430280.15631@dr-wily.mit.edu>
From: Nelson Elhage <nelhage@MIT.EDU>
---
.../Twitter/lib/BarnOwl/Module/Twitter/Handle.pm | 29 +++++++++++++++++---
1 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm b/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm
index f26d5da..92759ae 100644
--- a/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm
+++ b/perl/modules/Twitter/lib/BarnOwl/Module/Twitter/Handle.pm
@@ -30,8 +30,23 @@ use BarnOwl;
use BarnOwl::Message::Twitter;
use POSIX qw(asctime);
-use constant BARNOWL_CONSUMER_KEY => "9Py27vCQl6uB5V7ijmp31A";
-use constant BARNOWL_CONSUMER_SECRET => "GLhheSim8P5cVuk9FTM99KTEgWLW0LGl7gf54QWfg";
+use LWP::UserAgent;
+use URI;
+use JSON;
+
+use constant CONSUMER_KEY_URI => 'http://barnowl.mit.edu/twitter-keys';
+our $oauth_keys;
+
+sub fetch_keys {
+ my $ua = LWP::UserAgent->new;
+ $ua->timeout(5);
+ my $response = $ua->get(CONSUMER_KEY_URI);
+ if ($response->is_success) {
+ $oauth_keys = eval { from_json($response->decoded_content) };
+ } else {
+ warn "[Twitter] Unable to download OAuth keys: $response->status_line\n";
+ }
+}
sub fail {
my $self = shift;
@@ -57,6 +72,12 @@ sub new {
$cfg->{show_mentions} = $val;
}
+
+ if (!defined($oauth_keys)) {
+ fetch_keys();
+ }
+ my $keys = $oauth_keys->{URI->new($cfg->{service})->canonical} || {};
+
$cfg = {
account_nickname => '',
default => 0,
@@ -64,8 +85,8 @@ sub new {
poll_for_dms => 1,
publish_tweets => 0,
show_mentions => 1,
- oauth_key => BARNOWL_CONSUMER_KEY,
- oauth_secret => BARNOWL_CONSUMER_SECRET,
+ oauth_key => $keys->{oauth_key},
+ oauth_secret => $keys->{oauth_secret},
%$cfg,
};
--
1.7.3.1.g716de