From 4c853f8117dcc47d689d2fcccc63ed457f110abd Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 24 May 2012 14:31:42 +0200 Subject: [PATCH 1/4] Fixes issue #3612 with Twitter avatars that lack extension --- plugins/TwitterBridge/twitterimport.php | 26 +++++++++++-------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php index 1c362d6fe8..2b8055b126 100644 --- a/plugins/TwitterBridge/twitterimport.php +++ b/plugins/TwitterBridge/twitterimport.php @@ -339,10 +339,7 @@ class TwitterImport { global $config; - $path_parts = pathinfo($twitter_user->profile_image_url); - - $newname = 'Twitter_' . $twitter_user->id . '_' . - $path_parts['basename']; + $newname = 'Twitter_' . $twitter_user->id . '_' . basename($twitter_user->profile_image_url); $oldname = $profile->getAvatar(48)->filename; @@ -370,15 +367,15 @@ class TwitterImport $path_parts = pathinfo($twitter_user->profile_image_url); - $img_root = substr($path_parts['basename'], 0, -11); - $ext = $path_parts['extension']; + $ext = (isset($path_parts['extension']) ? '.'.$path_parts['extension'] : ''); // some lack extension + $img_root = basename($path_parts['basename'], '_normal'.$ext); // cut off extension $mediatype = $this->getMediatype($ext); foreach (array('mini', 'normal', 'bigger') as $size) { $url = $path_parts['dirname'] . '/' . - $img_root . '_' . $size . ".$ext"; + $img_root . '_' . $size . $ext; $filename = 'Twitter_' . $twitter_user->id . '_' . - $img_root . "_$size.$ext"; + $img_root . '_' . $size . $ext; $this->updateAvatar($profile->id, $size, $mediatype, $filename); $this->fetchAvatar($url, $filename); @@ -401,10 +398,10 @@ class TwitterImport $mediatype = null; switch (strtolower($ext)) { - case 'jpg': + case '.jpg': $mediatype = 'image/jpg'; break; - case 'gif': + case '.gif': $mediatype = 'image/gif'; break; default: @@ -419,16 +416,15 @@ class TwitterImport global $config; $path_parts = pathinfo($user->profile_image_url); - $ext = $path_parts['extension']; - $end = strlen('_normal' . $ext); - $img_root = substr($path_parts['basename'], 0, -($end+1)); + $ext = (isset($path_parts['extension']) ? '.'.$path_parts['extension'] : ''); + $img_root = basename($path_parts['basename'], '_normal'.$ext); $mediatype = $this->getMediatype($ext); foreach (array('mini', 'normal', 'bigger') as $size) { $url = $path_parts['dirname'] . '/' . - $img_root . '_' . $size . ".$ext"; + $img_root . '_' . $size . $ext; $filename = 'Twitter_' . $user->id . '_' . - $img_root . "_$size.$ext"; + $img_root . '_' . $size . $ext; if ($this->fetchAvatar($url, $filename)) { $this->newAvatar($id, $size, $mediatype, $filename); From b2a91944bbab6fd5a1741d7b0bcd08c983ab04c5 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 24 May 2012 23:08:40 +0200 Subject: [PATCH 2/4] retaining compatibility with previous TwitterBridge getMediatype --- plugins/TwitterBridge/twitterimport.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php index 2b8055b126..4d165d4dd2 100644 --- a/plugins/TwitterBridge/twitterimport.php +++ b/plugins/TwitterBridge/twitterimport.php @@ -369,7 +369,7 @@ class TwitterImport $ext = (isset($path_parts['extension']) ? '.'.$path_parts['extension'] : ''); // some lack extension $img_root = basename($path_parts['basename'], '_normal'.$ext); // cut off extension - $mediatype = $this->getMediatype($ext); + $mediatype = $this->getMediatype(substr($ext, 1)); foreach (array('mini', 'normal', 'bigger') as $size) { $url = $path_parts['dirname'] . '/' . @@ -398,10 +398,10 @@ class TwitterImport $mediatype = null; switch (strtolower($ext)) { - case '.jpg': + case 'jpg': $mediatype = 'image/jpg'; break; - case '.gif': + case 'gif': $mediatype = 'image/gif'; break; default: @@ -418,7 +418,7 @@ class TwitterImport $path_parts = pathinfo($user->profile_image_url); $ext = (isset($path_parts['extension']) ? '.'.$path_parts['extension'] : ''); $img_root = basename($path_parts['basename'], '_normal'.$ext); - $mediatype = $this->getMediatype($ext); + $mediatype = $this->getMediatype(substr($ext, 1)); foreach (array('mini', 'normal', 'bigger') as $size) { $url = $path_parts['dirname'] . '/' . From bd8178592c60e8be4733b43e5fdb72aebf6d42f7 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 24 May 2012 23:09:56 +0200 Subject: [PATCH 3/4] adding the odd but reported Twitter avatar .jpeg file extension --- plugins/TwitterBridge/twitterimport.php | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php index 4d165d4dd2..85fcaf08fe 100644 --- a/plugins/TwitterBridge/twitterimport.php +++ b/plugins/TwitterBridge/twitterimport.php @@ -398,6 +398,7 @@ class TwitterImport $mediatype = null; switch (strtolower($ext)) { + case 'jpeg': case 'jpg': $mediatype = 'image/jpg'; break; From fcb1b115fcf972e608703c1f81960b09c6fdd83d Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 24 May 2012 23:24:53 +0200 Subject: [PATCH 4/4] MIME type for jpeg is with an e --- plugins/TwitterBridge/twitterimport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php index 85fcaf08fe..0bf266b1a8 100644 --- a/plugins/TwitterBridge/twitterimport.php +++ b/plugins/TwitterBridge/twitterimport.php @@ -400,7 +400,7 @@ class TwitterImport switch (strtolower($ext)) { case 'jpeg': case 'jpg': - $mediatype = 'image/jpg'; + $mediatype = 'image/jpeg'; break; case 'gif': $mediatype = 'image/gif';