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
1 changed files with 40 additions and 21 deletions

View File

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