mirror of
https://code.castopod.org/adaures/castopod
synced 2025-04-19 13:01:19 +00:00
fix(fediverse): set model instances as non shared to prevent overlapping
This commit is contained in:
parent
d9d139eefa
commit
91128fad7a
@ -198,7 +198,7 @@ class Podcast extends Entity
|
||||
|
||||
if ($this->actor === null) {
|
||||
// @phpstan-ignore-next-line
|
||||
$this->actor = model(ActorModel::class)
|
||||
$this->actor = model(ActorModel::class, false)
|
||||
->getActorById($this->actor_id);
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ if (! function_exists('interact_as_actor')) {
|
||||
|
||||
$session = session();
|
||||
if ($session->has('interact_as_actor_id')) {
|
||||
return model(ActorModel::class)->getActorById($session->get('interact_as_actor_id'));
|
||||
return model(ActorModel::class, false)->getActorById($session->get('interact_as_actor_id'));
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -21,7 +21,7 @@ class FediverseController extends BaseController
|
||||
{
|
||||
helper(['form']);
|
||||
|
||||
$blockedActors = model('ActorModel')
|
||||
$blockedActors = model('ActorModel', false)
|
||||
->getBlockedActors();
|
||||
|
||||
return view('fediverse/blocked_actors', [
|
||||
@ -33,7 +33,7 @@ class FediverseController extends BaseController
|
||||
{
|
||||
helper(['form']);
|
||||
|
||||
$blockedDomains = model('BlockedDomainModel')
|
||||
$blockedDomains = model('BlockedDomainModel', false)
|
||||
->getBlockedDomains();
|
||||
|
||||
return view('fediverse/blocked_domains', [
|
||||
|
@ -44,7 +44,7 @@ class ActorController extends Controller
|
||||
}
|
||||
|
||||
if (
|
||||
($actor = model('ActorModel')->getActorByUsername($params[0])) === null
|
||||
($actor = model('ActorModel', false)->getActorByUsername($params[0])) === null
|
||||
) {
|
||||
throw PageNotFoundException::forPageNotFound();
|
||||
}
|
||||
@ -82,7 +82,7 @@ class ActorController extends Controller
|
||||
$payloadActor = get_or_create_actor_from_uri($payload->actor);
|
||||
|
||||
// store activity to database
|
||||
$activityId = model('ActivityModel')
|
||||
$activityId = model('ActivityModel', false)
|
||||
->newActivity(
|
||||
$payload->type,
|
||||
$payloadActor->id,
|
||||
@ -101,7 +101,7 @@ class ActorController extends Controller
|
||||
->setJSON([]);
|
||||
}
|
||||
|
||||
$replyToPost = model('PostModel')
|
||||
$replyToPost = model('PostModel', false)
|
||||
->getPostByUri($payload->object->inReplyTo);
|
||||
|
||||
$reply = null;
|
||||
@ -120,10 +120,10 @@ class ActorController extends Controller
|
||||
}
|
||||
|
||||
if ($reply !== null) {
|
||||
$postId = model('PostModel')
|
||||
$postId = model('PostModel', false)
|
||||
->addReply($reply, true, false);
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'post_id' => $postId,
|
||||
]);
|
||||
@ -136,11 +136,11 @@ class ActorController extends Controller
|
||||
return $this->response->setStatusCode(501)
|
||||
->setJSON([]);
|
||||
case 'Delete':
|
||||
$postToDelete = model('PostModel')
|
||||
$postToDelete = model('PostModel', false)
|
||||
->getPostByUri($payload->object->id);
|
||||
|
||||
if ($postToDelete !== null) {
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->removePost($postToDelete, false);
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ class ActorController extends Controller
|
||||
->setJSON([]);
|
||||
case 'Follow':
|
||||
// add to followers table
|
||||
model('FollowModel')
|
||||
model('FollowModel', false)
|
||||
->addFollower($payloadActor, $this->actor, false);
|
||||
|
||||
// Automatically accept follow by returning accept activity
|
||||
@ -160,15 +160,15 @@ class ActorController extends Controller
|
||||
|
||||
case 'Like':
|
||||
// get favourited post
|
||||
$post = model('PostModel')
|
||||
$post = model('PostModel', false)
|
||||
->getPostByUri($payload->object);
|
||||
|
||||
if ($post !== null) {
|
||||
// Like side-effect
|
||||
model('FavouriteModel')
|
||||
model('FavouriteModel', false)
|
||||
->addFavourite($payloadActor, $post, false);
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'post_id' => $post->id,
|
||||
]);
|
||||
@ -177,16 +177,16 @@ class ActorController extends Controller
|
||||
return $this->response->setStatusCode(200)
|
||||
->setJSON([]);
|
||||
case 'Announce':
|
||||
$post = model('PostModel')
|
||||
$post = model('PostModel', false)
|
||||
->getPostByUri($payload->object);
|
||||
|
||||
if ($post !== null) {
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'post_id' => $post->id,
|
||||
]);
|
||||
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->reblog($payloadActor, $post, false);
|
||||
}
|
||||
|
||||
@ -198,22 +198,22 @@ class ActorController extends Controller
|
||||
switch ($payload->object->type) {
|
||||
case 'Follow':
|
||||
// revert side-effect by removing follow from database
|
||||
model('FollowModel')
|
||||
model('FollowModel', false)
|
||||
->removeFollower($payloadActor, $this->actor, false);
|
||||
|
||||
// TODO: undo has been accepted! (202 - Accepted)
|
||||
return $this->response->setStatusCode(202)
|
||||
->setJSON([]);
|
||||
case 'Like':
|
||||
$post = model('PostModel')
|
||||
$post = model('PostModel', false)
|
||||
->getPostByUri($payload->object->object);
|
||||
|
||||
if ($post !== null) {
|
||||
// revert side-effect by removing favourite from database
|
||||
model('FavouriteModel')
|
||||
model('FavouriteModel', false)
|
||||
->removeFavourite($payloadActor, $post, false);
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'post_id' => $post->id,
|
||||
]);
|
||||
@ -222,12 +222,12 @@ class ActorController extends Controller
|
||||
return $this->response->setStatusCode(200)
|
||||
->setJSON([]);
|
||||
case 'Announce':
|
||||
$post = model('PostModel')
|
||||
$post = model('PostModel', false)
|
||||
->getPostByUri($payload->object->object);
|
||||
|
||||
$reblogPost = null;
|
||||
if ($post !== null) {
|
||||
$reblogPost = model('PostModel')
|
||||
$reblogPost = model('PostModel', false)
|
||||
->where([
|
||||
'actor_id' => $payloadActor->id,
|
||||
'reblog_of_id' => service('uuid')
|
||||
@ -238,10 +238,10 @@ class ActorController extends Controller
|
||||
}
|
||||
|
||||
if ($reblogPost !== null) {
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->undoReblog($reblogPost, false);
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'post_id' => $post->id,
|
||||
]);
|
||||
@ -268,7 +268,7 @@ class ActorController extends Controller
|
||||
public function outbox(): ResponseInterface
|
||||
{
|
||||
// get published activities by publication date
|
||||
$actorActivity = model('ActivityModel')
|
||||
$actorActivity = model('ActivityModel', false)
|
||||
->where('actor_id', $this->actor->id)
|
||||
->where('`created_at` <= NOW()', null, false)
|
||||
->orderBy('created_at', 'DESC');
|
||||
@ -303,7 +303,7 @@ class ActorController extends Controller
|
||||
->tablesPrefix;
|
||||
|
||||
// get followers for a specific actor
|
||||
$followers = model('ActorModel')
|
||||
$followers = model('ActorModel', false)
|
||||
->join($tablesPrefix . 'follows', $tablesPrefix . 'follows.actor_id = id', 'inner')
|
||||
->where($tablesPrefix . 'follows.target_actor_id', $this->actor->id)
|
||||
->orderBy($tablesPrefix . 'follows.created_at', 'DESC');
|
||||
@ -383,7 +383,7 @@ class ActorController extends Controller
|
||||
public function activity(string $activityId): ResponseInterface
|
||||
{
|
||||
if (
|
||||
! ($activity = model('ActivityModel')->getActivityById($activityId))
|
||||
! ($activity = model('ActivityModel', false)->getActivityById($activityId))
|
||||
) {
|
||||
throw PageNotFoundException::forPageNotFound();
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ class BlockController extends Controller
|
||||
->with('error', lang('Fediverse.messages.actorNotFound'));
|
||||
}
|
||||
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->blockActor($actor->id);
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ class BlockController extends Controller
|
||||
->with('errors', $this->validator->getErrors());
|
||||
}
|
||||
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->unblockActor((int) $this->request->getPost('actor_id'));
|
||||
|
||||
return redirect()->back()
|
||||
@ -89,7 +89,7 @@ class BlockController extends Controller
|
||||
}
|
||||
|
||||
$domain = $this->request->getPost('domain');
|
||||
model('BlockedDomainModel')
|
||||
model('BlockedDomainModel', false)
|
||||
->blockDomain($domain);
|
||||
|
||||
return redirect()->back()
|
||||
@ -112,7 +112,7 @@ class BlockController extends Controller
|
||||
}
|
||||
|
||||
$domain = $this->request->getPost('domain');
|
||||
model('BlockedDomainModel')
|
||||
model('BlockedDomainModel', false)
|
||||
->unblockDomain($domain);
|
||||
|
||||
return redirect()->back()
|
||||
|
@ -17,13 +17,13 @@ class NodeInfo2Controller extends Controller
|
||||
{
|
||||
public function index(): ResponseInterface
|
||||
{
|
||||
$totalUsers = model('ActorModel')
|
||||
$totalUsers = model('ActorModel', false)
|
||||
->getTotalLocalActors();
|
||||
$totalPosts = model('PostModel')
|
||||
$totalPosts = model('PostModel', false)
|
||||
->getTotalLocalPosts();
|
||||
$activeMonth = model('ActorModel')
|
||||
$activeMonth = model('ActorModel', false)
|
||||
->getActiveLocalActors(1);
|
||||
$activeHalfyear = model('ActorModel')
|
||||
$activeHalfyear = model('ActorModel', false)
|
||||
->getActiveLocalActors(6);
|
||||
|
||||
$nodeInfo2 = [
|
||||
|
@ -42,7 +42,7 @@ class PostController extends Controller
|
||||
|
||||
public function _remap(string $method, string ...$params): mixed
|
||||
{
|
||||
if (($post = model('PostModel')->getPostById($params[0])) === null) {
|
||||
if (($post = model('PostModel', false)->getPostById($params[0])) === null) {
|
||||
throw PageNotFoundException::forPageNotFound();
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ class PostController extends Controller
|
||||
/**
|
||||
* get post replies
|
||||
*/
|
||||
$postReplies = model('PostModel')
|
||||
$postReplies = model('PostModel', false)
|
||||
->where('in_reply_to_id', service('uuid') ->fromString($this->post->id) ->getBytes())
|
||||
->where('`published_at` <= NOW()', null, false)
|
||||
->orderBy('published_at', 'ASC');
|
||||
@ -127,7 +127,7 @@ class PostController extends Controller
|
||||
'published_at' => Time::now(),
|
||||
]);
|
||||
|
||||
$postModel = model('PostModel');
|
||||
$postModel = model('PostModel', false);
|
||||
if (! $postModel->addPost($newPost)) {
|
||||
return redirect()
|
||||
->back()
|
||||
@ -153,10 +153,10 @@ class PostController extends Controller
|
||||
->with('errors', $this->validator->getErrors());
|
||||
}
|
||||
|
||||
$actor = model('ActorModel')
|
||||
$actor = model('ActorModel', false)
|
||||
->getActorById($this->request->getPost('actor_id'));
|
||||
|
||||
model('FavouriteModel')
|
||||
model('FavouriteModel', false)
|
||||
->toggleFavourite($actor, $this->post->id);
|
||||
|
||||
return redirect()->back();
|
||||
@ -175,10 +175,10 @@ class PostController extends Controller
|
||||
->with('errors', $this->validator->getErrors());
|
||||
}
|
||||
|
||||
$actor = model('ActorModel')
|
||||
$actor = model('ActorModel', false)
|
||||
->getActorById($this->request->getPost('actor_id'));
|
||||
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->toggleReblog($actor, $this->post);
|
||||
|
||||
return redirect()->back();
|
||||
@ -205,7 +205,7 @@ class PostController extends Controller
|
||||
'published_at' => Time::now(),
|
||||
]);
|
||||
|
||||
if (! model('PostModel')->addReply($newReplyPost)) {
|
||||
if (! model('PostModel', false)->addReply($newReplyPost)) {
|
||||
return redirect()
|
||||
->back()
|
||||
->withInput()
|
||||
@ -265,14 +265,14 @@ class PostController extends Controller
|
||||
|
||||
public function attemptBlockActor(): RedirectResponse
|
||||
{
|
||||
model('ActorModel')->blockActor($this->post->actor->id);
|
||||
model('ActorModel', false)->blockActor($this->post->actor->id);
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function attemptBlockDomain(): RedirectResponse
|
||||
{
|
||||
model('BlockedDomainModel')->blockDomain($this->post->actor->domain);
|
||||
model('BlockedDomainModel', false)->blockDomain($this->post->actor->domain);
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ class SchedulerController extends Controller
|
||||
public function activity(): void
|
||||
{
|
||||
// retrieve scheduled activities from database
|
||||
$scheduledActivities = model('ActivityModel')
|
||||
$scheduledActivities = model('ActivityModel', false)
|
||||
->getScheduledActivities();
|
||||
|
||||
// Send activity to all followers
|
||||
@ -45,7 +45,7 @@ class SchedulerController extends Controller
|
||||
}
|
||||
|
||||
// set activity post to delivered
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($scheduledActivity->id, [
|
||||
'status' => 'delivered',
|
||||
]);
|
||||
|
@ -50,12 +50,12 @@ class FediverseFilter implements FilterInterface
|
||||
$domain = (new URI($actorUri))->getHost();
|
||||
|
||||
// check first if domain is blocked
|
||||
if (model('BlockedDomainModel')->isDomainBlocked($domain)) {
|
||||
if (model('BlockedDomainModel', false)->isDomainBlocked($domain)) {
|
||||
throw PageNotFoundException::forPageNotFound();
|
||||
}
|
||||
|
||||
// check if actor is blocked
|
||||
if (model('ActorModel')->isActorBlocked($actorUri)) {
|
||||
if (model('ActorModel', false)->isActorBlocked($actorUri)) {
|
||||
throw PageNotFoundException::forPageNotFound();
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ if (! function_exists('accept_follow')) {
|
||||
$db = db_connect();
|
||||
$db->transStart();
|
||||
|
||||
$activityModel = model('ActivityModel');
|
||||
$activityModel = model('ActivityModel', false);
|
||||
$activityId = $activityModel->newActivity(
|
||||
'Accept',
|
||||
$actor->id,
|
||||
@ -183,7 +183,7 @@ if (! function_exists('create_preview_card_from_url')) {
|
||||
]);
|
||||
|
||||
if (
|
||||
! ($newPreviewCardId = model('PreviewCardModel')->insert($newPreviewCard, true))
|
||||
! ($newPreviewCardId = model('PreviewCardModel', false)->insert($newPreviewCard, true))
|
||||
) {
|
||||
return null;
|
||||
}
|
||||
@ -205,7 +205,7 @@ if (! function_exists('get_or_create_preview_card_from_url')) {
|
||||
{
|
||||
// check if preview card has already been generated
|
||||
if (
|
||||
$previewCard = model('PreviewCardModel')
|
||||
$previewCard = model('PreviewCardModel', false)
|
||||
->getPreviewCardFromUrl((string) $url)
|
||||
) {
|
||||
return $previewCard;
|
||||
@ -224,7 +224,7 @@ if (! function_exists('get_or_create_actor_from_uri')) {
|
||||
function get_or_create_actor_from_uri(string $actorUri): ?Actor
|
||||
{
|
||||
// check if actor exists in database already and return it
|
||||
if ($actor = model('ActorModel')->getActorByUri($actorUri)) {
|
||||
if ($actor = model('ActorModel', false)->getActorByUri($actorUri)) {
|
||||
return $actor;
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ if (! function_exists('get_or_create_actor')) {
|
||||
{
|
||||
// check if actor exists in database already and return it
|
||||
if (
|
||||
$actor = model('ActorModel')
|
||||
$actor = model('ActorModel', false)
|
||||
->getActorByUsername($username, $domain)
|
||||
) {
|
||||
return $actor;
|
||||
@ -287,7 +287,7 @@ if (! function_exists('create_actor_from_uri')) {
|
||||
$newActor->outbox_url = property_exists($actorPayload, 'outbox') ? $actorPayload->outbox : null;
|
||||
$newActor->followers_url = property_exists($actorPayload, 'followers') ? $actorPayload->followers : null;
|
||||
|
||||
if (! ($newActorId = model('ActorModel')->insert($newActor, true))) {
|
||||
if (! ($newActorId = model('ActorModel', false)->insert($newActor, true))) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -431,7 +431,7 @@ if (! function_exists('linkify')) {
|
||||
}
|
||||
} else {
|
||||
if (
|
||||
$actor = model('ActorModel')
|
||||
$actor = model('ActorModel', false)
|
||||
->getActorByUsername($match['username'])
|
||||
) {
|
||||
return '<' .
|
||||
|
@ -100,7 +100,7 @@ class BlockedDomainModel extends BaseModel
|
||||
$this->db->transStart();
|
||||
|
||||
// set all actors from the domain as blocked
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->where('domain', $name)
|
||||
->set('is_blocked', '1')
|
||||
->update();
|
||||
@ -131,7 +131,7 @@ class BlockedDomainModel extends BaseModel
|
||||
|
||||
$this->db->transStart();
|
||||
// unblock all actors from the domain
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->where('domain', $name)
|
||||
->set('is_blocked', '0')
|
||||
->update();
|
||||
|
@ -55,7 +55,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
'post_id' => $post->id,
|
||||
]);
|
||||
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->where('id', service('uuid') ->fromString($post->id) ->getBytes())
|
||||
->increment('favourites_count');
|
||||
|
||||
@ -64,7 +64,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
$likeActivity->set('actor', $actor->uri)
|
||||
->set('object', $post->uri);
|
||||
|
||||
$activityId = model('ActivityModel')
|
||||
$activityId = model('ActivityModel', false)
|
||||
->newActivity(
|
||||
'Like',
|
||||
$actor->id,
|
||||
@ -77,7 +77,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
|
||||
$likeActivity->set('id', url_to('activity', $actor->username, $activityId));
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'payload' => $likeActivity->toJSON(),
|
||||
]);
|
||||
@ -85,7 +85,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
|
||||
Events::trigger('on_post_favourite', $actor, $post);
|
||||
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->clearCache($post);
|
||||
|
||||
$this->db->transComplete();
|
||||
@ -95,7 +95,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
{
|
||||
$this->db->transStart();
|
||||
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->where('id', service('uuid') ->fromString($post->id) ->getBytes())
|
||||
->decrement('favourites_count');
|
||||
|
||||
@ -110,7 +110,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
if ($registerActivity) {
|
||||
$undoActivity = new UndoActivity();
|
||||
// get like activity
|
||||
$activity = model('ActivityModel')
|
||||
$activity = model('ActivityModel', false)
|
||||
->where([
|
||||
'type' => 'Like',
|
||||
'actor_id' => $actor->id,
|
||||
@ -130,7 +130,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
->set('actor', $actor->uri)
|
||||
->set('object', $likeActivity);
|
||||
|
||||
$activityId = model('ActivityModel')
|
||||
$activityId = model('ActivityModel', false)
|
||||
->newActivity(
|
||||
'Undo',
|
||||
$actor->id,
|
||||
@ -143,7 +143,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
|
||||
$undoActivity->set('id', url_to('activity', $actor->username, $activityId));
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'payload' => $undoActivity->toJSON(),
|
||||
]);
|
||||
@ -151,7 +151,7 @@ class FavouriteModel extends BaseUuidModel
|
||||
|
||||
Events::trigger('on_post_undo_favourite', $actor, $post);
|
||||
|
||||
model('PostModel')
|
||||
model('PostModel', false)
|
||||
->clearCache($post);
|
||||
|
||||
$this->db->transComplete();
|
||||
|
@ -61,7 +61,7 @@ class FollowModel extends BaseModel
|
||||
]);
|
||||
|
||||
// increment followers_count for target actor
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->where('id', $targetActor->id)
|
||||
->increment('followers_count');
|
||||
|
||||
@ -72,7 +72,7 @@ class FollowModel extends BaseModel
|
||||
->set('actor', $actor->uri)
|
||||
->set('object', $targetActor->uri);
|
||||
|
||||
$activityId = model('ActivityModel')
|
||||
$activityId = model('ActivityModel', false)
|
||||
->newActivity(
|
||||
'Follow',
|
||||
$actor->id,
|
||||
@ -85,7 +85,7 @@ class FollowModel extends BaseModel
|
||||
|
||||
$followActivity->set('id', url_to('activity', $actor->username, $activityId));
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'payload' => $followActivity->toJSON(),
|
||||
]);
|
||||
@ -93,7 +93,7 @@ class FollowModel extends BaseModel
|
||||
|
||||
Events::trigger('on_follow', $actor, $targetActor);
|
||||
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->clearCache($targetActor);
|
||||
|
||||
$this->db->transComplete();
|
||||
@ -118,14 +118,14 @@ class FollowModel extends BaseModel
|
||||
])->delete();
|
||||
|
||||
// decrement followers_count for target actor
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->where('id', $targetActor->id)
|
||||
->decrement('followers_count');
|
||||
|
||||
if ($registerActivity) {
|
||||
$undoActivity = new UndoActivity();
|
||||
// get follow activity from database
|
||||
$followActivity = model('ActivityModel')
|
||||
$followActivity = model('ActivityModel', false)
|
||||
->where([
|
||||
'type' => 'Follow',
|
||||
'actor_id' => $actor->id,
|
||||
@ -137,7 +137,7 @@ class FollowModel extends BaseModel
|
||||
->set('actor', $actor->uri)
|
||||
->set('object', $followActivity->payload);
|
||||
|
||||
$activityId = model('ActivityModel')
|
||||
$activityId = model('ActivityModel', false)
|
||||
->newActivity(
|
||||
'Undo',
|
||||
$actor->id,
|
||||
@ -150,7 +150,7 @@ class FollowModel extends BaseModel
|
||||
|
||||
$undoActivity->set('id', url_to('activity', $actor->username, $activityId));
|
||||
|
||||
model('ActivityModel')
|
||||
model('ActivityModel', false)
|
||||
->update($activityId, [
|
||||
'payload' => $undoActivity->toJSON(),
|
||||
]);
|
||||
@ -158,7 +158,7 @@ class FollowModel extends BaseModel
|
||||
|
||||
Events::trigger('on_undo_follow', $actor, $targetActor);
|
||||
|
||||
model('ActorModel')
|
||||
model('ActorModel', false)
|
||||
->clearCache($targetActor);
|
||||
|
||||
$this->db->transComplete();
|
||||
|
@ -62,7 +62,7 @@ class WebFinger
|
||||
}
|
||||
|
||||
if (
|
||||
! ($actor = model('ActorModel')->getActorByUsername($username, $domain))
|
||||
! ($actor = model('ActorModel', false)->getActorByUsername($username, $domain))
|
||||
) {
|
||||
throw new Exception('Could not find actor');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user