Twitter friends sync now does 25 users at a time and uses last_friendsync field to prioritize
This commit is contained in:
parent
3e7b1e69e3
commit
11e0db8c2c
|
@ -261,7 +261,7 @@ class TwittersettingsAction extends ConnectSettingsAction
|
|||
'alt' => ($other->fullname) ?
|
||||
$other->fullname :
|
||||
$other->nickname));
|
||||
|
||||
|
||||
$this->element('span', 'fn nickname', $other->nickname);
|
||||
$this->elementEnd('a');
|
||||
$this->elementEnd('li');
|
||||
|
@ -375,6 +375,8 @@ class TwittersettingsAction extends ConnectSettingsAction
|
|||
|
||||
if ($friendsync) {
|
||||
save_twitter_friends($user, $twit_user->id, $screen_name, $password);
|
||||
$flink->last_friendsync = common_sql_now();
|
||||
$flink->update();
|
||||
}
|
||||
|
||||
$this->showForm(_('Twitter settings saved.'), true);
|
||||
|
|
|
@ -32,8 +32,25 @@ define('LACONICA', true);
|
|||
|
||||
require_once(INSTALLDIR . '/lib/common.php');
|
||||
|
||||
// Make a lockfile
|
||||
$lockfilename = lockFilename();
|
||||
if (!($lockfile = @fopen($lockfilename, "w"))) {
|
||||
print "Already running... exiting.\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Obtain an exlcusive lock on file (will fail if script is already going)
|
||||
if (!@flock( $lockfile, LOCK_EX | LOCK_NB, &$wouldblock) || $wouldblock) {
|
||||
// Script already running - abort
|
||||
@fclose($lockfile);
|
||||
print "Already running... exiting.\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$flink = new Foreign_link();
|
||||
$flink->service = 1; // Twitter
|
||||
$flink->orderBy('last_friendsync');
|
||||
$flink->limit(25); // sync this many users during this run
|
||||
$cnt = $flink->find();
|
||||
|
||||
print "Updating Twitter friends subscriptions for $cnt users.\n";
|
||||
|
@ -60,8 +77,11 @@ while ($flink->fetch()) {
|
|||
continue;
|
||||
}
|
||||
|
||||
$result = save_twitter_friends($user, $fuser->id,
|
||||
$fuser->nickname, $flink->credentials);
|
||||
save_twitter_friends($user, $fuser->id, $fuser->nickname, $flink->credentials);
|
||||
|
||||
$flink->last_friendsync = common_sql_now();
|
||||
$flink->update();
|
||||
|
||||
if (defined('SCRIPT_DEBUG')) {
|
||||
print "\nDONE\n";
|
||||
} else {
|
||||
|
@ -70,4 +90,18 @@ while ($flink->fetch()) {
|
|||
}
|
||||
}
|
||||
|
||||
function lockFilename()
|
||||
{
|
||||
$piddir = common_config('daemon', 'piddir');
|
||||
if (!$piddir) {
|
||||
$piddir = '/var/run';
|
||||
}
|
||||
|
||||
return $piddir . '/synctwitterfriends.lock';
|
||||
}
|
||||
|
||||
// Cleanup
|
||||
fclose($lockfile);
|
||||
unlink($lockfilename);
|
||||
|
||||
exit(0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user