]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
Merge pull request #9569 from MrPetovan/bug/9549-photo-remove-activity
[friendica.git] / include / api.php
index 643f57b63416f13cc7b6a4c5ae5da3fe44b07cb2..5969ccd5f1a87974606ab44edbe3dd015d51218b 100644 (file)
@@ -44,7 +44,7 @@ use Friendica\Model\Photo;
 use Friendica\Model\User;
 use Friendica\Model\UserItem;
 use Friendica\Model\Verb;
-use Friendica\Network\FKOAuth1;
+use Friendica\Security\FKOAuth1;
 use Friendica\Network\HTTPException;
 use Friendica\Network\HTTPException\BadRequestException;
 use Friendica\Network\HTTPException\ExpectationFailedException;
@@ -58,6 +58,8 @@ use Friendica\Network\HTTPException\UnauthorizedException;
 use Friendica\Object\Image;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\Diaspora;
+use Friendica\Security\OAuth1\OAuthRequest;
+use Friendica\Security\OAuth1\OAuthUtil;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Images;
 use Friendica\Util\Network;
@@ -384,7 +386,7 @@ function api_call(App $a, App\Arguments $args = null)
                }
 
                Logger::warning(API_LOG_PREFIX . 'not implemented', ['module' => 'api', 'action' => 'call', 'query' => DI::args()->getQueryString()]);
-               throw new NotImplementedException();
+               throw new NotFoundException();
        } catch (HTTPException $e) {
                header("HTTP/1.1 {$e->getCode()} {$e->httpdesc}");
                return api_error($type, $e, $args);
@@ -2038,35 +2040,40 @@ function api_statuses_repeat($type)
 
        Logger::log('API: api_statuses_repeat: '.$id);
 
-       $fields = ['uri-id', 'body', 'title', 'attach', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink'];
+       $fields = ['uri-id', 'network', 'body', 'title', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink'];
        $item = Item::selectFirst($fields, ['id' => $id, 'private' => [Item::PUBLIC, Item::UNLISTED]]);
 
        if (DBA::isResult($item) && $item['body'] != "") {
-               if (strpos($item['body'], "[/share]") !== false) {
-                       $pos = strpos($item['body'], "[share");
-                       $post = substr($item['body'], $pos);
+               if (in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::TWITTER])) {
+                       if (!Item::performActivity($id, 'announce', local_user())) {
+                               throw new InternalServerErrorException();
+                       }
+               
+                       $item_id = $id;
                } else {
-                       $post = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], $item['plink'], $item['created'], $item['guid']);
+                       if (strpos($item['body'], "[/share]") !== false) {
+                               $pos = strpos($item['body'], "[share");
+                               $post = substr($item['body'], $pos);
+                       } else {
+                               $post = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], $item['plink'], $item['created'], $item['guid']);
+
+                               if (!empty($item['title'])) {
+                                       $post .= '[h3]' . $item['title'] . "[/h3]\n";
+                               }
 
-                       if (!empty($item['title'])) {
-                               $post .= '[h3]' . $item['title'] . "[/h3]\n";
+                               $post .= $item['body'];
+                               $post .= "[/share]";
                        }
+                       $_REQUEST['body'] = $post;
+                       $_REQUEST['profile_uid'] = api_user();
+                       $_REQUEST['api_source'] = true;
 
-                       $post .= $item['body'];
-                       $post .= "[/share]";
-               }
-               $_REQUEST['body'] = $post;
-               $_REQUEST['attach'] = $item['attach'];
-               $_REQUEST['profile_uid'] = api_user();
-               $_REQUEST['api_source'] = true;
+                       if (empty($_REQUEST['source'])) {
+                               $_REQUEST["source"] = api_source();
+                       }
 
-               if (empty($_REQUEST['source'])) {
-                       $_REQUEST["source"] = api_source();
+                       $item_id = item_post($a);
                }
-
-               $item_id = item_post($a);
-
-               /// @todo Copy tags from the original post to the new one
        } else {
                throw new ForbiddenException();
        }
@@ -4759,7 +4766,6 @@ function post_photo_item($hash, $allow_cid, $deny_cid, $allow_gid, $deny_gid, $f
        $arr['guid']          = System::createUUID();
        $arr['uid']           = intval(api_user());
        $arr['uri']           = $uri;
-       $arr['parent-uri']    = $uri;
        $arr['type']          = 'photo';
        $arr['wall']          = 1;
        $arr['resource-id']   = $hash;