mirror of
https://github.com/friendica/friendica
synced 2025-04-27 12:30:11 +00:00
No more automated posts via mod/item.php
This commit is contained in:
parent
cdbfa34066
commit
f600f68907
4 changed files with 34 additions and 65 deletions
|
@ -815,6 +815,30 @@ class Item
|
|||
return self::GRAVITY_UNKNOWN; // Should not happen
|
||||
}
|
||||
|
||||
private static function prepareOriginPost(array $item): array
|
||||
{
|
||||
$item['wall'] = 1;
|
||||
$item['origin'] = 1;
|
||||
$item['network'] = Protocol::DFRN;
|
||||
$item['protocol'] = Conversation::PARCEL_DIRECT;
|
||||
$item['direction'] = Conversation::PUSH;
|
||||
|
||||
if (!empty($item['author-link']) && !empty($item['author-id'])) {
|
||||
$owner = User::getOwnerDataById($item['uid']);
|
||||
$item['author-link'] = $owner['url'];
|
||||
$item['author-name'] = $owner['name'];
|
||||
$item['author-avatar'] = $owner['thumb'];
|
||||
}
|
||||
|
||||
if (!empty($item['owner-link']) && !empty($item['owner-id'])) {
|
||||
$item['owner-link'] = $item['author-link'];
|
||||
$item['owner-name'] = $item['author-name'];
|
||||
$item['owner-avatar'] = $item['author-avatar'];
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts item record
|
||||
*
|
||||
|
@ -831,11 +855,7 @@ class Item
|
|||
|
||||
// If it is a posting where users should get notifications, then define it as wall posting
|
||||
if ($notify) {
|
||||
$item['wall'] = 1;
|
||||
$item['origin'] = 1;
|
||||
$item['network'] = Protocol::DFRN;
|
||||
$item['protocol'] = Conversation::PARCEL_DIRECT;
|
||||
$item['direction'] = Conversation::PUSH;
|
||||
$item = self::prepareOriginPost($item);
|
||||
|
||||
if (is_int($notify) && in_array($notify, Worker::PRIORITIES)) {
|
||||
$priority = $notify;
|
||||
|
@ -993,6 +1013,7 @@ class Item
|
|||
$item['parent-uri'] = $toplevel_parent['uri'];
|
||||
$item['parent-uri-id'] = $toplevel_parent['uri-id'];
|
||||
$item['deleted'] = $toplevel_parent['deleted'];
|
||||
$item['wall'] = $toplevel_parent['wall'];
|
||||
|
||||
// Reshares have to keep their permissions to allow forums to work
|
||||
if (!$item['origin'] || ($item['verb'] != Activity::ANNOUNCE)) {
|
||||
|
@ -2974,7 +2995,7 @@ class Item
|
|||
$quote_uri_id = $shared['post']['uri-id'];
|
||||
$shared_links[] = strtolower($shared['post']['uri']);
|
||||
$item['body'] = BBCode::removeSharedData($item['body']);
|
||||
} elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id'])) {
|
||||
} elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id']) && ($item['network'] != Protocol::DIASPORA)) {
|
||||
$media = Post\Media::getByURIId($item['uri-id'], [Post\Media::ACTIVITY]);
|
||||
if (!empty($media)) {
|
||||
$shared_item = Post::selectFirst($fields, ['plink' => $media[0]['url'], 'uid' => [$item['uid'], 0]]);
|
||||
|
|
|
@ -38,12 +38,6 @@ class Delayed
|
|||
* This is used for automated scheduled posts via feeds or from the API.
|
||||
*/
|
||||
const PREPARED = 0;
|
||||
/**
|
||||
* The content is posted like a manual post. Means some processing of body will be done.
|
||||
* Also it is posted with default permissions and default connector settings.
|
||||
* This is used for mirrored connector posts.
|
||||
*/
|
||||
const UNPREPARED = 1;
|
||||
/**
|
||||
* Like PREPARED, but additionally the connector settings can differ.
|
||||
* This is used when manually publishing scheduled posts.
|
||||
|
@ -199,34 +193,6 @@ class Delayed
|
|||
$item['attachments'] = $attachments;
|
||||
}
|
||||
|
||||
if ($preparation_mode == self::UNPREPARED) {
|
||||
$_SESSION['authenticated'] = true;
|
||||
$_SESSION['uid'] = $item['uid'];
|
||||
|
||||
$_REQUEST = $item;
|
||||
$_REQUEST['api_source'] = true;
|
||||
$_REQUEST['profile_uid'] = $item['uid'];
|
||||
$_REQUEST['title'] = $item['title'] ?? '';
|
||||
|
||||
if (!empty($item['app'])) {
|
||||
$_REQUEST['source'] = $item['app'];
|
||||
}
|
||||
|
||||
require_once 'mod/item.php';
|
||||
$id = item_post(DI::app());
|
||||
|
||||
if (empty($uri) && !empty($item['extid'])) {
|
||||
$uri = $item['extid'];
|
||||
}
|
||||
|
||||
Logger::notice('Unprepared post stored', ['id' => $id, 'uid' => $item['uid'], 'uri' => $uri]);
|
||||
if (self::exists($uri, $item['uid'])) {
|
||||
self::delete($uri, $item['uid']);
|
||||
}
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
$id = Item::insert($item, $notify, $preparation_mode == self::PREPARED);
|
||||
|
||||
Logger::notice('Post stored', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id']]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue