$fields = ['uri', 'parent-uri', 'id', 'deleted',
'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
- 'wall', 'private', 'forum_mode', 'origin'];
+ 'wall', 'private', 'forum_mode', 'origin', 'author-id'];
$condition = ['uri' => $item['parent-uri'], 'uid' => $item['uid']];
$params = ['order' => ['id' => false]];
$parent = self::selectFirst($fields, $condition, $params);
DBA::update('thread', ['mention' => true], ['iid' => $parent_id]);
Logger::log('tagged thread ' . $parent_id . ' as mention for user ' . $item['uid'], Logger::DEBUG);
}
+
+ // Update the contact relations
+ if ($item['author-id'] != $parent['author-id']) {
+ DBA::update('contact-relation', ['last-interaction' => $item['created']], ['cid' => $parent['author-id'], 'relation-cid' => $item['author-id']], true);
+ }
} else {
/*
* Allow one to see reply tweets from status.net even when
* array $arr
* 'post_id' => ID of posted item
*/
- public static function performLike($item_id, $verb)
+ public static function performActivity($item_id, $verb)
{
if (!Session::isAuthenticated()) {
return false;
case 'unattendmaybe':
$activity = Activity::ATTENDMAYBE;
break;
+ case 'follow':
+ case 'unfollow':
+ $activity = Activity::FOLLOW;
+ break;
default:
Logger::log('like: unknown verb ' . $verb . ' for item ' . $item_id);
return false;
// first try to fetch the item via the GUID. This will work for all reshares that had been created on this system
$shared_item = self::selectFirst(['title', 'body', 'attach'], ['guid' => $shared['guid'], 'uid' => [0, $uid]]);
if (!DBA::isResult($shared_item)) {
+ if (empty($shared['link'])) {
+ return $item;
+ }
+
// Otherwhise try to find (and possibly fetch) the item via the link. This should work for Diaspora and ActivityPub posts
$id = self::fetchByLink($shared['link'], $uid);
if (empty($id)) {