]> git.mxchange.org Git - friendica.git/commitdiff
Object instead of Display
authorMichael <heluecht@pirati.ca>
Sun, 30 Sep 2018 12:21:57 +0000 (12:21 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 30 Sep 2018 12:21:57 +0000 (12:21 +0000)
index.php
mod/display.php
src/Module/Object.php [new file with mode: 0644]

index a62b7a2ea1ff2e5cc52390857ee1294408ebf541..8b0bd472513fd9c5a1ca9bbd457a60ce963682d3 100644 (file)
--- a/index.php
+++ b/index.php
@@ -215,10 +215,6 @@ if (strlen($a->module)) {
         * First see if we have an addon which is masquerading as a module.
         */
 
-       if ($a->module == 'object') {
-               $a->module = 'display';
-       }
-
        // Compatibility with the Android Diaspora client
        if ($a->module == 'stream') {
                goaway('network?f=&order=post');
index ff98e689d38b2aac51274a2b0b1f80357b48e2b7..25bda99d013881eeacd20ecf08a1f4e3ddefa3f4 100644 (file)
@@ -78,13 +78,9 @@ function display_init(App $a)
        }
 
        if (ActivityPub::isRequest()) {
-               $wall_item = Item::selectFirst(['id', 'uid'], ['guid' => $item['guid'], 'wall' => true]);
-               if (DBA::isResult($wall_item)) {
-                       $data = ActivityPub::createObjectFromItemID($wall_item['id']);
-                       echo json_encode($data);
-                       exit();
-               }
+               goaway(str_replace('display/', 'object/', $a->query_string));
        }
+
        if ($item["id"] != $item["parent"]) {
                $item = Item::selectFirstForUser(local_user(), $fields, ['id' => $item["parent"]]);
        }
diff --git a/src/Module/Object.php b/src/Module/Object.php
new file mode 100644 (file)
index 0000000..557b906
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @file src/Module/Object.php
+ */
+namespace Friendica\Module;
+
+use Friendica\BaseModule;
+use Friendica\Protocol\ActivityPub;
+use Friendica\Core\System;
+use Friendica\Model\Item;
+use Friendica\Database\DBA;
+
+/**
+ * ActivityPub Object
+ */
+class Object extends BaseModule
+{
+       public static function init()
+       {
+               $a = self::getApp();
+
+               if (empty($a->argv[1])) {
+                       System::httpExit(404);
+               }
+
+               if (!ActivityPub::isRequest()) {
+                       goaway(str_replace('object/', 'display/', $a->query_string));
+               }
+
+               $item = Item::selectFirst(['id'], ['guid' => $a->argv[1], 'wall' => true, 'private' => false]);
+               if (!DBA::isResult($item)) {
+                       System::httpExit(404);
+               }
+
+               $data = ActivityPub::createObjectFromItemID($item['id']);
+
+               header('Content-Type: application/activity+json');
+               echo json_encode($data);
+               exit();
+       }
+}