use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
+use Friendica\Core\Protocol;
use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\Protocol\Email;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Emailer;
+use Friendica\Util\Security;
require_once 'include/enotify.php';
require_once 'include/text.php';
function item_post(App $a) {
if (!local_user() && !remote_user()) {
- return;
+ return 0;
}
- require_once 'include/security.php';
-
$uid = local_user();
if (!empty($_REQUEST['dropitems'])) {
// Check for multiple posts with the same message id (when the post was created via API)
if (($message_id != '') && ($profile_uid != 0)) {
- if (DBA::exists('item', ['uri' => $message_id, 'uid' => $profile_uid])) {
+ if (Item::exists(['uri' => $message_id, 'uid' => $profile_uid])) {
logger("Message with URI ".$message_id." already exists for user ".$profile_uid, LOGGER_DEBUG);
- return;
+ return 0;
}
}
// Allow commenting if it is an answer to a public post
- $allow_comment = local_user() && ($profile_uid == 0) && $parent && in_array($parent_item['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_DFRN]);
+ $allow_comment = local_user() && ($profile_uid == 0) && $parent && in_array($parent_item['network'], [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN]);
// Now check that valid personal details have been provided
- if (!can_write_wall($profile_uid) && !$allow_comment) {
+ if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
notice(L10n::t('Permission denied.') . EOL) ;
if (!empty($_REQUEST['return'])) {
$user = DBA::selectFirst('user', [], ['uid' => $profile_uid]);
if (!DBA::isResult($user) && !$parent) {
- return;
+ return 0;
}
$categories = '';
$verb = notags(trim(defaults($_REQUEST, 'verb' , '')));
$emailcc = notags(trim(defaults($_REQUEST, 'emailcc' , '')));
$body = escape_tags(trim(defaults($_REQUEST, 'body' , '')));
- $network = notags(trim(defaults($_REQUEST, 'network' , NETWORK_DFRN)));
- $guid = System::createGUID(32);
+ $network = notags(trim(defaults($_REQUEST, 'network' , Protocol::DFRN)));
+ $guid = System::createUUID();
$postopts = defaults($_REQUEST, 'postopts', '');
if ($parent_item) {
// for non native networks use the network of the original post as network of the item
- if (($parent_item['network'] != NETWORK_DIASPORA)
- && ($parent_item['network'] != NETWORK_OSTATUS)
+ if (($parent_item['network'] != Protocol::DIASPORA)
+ && ($parent_item['network'] != Protocol::OSTATUS)
&& ($network == "")) {
$network = $parent_item['network'];
}
$tags = get_tags($body);
- // Add a tag if the parent contact is from OStatus (This will notify them during delivery)
- if ($parent) {
- if ($thr_parent_contact['network'] == NETWORK_OSTATUS) {
- $contact = '@[url=' . $thr_parent_contact['url'] . ']' . $thr_parent_contact['nick'] . '[/url]';
- if (!stripos(implode($tags), '[url=' . $thr_parent_contact['url'] . ']')) {
- $tags[] = $contact;
- }
- }
-
- if ($parent_contact['network'] == NETWORK_OSTATUS) {
- $contact = '@[url=' . $parent_contact['url'] . ']' . $parent_contact['nick'] . '[/url]';
- if (!stripos(implode($tags), '[url=' . $parent_contact['url'] . ']')) {
- $tags[] = $contact;
- }
+ // Add a tag if the parent contact is from ActivityPub or OStatus (This will notify them)
+ if ($parent && in_array($thr_parent_contact['network'], [Protocol::OSTATUS, Protocol::ACTIVITYPUB])) {
+ $contact = '@[url=' . $thr_parent_contact['url'] . ']' . $thr_parent_contact['nick'] . '[/url]';
+ if (!stripos(implode($tags), '[url=' . $thr_parent_contact['url'] . ']')) {
+ $tags[] = $contact;
}
}
$tagged[] = $tag;
}
// When the forum is private or the forum is addressed with a "!" make the post private
- if (is_array($success['contact']) && ($success['contact']['prv'] || ($tag_type == '!'))) {
+ if (is_array($success['contact']) && (!empty($success['contact']['prv']) || ($tag_type == '!'))) {
$private_forum = $success['contact']['prv'];
$only_to_forum = ($tag_type == '!');
$private_id = $success['contact']['id'];
$forum_contact = $success['contact'];
- } elseif (is_array($success['contact']) && $success['contact']['forum'] &&
+ } elseif (is_array($success['contact']) && !empty($success['contact']['forum']) &&
($str_contact_allow == '<' . $success['contact']['id'] . '>')) {
$private_forum = false;
$only_to_forum = true;
}
if ($network == "") {
- $network = NETWORK_DFRN;
+ $network = Protocol::DFRN;
}
$gravity = ($parent ? GRAVITY_COMMENT : GRAVITY_PARENT);
// doesn't have an ID.
$datarray["id"] = -1;
$datarray["item_id"] = -1;
- $datarray["author-network"] = NETWORK_DFRN;
+ $datarray["author-network"] = Protocol::DFRN;
$o = conversation($a,[array_merge($contact_record,$datarray)],'search', false, true);
logger('preview: ' . $o);
logger('post_complete');
+ if ($api_source) {
+ return $post_id;
+ }
+
item_post_return(System::baseUrl(), $api_source, $return_path);
// NOTREACHED
}
return;
}
- require_once 'include/security.php';
-
$o = '';
if (($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) {
- if (is_ajax()) {
+ if ($a->isAjax()) {
$o = Item::deleteForUser(['id' => $a->argv[2]], local_user());
} else {
$o = drop_item($a->argv[2]);
}
- if (is_ajax()) {
+ if ($a->isAjax()) {
// ajax return: [<item id>, 0 (no perm) | <owner id>]
echo json_encode([intval($a->argv[2]), intval($o)]);
killme();
$profile = $contact["url"];
$alias = $contact["alias"];
- $newname = $contact["nick"];
-
- if (($newname == "") || (($contact["network"] != NETWORK_OSTATUS) && ($contact["network"] != NETWORK_TWITTER)
- && ($contact["network"] != NETWORK_STATUSNET) && ($contact["network"] != NETWORK_APPNET))) {
- $newname = $contact["name"];
- }
+ $newname = defaults($contact, "name", $contact["nick"]);
}
//if there is an url for this persons profile