return;
// if posts comes from statusnet don't send it back
+ if($b['extid'] == NETWORK_STATUSNET)
+ return;
+
if($b['app'] == "StatusNet")
return;
}
}
+ $abandon_days = intval(get_config('system','account_abandon_days'));
+ if ($abandon_days < 1)
+ $abandon_days = 0;
+
+ $abandon_limit = date("Y-m-d H:i:s", time() - $abandon_days * 86400);
+
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'statusnet' AND `k` = 'import' AND `v` = '1' ORDER BY RAND()");
if(count($r)) {
foreach($r as $rr) {
+ if ($abandon_days != 0) {
+ $user = q("SELECT `login_date` FROM `user` WHERE uid=%d AND `login_date` >= '%s'", $rr['uid'], $abandon_limit);
+ if (!count($user)) {
+ logger('abandoned account: timeline from user '.$rr['uid'].' will not be imported');
+ continue;
+ }
+ }
+
logger('statusnet: importing timeline from user '.$rr['uid']);
statusnet_fetchhometimeline($a, $rr["uid"]);
}
if ($post->in_reply_to_status_id != "")
continue;
- if (!strpos($post->source, $application_name)) {
+ if (!stristr($post->source, $application_name)) {
$_SESSION["authenticated"] = true;
$_SESSION["uid"] = $uid;
$_REQUEST["type"] = "wall";
$_REQUEST["api_source"] = true;
$_REQUEST["profile_uid"] = $uid;
- $_REQUEST["source"] = "StatusNet";
+ //$_REQUEST["source"] = "StatusNet";
+ $_REQUEST["source"] = $post->source;
+ $_REQUEST["extid"] = NETWORK_STATUSNET;
//$_REQUEST["date"] = $post->created_at;
}
function statusnet_fetch_contact($uid, $contact, $create_user) {
+ if ($contact->statusnet_profile_url == "")
+ return(-1);
+
// Check if the unique contact is existing
// To-Do: only update once a while
$r = q("SELECT id FROM unique_contacts WHERE url='%s' LIMIT 1",
dbesc($contact->profile_image_url),
dbesc(normalise_link($contact->statusnet_profile_url)));
+ if (DB_UPDATE_VERSION >= "1177")
+ q("UPDATE `unique_contacts` SET `location` = '%s', `about` = '%s' WHERE url = '%s'",
+ dbesc($contact->location),
+ dbesc($contact->description),
+ dbesc(normalise_link($contact->statusnet_profile_url)));
+
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
intval($uid), dbesc(normalise_link($contact->statusnet_profile_url)));
q("UPDATE `contact` SET `photo` = '%s',
`thumb` = '%s',
`micro` = '%s',
- `name-date` = '%s',
- `uri-date` = '%s',
`avatar-date` = '%s'
WHERE `id` = %d",
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
intval($contact_id)
);
+ if (DB_UPDATE_VERSION >= "1177")
+ q("UPDATE `contact` SET `location` = '%s',
+ `about` = '%s'
+ WHERE `id` = %d",
+ dbesc($contact->location),
+ dbesc($contact->description),
+ intval($contact_id)
+ );
+
} else {
// update profile photos once every two weeks as we have no notification of when they change.
// check that we have all the photos, this has been known to fail on occasion
- if((! $r[0]['photo']) || (! $r[0]['thumb']) || (! $r[0]['micro']) || ($update_photo)) {
+ if((!$r[0]['photo']) || (!$r[0]['thumb']) || (!$r[0]['micro']) || ($update_photo)) {
logger("statusnet_fetch_contact: Updating contact ".$contact->screen_name, LOGGER_DEBUG);
dbesc($contact->screen_name),
intval($r[0]['id'])
);
+
+ if (DB_UPDATE_VERSION >= "1177")
+ q("UPDATE `contact` SET `location` = '%s',
+ `about` = '%s'
+ WHERE `id` = %d",
+ dbesc($contact->location),
+ dbesc($contact->description),
+ intval($r[0]['id'])
+ );
}
}
$items = $connection->get('statuses/home_timeline', $parameters);
if (!is_array($items)) {
- logger("statusnet_fetchhometimeline: Error fetching home timeline: ".print_r($items, true), LOGGER_DEBUG);
+ if (is_object($items) AND isset($items->error))
+ $errormsg = $items->error;
+ elseif (is_object($items))
+ $errormsg = print_r($items, true);
+ elseif (is_string($items) OR is_float($items) OR is_int($items))
+ $errormsg = $items;
+ else
+ $errormsg = "Unknown error";
+
+ logger("statusnet_fetchhometimeline: Error fetching home timeline: ".$errormsg, LOGGER_DEBUG);
return;
}