fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-10-28 11:14 am

[dw-free] Width/height attributes absent from non-DW userheads in email

[commit: http://hg.dwscoalition.org/dw-free/rev/ce0787149088]

http://bugs.dwscoalition.org/show_bug.cgi?id=3998

Write down the width/height attributes for external usernames.

Patch by [personal profile] fu.

Files modified:
  • cgi-bin/DW/External/Site.pm
  • cgi-bin/DW/External/Site/ArchiveofOurOwn.pm
  • cgi-bin/DW/External/Site/DeadJournal.pm
  • cgi-bin/DW/External/Site/Diigo.pm
  • cgi-bin/DW/External/Site/Dreamwidth.pm
  • cgi-bin/DW/External/Site/Etsy.pm
  • cgi-bin/DW/External/Site/Inksome.pm
  • cgi-bin/DW/External/Site/InsaneJournal.pm
  • cgi-bin/DW/External/Site/JournalFen.pm
  • cgi-bin/DW/External/Site/LiveJournal.pm
  • cgi-bin/DW/External/Site/Tumblr.pm
  • cgi-bin/DW/External/Site/Twitter.pm
  • cgi-bin/DW/External/Site/Unknown.pm
  • cgi-bin/DW/External/User.pm
--------------------------------------------------------------------------------
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site.pm
--- a/cgi-bin/DW/External/Site.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -167,23 +167,32 @@
     return $self->journal_url( $u ) . 'data/atom';
 }
 
-# returns the badge_image_url for this user on this site.
-sub badge_image_url {
+# returns the badge_image info for this user on this site.
+sub badge_image {
     my ( $self, $u ) = @_;
+
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # override this on a site-by-site basis if needed
     my $type = $self->journaltype( $u ) || 'P';
     my $gif = {
-               P => '/img/userinfo.gif',
-               C => '/img/community.gif',
-               Y => '/img/syndicated.gif',
+               #      URL,                   width, height
+               P => [ '/img/userinfo.gif',   17, 17 ],
+               C => [ '/img/community.gif',  16, 16 ],
+               Y => [ '/img/syndicated.gif', 16, 16 ],
               };
+
+    my $img = $gif->{$type};
+    return {
     # this will do the right thing for an lj-based site,
     # but it's better to override this with cached images
     # to avoid hammering the remote site with image requests.
-    return "http://$self->{hostname}$gif->{$type}";
+
+        url     => "http://$self->{hostname}$img->[0]",
+        width   => $img->[1],
+        height  => $img->[2],
+    }
 }
 
 # adjust the request for any per-site limitations
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/ArchiveofOurOwn.pm
--- a/cgi-bin/DW/External/Site/ArchiveofOurOwn.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/ArchiveofOurOwn.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -40,12 +40,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the to the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
-        return 'http://archiveofourown.org/favicon.ico';
+
+    return {
+        url => 'http://archiveofourown.org/favicon.ico',
+        width => 16,
+        height => 16,
+    }
+        ;
 }
 
 1;
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/DeadJournal.pm
--- a/cgi-bin/DW/External/Site/DeadJournal.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/DeadJournal.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -38,19 +38,25 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     my $type = $self->journaltype( $u ) || 'P';
     my $gif = {
-               P => '/external/dj-userinfo.gif',
-               C => '/external/dj-community.gif',
-               Y => '/external/dj-syndicated.gif',
+               P => [ '/external/dj-userinfo.gif',   17, 25 ],
+               C => [ '/external/dj-community.gif',  17, 17 ],
+               Y => [ '/external/dj-syndicated.gif', 17, 17 ]
               };
-    return $LJ::IMGPREFIX . $gif->{$type};
+
+    my $img = $gif->{$type};
+    return {
+        url     => $LJ::IMGPREFIX . $img->[0],
+        width   => $img->[1],
+        height  => $img->[2],
+    }
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Diigo.pm
--- a/cgi-bin/DW/External/Site/Diigo.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Diigo.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -60,14 +60,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (userhead icon) for this user
-sub badge_image_url {
+# returns info for the badge image (userhead icon) for this user
+sub badge_imagel {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # for lack of anything better, let's use the favicon
-    return "http://www.diigo.com/favicon.ico";
+    return {
+        url     => "http://www.diigo.com/favicon.ico",
+        width   => 16,
+        height  => 16,
+    }
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Dreamwidth.pm
--- a/cgi-bin/DW/External/Site/Dreamwidth.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Dreamwidth.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -51,19 +51,25 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     my $type = $self->journaltype( $u ) || 'P';
-    my $img = {
-               P => '/silk/identity/user.png',
-               C => '/silk/identity/community.png',
-               Y => '/silk/identity/feed.png',
+    my $gif = {
+               P => [ '/silk/identity/user.png',      16, 16 ],
+               C => [ '/silk/identity/community.png', 16, 16 ],
+               Y => [ '/silk/identity/feed.png',      16, 16 ],
               };
-    return $LJ::IMGPREFIX . $img->{$type};
+
+    my $img = $gif->{$type};
+    return {
+        url     => $LJ::IMGPREFIX . $img->[0],
+        width   => $img->[1],
+        height  => $img->[2],
+    }
 }
 
 sub canonical_username {
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Etsy.pm
--- a/cgi-bin/DW/External/Site/Etsy.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Etsy.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -60,14 +60,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (userhead icon) for this user
-sub badge_image_url {
+# returns info for the badge image (userhead icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # for lack of anything better, let's use the favicon
-    return "http://www.etsy.com/favicon.ico";
+    return {
+        url => "http://www.etsy.com/favicon.ico",
+        width => 16,
+        height => 16,
+    }
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Inksome.pm
--- a/cgi-bin/DW/External/Site/Inksome.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Inksome.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -52,14 +52,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # Inksome went away, so just assume every account is personal
-    return "$LJ::IMGPREFIX/external/ink-userinfo.gif";
+    return {
+        url => "$LJ::IMGPREFIX/external/ink-userinfo.gif",
+        width => 17,
+        height => 17,
+    }
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/InsaneJournal.pm
--- a/cgi-bin/DW/External/Site/InsaneJournal.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/InsaneJournal.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -38,19 +38,26 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     my $type = $self->journaltype( $u ) || 'P';
     my $gif = {
-               P => '/external/ij-userinfo.gif',
-               C => '/external/ij-community.gif',
-               Y => '/external/lj-syndicated.gif',
+               P => [ '/external/ij-userinfo.gif', 21, 20 ],
+               C => [ '/external/ij-community.gif',  18, 13 ],
+               Y => [ '/external/lj-syndicated.gif', 16, 16 ],
               };
-    return $LJ::IMGPREFIX . $gif->{$type};
+
+    my $img = $gif->{$type};
+    return {
+        url     => $LJ::IMGPREFIX . $img->[0],
+        width   => $img->[1],
+        height  => $img->[2],
+    }
+
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/JournalFen.pm
--- a/cgi-bin/DW/External/Site/JournalFen.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/JournalFen.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -38,19 +38,25 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     my $type = $self->journaltype( $u ) || 'P';
     my $gif = {
-               P => '/external/lj-userinfo.gif',
-               C => '/external/lj-community.gif',
-               Y => '/external/lj-syndicated.gif',
+               P => [ '/external/lj-userinfo.gif',   17, 17 ],
+               C => [ '/external/lj-community.gif',  16, 16 ],
+               Y => [ '/external/lj-syndicated.gif', 16, 16 ],
               };
-    return $LJ::IMGPREFIX . $gif->{$type};
+
+    my $img = $gif->{$type};
+    return {
+        url     => $LJ::IMGPREFIX . $img->[0],
+        width   => $img->[1],
+        height  => $img->[2],
+    }
 }
 
 sub canonical_username {
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/LiveJournal.pm
--- a/cgi-bin/DW/External/Site/LiveJournal.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/LiveJournal.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -51,19 +51,25 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     my $type = $self->journaltype( $u ) || 'P';
     my $gif = {
-               P => '/external/lj-userinfo.gif',
-               C => '/external/lj-community.gif',
-               Y => '/external/lj-syndicated.gif',
+               P => [ '/external/lj-userinfo.gif',   17, 17 ],
+               C => [ '/external/lj-community.gif',  16, 16 ],
+               Y => [ '/external/lj-syndicated.gif', 16, 16 ],
               };
-    return $LJ::IMGPREFIX . $gif->{$type};
+
+    my $img = $gif->{$type};
+    return {
+        url     => $LJ::IMGPREFIX . $img->[0],
+        width   => $img->[1],
+        height  => $img->[2],
+    }
 }
 
 sub canonical_username {
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Tumblr.pm
--- a/cgi-bin/DW/External/Site/Tumblr.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Tumblr.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -60,14 +60,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image ("t" icon) for this user
-sub badge_image_url {
+# returns info for the badge image ("t" icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # for lack of anything better, let's use the favicon
-    return "http://www.tumblr.com/favicon.ico";
+    return {
+        url => "http://www.tumblr.com/favicon.ico",
+        width => 16,
+        height => 16,
+    };
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Twitter.pm
--- a/cgi-bin/DW/External/Site/Twitter.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Twitter.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -59,14 +59,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # for lack of anything better, let's use the favicon
-    return "http://twitter.com/favicon.ico";
+    return {
+        url => "http://twitter.com/favicon.ico",
+        width => 16,
+        height => 16,
+    }
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/Site/Unknown.pm
--- a/cgi-bin/DW/External/Site/Unknown.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/Site/Unknown.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -48,14 +48,18 @@
 
 
 # argument: DW::External::User
-# returns URL to the badge image (head icon) for this user
-sub badge_image_url {
+# returns info for the badge image (head icon) for this user
+sub badge_image {
     my ( $self, $u ) = @_;
     croak 'need a DW::External::User'
         unless $u && ref $u eq 'DW::External::User';
 
     # since we don't know what site this is, they can have an "unknown" icon
-    return "$LJ::IMGPREFIX/silk/identity/user_other.png";
+    return {
+        url => "$LJ::IMGPREFIX/silk/identity/user_other.png",
+        width => 16,
+        height => 16,
+    };
 }
 
 
diff -r 69063ffdba54 -r ce0787149088 cgi-bin/DW/External/User.pm
--- a/cgi-bin/DW/External/User.pm	Fri Oct 28 18:29:34 2011 +0800
+++ b/cgi-bin/DW/External/User.pm	Fri Oct 28 19:14:26 2011 +0800
@@ -66,12 +66,12 @@
     my $user = $self->user;
     my $profile_url = $self->site->profile_url( $self );
     my $journal_url = $self->site->journal_url( $self );
-    my $badge_image_url = $self->site->badge_image_url( $self );
+    my $badge_image = $self->site->badge_image( $self );
     my $display_class = $opts{no_ljuser_class} ? "" : " class='ljuser'";
     my $domain = $self->site->{domain} ? $self->site->{domain} : $self->site->{hostname};
 
     return "<span style='white-space: nowrap;'$display_class><a href='$profile_url'>" .
-           "<img src='$badge_image_url' alt='[$domain profile] ' style='vertical-align: bottom; border: 0; padding-right: 1px;' />" .
+           "<img src='$badge_image->{url}' alt='[$domain profile] ' style='vertical-align: bottom; border: 0; padding-right: 1px;' width='$badge_image->{width}' height='$badge_image->{height}'/>" .
            "</a><a href='$journal_url'><b>$user</b></a></span>";
 }
 
--------------------------------------------------------------------------------