OSDN Git Service

adhoc uri fix function for some buggy host
authorISHIKAWA Mutsumi <ishikawa@hanzubon.jp>
Mon, 29 Oct 2012 04:14:16 +0000 (13:14 +0900)
committerISHIKAWA Mutsumi <ishikawa@hanzubon.jp>
Mon, 29 Oct 2012 04:14:16 +0000 (13:14 +0900)
lib/Mubot4FB/FB.pm

index 185f0b2..cc6e097 100644 (file)
@@ -46,12 +46,29 @@ sub init {
        return $me->{fbo} = Facebook::Graph->new(access_token => $page_access_token);
 }
 
+
+sub uri_fixer {
+       my ($me, $uri) = @_;
+
+       #dir uri hacks for some buggy host...
+       my ($scheme, $auth, $path, $query, $frag) = uri_split($uri);
+
+       if ($auth eq 'www.guardian.co.uk') {
+               my @q = split(/&/, $query);
+               push(@q, 'fb=optOut');
+               $query = join('&',@q);
+               $uri = uri_join($scheme, $auth, $path, $query, $frag);
+       }
+
+       return $uri;
+}
+
 sub publish {
        my ($me, $text, $uri) = @_;
 
        return $me->{fbo}->add_post($me->{cfg}->{fb_page_id})
            ->set_message($text)
-           ->set_link_uri($uri)
+           ->set_link_uri($me->uri_fixer($uri))
            ->publish()
            ->as_hashref();
 }