This time, twitterstatusfetcher really DOES update changed and missing avatars!

This commit is contained in:
Zach Copley 2009-06-18 19:21:17 -07:00
parent e506f82cdf
commit cb0047b144

View File

@ -351,38 +351,59 @@ class TwitterStatusFetcher extends Daemon
} }
} }
function checkAvatar($user, $profile) function checkAvatar($twitter_user, $profile)
{ {
global $config; global $config;
$path_parts = pathinfo($user->profile_image_url); $path_parts = pathinfo($twitter_user->profile_image_url);
$newname = 'Twitter_' . $user->id . '_' .
$newname = 'Twitter_' . $twitter_user->id . '_' .
$path_parts['basename']; $path_parts['basename'];
$oldname = $profile->getAvatar(48)->filename; $oldname = $profile->getAvatar(48)->filename;
if ($newname != $oldname || $this->missingAvatarFile($profile)) { if ($newname != $oldname) {
if (defined('SCRIPT_DEBUG')) { if (defined('SCRIPT_DEBUG')) {
common_debug('Avatar for Twitter user ' . common_debug('Avatar for Twitter user ' .
"$profile->nickname has changed, or was missing locally."); "$profile->nickname has changed.");
common_debug("old: $oldname new: $newname"); common_debug("old: $oldname new: $newname");
} }
$img_root = substr($path_parts['basename'], 0, -11); $this->updateAvatars($twitter_user, $profile);
$ext = $path_parts['extension']; }
$mediatype = $this->getMediatype($ext);
foreach (array('mini', 'normal', 'bigger') as $size) { if ($this->missingAvatarFile($profile)) {
$url = $path_parts['dirname'] . '/' .
$img_root . '_' . $size . ".$ext";
$filename = 'Twitter_' . $user->id . '_' .
$img_root . "_$size.$ext";
if ($this->fetchAvatar($url, $filename)) { if (defined('SCRIPT_DEBUG')) {
$this->updateAvatar($profile->id, $size, $mediatype, $filename); common_debug('Twitter user ' . $profile->nickname .
} ' is missing one or more local avatars.');
common_debug("old: $oldname new: $newname");
} }
$this->updateAvatars($twitter_user, $profile);
}
}
function updateAvatars($twitter_user, $profile) {
global $config;
$path_parts = pathinfo($twitter_user->profile_image_url);
$img_root = substr($path_parts['basename'], 0, -11);
$ext = $path_parts['extension'];
$mediatype = $this->getMediatype($ext);
foreach (array('mini', 'normal', 'bigger') as $size) {
$url = $path_parts['dirname'] . '/' .
$img_root . '_' . $size . ".$ext";
$filename = 'Twitter_' . $twitter_user->id . '_' .
$img_root . "_$size.$ext";
$this->updateAvatar($profile->id, $size, $mediatype, $filename);
$this->fetchAvatar($url, $filename);
} }
} }
@ -451,7 +472,7 @@ class TwitterStatusFetcher extends Daemon
$profile = Profile::staticGet($profile_id); $profile = Profile::staticGet($profile_id);
if (!$profile) { if (empty($profile)) {
if (defined('SCRIPT_DEBUG')) { if (defined('SCRIPT_DEBUG')) {
common_debug("Couldn't get profile: $profile_id!"); common_debug("Couldn't get profile: $profile_id!");
} }
@ -461,10 +482,8 @@ class TwitterStatusFetcher extends Daemon
$sizes = array('mini' => 24, 'normal' => 48, 'bigger' => 73); $sizes = array('mini' => 24, 'normal' => 48, 'bigger' => 73);
$avatar = $profile->getAvatar($sizes[$size]); $avatar = $profile->getAvatar($sizes[$size]);
// Delete the avatar, if present
if ($avatar) { if ($avatar) {
if (defined('SCRIPT_DEBUG')) {
common_debug("Deleting $size avatar for $profile->nickname.");
}
$avatar->delete(); $avatar->delete();
} }
@ -509,7 +528,7 @@ class TwitterStatusFetcher extends Daemon
$id = $avatar->insert(); $id = $avatar->insert();
if (!$id) { if (empty($id)) {
common_log_db_error($avatar, 'INSERT', __FILE__); common_log_db_error($avatar, 'INSERT', __FILE__);
return null; return null;
} }