Flickr-Upload-FireEagle

 view release on metacpan or  search on metacpan

lib/Flickr/Upload/FireEagle.pm  view on Meta::CPAN


                # Do some final sanity checking if we know what our lat, lon is

                elsif ($has_gps){

                        # please cache me...
                        my ($lat, $lon) = $self->gps_exif_to_latlon($info);
                        
                        try {
                                my $res = $self->flickr_api_call('flickr.places.findByLatLon', {'lat' => $lat, 'lon' => $lon});
                                my $xml = XML::XPath->new('xml' => $res->decoded_content());

                                my $fe_placeid = $ctx->findvalue("place-id");
                                my $fl_placeid = $xml->findvalue("/rsp/places/place/\@place_id")->string_value();;

                                if ($fe_placeid ne $fl_placeid){

                                        warn "Mismatch between Flickr and FireEagle place IDs ($fl_placeid, $fe_placeid) based on lat/lon, deferring to Flickr";

                                        my $fe_id = $ctx->findvalue("id")->string_value();
                                        $ctx = undef;

lib/Flickr/Upload/FireEagle.pm  view on Meta::CPAN


        return join(" ", @tags);
}

sub fetch_places_name {
        my $self = shift;
        my $placeid = shift;

        try {
                my $res = $self->flickr_api_call('flickr.places.resolvePlaceId', {'place_id' => $placeid});
                my $xml = XML::XPath->new('xml' => $res->decoded_content());
                
                return $xml->findvalue("/rsp/location/\@name");
        }
                
        catch Error with {
                # pass
        };
}

#

lib/Flickr/Upload/FireEagle.pm  view on Meta::CPAN

sub tagify_like_delicious {
        my $self = shift;
        my $tag = shift;

        $tag =~ s/\s//g;
        return lc($tag);
}

#
# Just so so so wrong...but necessary until Flickr::Upload
# is updated to call $res->decoded_content()
#

sub upload_request($$) {
        my $self = shift;
        die "$self is not a LWP::UserAgent" unless $self->isa('LWP::UserAgent');
        my $req = shift;
        die "expecting a HTTP::Request" unless $req->isa('HTTP::Request');

        my $res = $self->request( $req );

        my $tree = XML::Parser::Lite::Tree::instance()->parse($res->decoded_content());
        return () unless defined $tree;

        my $photoid = response_tag($tree, 'rsp', 'photoid');
        my $ticketid = response_tag($tree, 'rsp', 'ticketid');
        unless( defined $photoid or defined $ticketid ) {
                print STDERR "upload failed:\n", $res->content(), "\n";
                return undef;
        }

        return (defined $photoid) ? $photoid : $ticketid;



( run in 0.328 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )