]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Better avatar handling - pull in any missing Twitter avatars
authorZach Copley <zach@controlyourself.ca>
Thu, 18 Jun 2009 23:51:06 +0000 (16:51 -0700)
committerZach Copley <zach@controlyourself.ca>
Thu, 18 Jun 2009 23:51:06 +0000 (16:51 -0700)
config.php.sample
scripts/twitterstatusfetcher.php

index 5291641087f5d7c507ac35ded8a97dcaf94419c2..d42bac9a6920be6fd97332b5553f364f8b96fd76 100644 (file)
@@ -154,6 +154,9 @@ $config['sphinx']['port'] = 3312;
 // $config['integration']['source'] = 'Laconica';
 
 // Enable bidirectional Twitter bridge
+//
+// NOTE: if you enable this you must also set $config['avatar']['path']
+//
 // $config['twitterbridge']['enabled'] = true;
 
 // Edit throttling. Off by default. If turned on, you can only post 20 notices
index 9287b6d73332ee1cca765df095883703cf17575d..93a4ce92b72503412298e7c067f90cf47a8efc32 100755 (executable)
@@ -38,6 +38,9 @@ define('SCRIPT_DEBUG', true);
 require_once(INSTALLDIR . '/lib/common.php');
 require_once(INSTALLDIR . '/lib/daemon.php');
 
+// NOTE: an Avatar path MUST be set in config.php for this
+// script to work: e.g.: $config['avatar']['path'] = '/laconica/avatar';
+
 class TwitterStatusFetcher extends Daemon
 {
 
@@ -358,11 +361,11 @@ class TwitterStatusFetcher extends Daemon
 
         $oldname = $profile->getAvatar(48)->filename;
 
-        if ($newname != $oldname) {
+        if ($newname != $oldname || $this->missingAvatarFile($profile)) {
 
             if (defined('SCRIPT_DEBUG')) {
                 common_debug('Avatar for Twitter user ' .
-                    "$profile->nickname has changed.");
+                    "$profile->nickname has changed, or was missing locally.");
                 common_debug("old: $oldname new: $newname");
             }
 
@@ -383,6 +386,21 @@ class TwitterStatusFetcher extends Daemon
         }
     }
 
+    function missingAvatarFile($profile) {
+
+        foreach (array(24, 48, 73) as $size) {
+
+            $filename = $profile->getAvatar($size)->filename;
+            $avatarpath = Avatar::path($filename);
+
+            if (file_exists($avatarpath) == FALSE) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     function getMediatype($ext)
     {
         $mediatype = null;
@@ -447,7 +465,6 @@ class TwitterStatusFetcher extends Daemon
             if (defined('SCRIPT_DEBUG')) {
                 common_debug("Deleting $size avatar for $profile->nickname.");
             }
-            @unlink(INSTALLDIR . '/avatar/' . $avatar->filename);
             $avatar->delete();
         }