From 7da1a14ce852cac32a570bace8bd74f1a74df3fc Mon Sep 17 00:00:00 2001 From: Dan Dascalescu Date: Sat, 26 Nov 2011 01:27:02 -0800 Subject: [PATCH] Update API to match http://code.google.com/p/otterapi/wiki/Resources. Factor out list parameters. --- lib/Net/Topsy/Role/API.pm | 119 +++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 58 deletions(-) diff --git a/lib/Net/Topsy/Role/API.pm b/lib/Net/Topsy/Role/API.pm index 3aba000..1eb72a5 100644 --- a/lib/Net/Topsy/Role/API.pm +++ b/lib/Net/Topsy/Role/API.pm @@ -2,96 +2,102 @@ package Net::Topsy::Role::API; use Moose::Role; +my %list_parameters = ( + page => 0, + perpage => 0, + offset => 0, + mintime => 0, + maxtime => 0, + nohidden => 0, + allow_lang => 0, + family_filter => 0, +); + has API => ( isa => 'HashRef', is => 'ro', default => sub { { 'http://otter.topsy.com' => { - '/search' => { - args => { - q => 1, - window => 0, - page => 0, - perpage => 0, - }, - }, - '/searchcount' => { - args => { - q => 1, - }, - }, - '/profilesearch' => { + '/authorinfo' => { args => { - q => 1, - page => 0, - perpage => 0, + url => 1, }, }, - '/authorsearch' => { + '/experts' => { args => { q => 1, - window => 0, - page => 0, - perpage => 0, + config_NoFilters => 0, + %list_parameters }, }, - '/stats' => { + '/linkposts' => { args => { url => 1, - contains => 0, + contains => 0, + tracktype => 0, + %list_parameters }, }, - '/tags' => { + '/linkpostscount' => { args => { url => 1, - page => 0, - perpage => 0, + contains => 0, + tracktype => 0, }, }, - '/authorinfo' => { + '/populartrackbacks' => { args => { url => 1, + %list_parameters }, }, - '/urlinfo' => { + '/search' => { args => { - url => 1, + q => 1, + window => 0, + type => 0, + query_features => 0, + %list_parameters }, }, - '/linkpostcount' => { + '/searchcount' => { args => { - url => 1, - contains => 0, + q => 1, + dynamic => 0, }, }, - '/linkposts' => { + '/searchhistogram' => { args => { - url => 1, - contains => 0, - page => 0, - perpage => 0, + q => 1, + slice => 0, + period => 0, + count_method => 0, }, }, - '/toplinkcount' => { + '/searchdate' => { args => { - contains => 0, - page => 0, - perpage => 0, + q => 1, + window => 0, + type => 0, + zoom => 0, }, }, - '/toplinks' => { + '/stats' => { args => { - contains => 0, - page => 0, - perpage => 0, + url => 1, + contains => 0, }, }, - '/trending' => { + '/top' => { args => { - page => 0, - perpage => 0, + thresh => 1, + type => 0, + locale => 0, + %list_parameters }, }, - '/credit' => { + '/tags' => { args => { + url => 1, + %list_parameters }, }, '/trackbacks' => { @@ -99,21 +105,18 @@ has API => ( isa => 'HashRef', is => 'ro', default => sub { url => 1, contains => 0, infonly => 0, - page => 0, - perpage => 0, + sort_method => 0, + %list_parameters }, }, - '/related' => { + '/trending' => { args => { - url => 1, - page => 0, - perpage => 0, + %list_parameters }, }, - '/trackbackcount' => { + '/urlinfo' => { args => { - url => 1, - contains => 0, + url => 1, }, }, },