]> git.mxchange.org Git - friendica.git/blobdiff - static/routes.config.php
Improve formatting in routes definition file
[friendica.git] / static / routes.config.php
index 64a4346656d5b50593ac1e5bca8b549bfd9e97d1..cc37a4eff84aef5b26ed8390c8fa03e722f2233d 100644 (file)
@@ -33,9 +33,123 @@ use Friendica\Module;
 $profileRoutes = [
        ''                                         => [Module\Profile\Index::class,    [R::GET]],
        '/profile'                                 => [Module\Profile\Profile::class,  [R::GET]],
+       '/schedule'                                => [Module\Profile\Schedule::class, [R::GET, R::POST]],
        '/contacts/common'                         => [Module\Profile\Common::class,   [R::GET]],
        '/contacts[/{type}]'                       => [Module\Profile\Contacts::class, [R::GET]],
        '/status[/{category}[/{date1}[/{date2}]]]' => [Module\Profile\Status::class,   [R::GET]],
+       '/media'                                   => [Module\Profile\Media::class,    [R::GET]],
+];
+
+$apiRoutes = [
+       '/account' => [
+               '/verify_credentials[.{extension:json|xml|rss|atom}]'      => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/rate_limit_status[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/update_profile[.{extension:json|xml|rss|atom}]'          => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/update_profile_image[.{extension:json|xml|rss|atom}]'    => [Module\Api\Friendica\Index::class,        [        R::POST]],
+       ],
+
+       '/blocks/list[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+       '/conversation/show[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+       '/direct_messages' => [
+               '/all[.{extension:json|xml|rss|atom}]'                     => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/conversation[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/destroy[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class,        [R::DELETE, R::POST]],
+               '/new[.{extension:json|xml|rss|atom}]'                     => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/sent[.{extension:json|xml|rss|atom}]'                    => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+       ],
+       '/direct_messages[.{extension:json|xml|rss|atom}]'             => [Module\Api\Friendica\Index::class,        [R::GET, R::POST]],
+
+       '/externalprofile/show[.{extension:json|xml|rss|atom}]'        => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+       '/favorites/create[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [        R::POST]],
+       '/favorites/destroy[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class,        [R::DELETE, R::POST]],
+       '/favorites[.{extension:json|xml|rss|atom}]'                   => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+       '/followers/ids[.{extension:json|xml|rss|atom}]'               => [Module\Api\Twitter\FollowersIds::class,   [R::GET         ]],
+       '/followers/list[.{extension:json|xml|rss|atom}]'              => [Module\Api\Twitter\FollowersList::class,  [R::GET         ]],
+       '/friends/ids[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Twitter\FriendsIds::class,     [R::GET         ]],
+       '/friends/list[.{extension:json|xml|rss|atom}]'                => [Module\Api\Twitter\FriendsList::class,    [R::GET         ]],
+       '/friendships/destroy[.{extension:json|xml|rss|atom}]'         => [Module\Api\Friendica\Index::class,        [        R::POST]],
+       '/friendships/incoming[.{extension:json|xml|rss|atom}]'        => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+
+       '/friendica' => [
+               '/activity/attendmaybe[.{extension:json|xml|rss|atom}]'    => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/attendno[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/attendyes[.{extension:json|xml|rss|atom}]'      => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/dislike[.{extension:json|xml|rss|atom}]'        => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/like[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/unattendmaybe[.{extension:json|xml|rss|atom}]'  => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/unattendno[.{extension:json|xml|rss|atom}]'     => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/unattendyes[.{extension:json|xml|rss|atom}]'    => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/undislike[.{extension:json|xml|rss|atom}]'      => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/activity/unlike[.{extension:json|xml|rss|atom}]'         => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/notification/seen[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/notification[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/direct_messages_setseen[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/direct_messages_search[.{extension:json|xml|rss|atom}]'  => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/events[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Events\Index::class, [R::GET         ]],
+               '/group_show[.{extension:json|xml|rss|atom}]'              => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/group_create[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/group_delete[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [R::DELETE      ]],
+               '/group_update[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/profile/show[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Profile\Show::class, [R::GET         ]],
+               '/photoalbum/delete[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class,        [R::DELETE      ]],
+               '/photoalbum/update[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/photos/list[.{extension:json|xml|rss|atom}]'             => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+               '/photo/create[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/photo/delete[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [R::DELETE      ]],
+               '/photo/update[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class,        [        R::POST]],
+               '/photo[.{extension:json|xml|rss|atom}]'                   => [Module\Api\Friendica\Index::class,        [R::GET         ]],
+       ],
+
+       '/gnusocial/config[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/gnusocial/version[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/help/test[.{extension:json|xml|rss|atom}]'                   => [Module\Api\Friendica\Index::class, [R::GET         ]],
+
+       '/lists' => [
+               '/create[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Index::class, [        R::POST]],
+               '/destroy[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class, [R::DELETE, R::POST]],
+               '/list[.{extension:json|xml|rss|atom}]'                    => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/ownerships[.{extension:json|xml|rss|atom}]'              => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/statuses[.{extension:json|xml|rss|atom}]'                => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/subscriptions[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/update[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Index::class, [        R::POST]],
+       ],
+
+       '/media/upload[.{extension:json|xml|rss|atom}]'                => [Module\Api\Friendica\Index::class, [        R::POST]],
+       '/media/metadata/create[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class, [        R::POST]],
+       '/saved_searches/list[.{extension:json|xml|rss|atom}]'         => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/search/tweets[.{extension:json|xml|rss|atom}]'               => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/search[.{extension:json|xml|rss|atom}]'                      => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/statusnet/config[.{extension:json|xml|rss|atom}]'            => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/statusnet/conversation[.{extension:json|xml|rss|atom}]'      => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/statusnet/conversation/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       '/statusnet/version[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+
+       '/statuses' => [
+               '/destroy[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class, [R::DELETE, R::POST]],
+               '/followers[.{extension:json|xml|rss|atom}]'               => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/friends[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/friends_timeline[.{extension:json|xml|rss|atom}]'        => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/home_timeline[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/mediap[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Index::class, [        R::POST]],
+               '/mentions[.{extension:json|xml|rss|atom}]'                => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/mentions_timeline[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/networkpublic_timeline[.{extension:json|xml|rss|atom}]'  => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/public_timeline[.{extension:json|xml|rss|atom}]'         => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/replies[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/retweet[.{extension:json|xml|rss|atom}]'                 => [Module\Api\Friendica\Index::class, [        R::POST]],
+               '/show[.{extension:json|xml|rss|atom}]'                    => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/show/{id:\d+}[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/update[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Index::class, [        R::POST]],
+               '/update_with_media[.{extension:json|xml|rss|atom}]'       => [Module\Api\Friendica\Index::class, [        R::POST]],
+               '/user_timeline[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       ],
+
+       '/users' => [
+               '/lookup[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/search[.{extension:json|xml|rss|atom}]'                  => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/show[.{extension:json|xml|rss|atom}]'                    => [Module\Api\Friendica\Index::class, [R::GET         ]],
+               '/show/{id:\d+}[.{extension:json|xml|rss|atom}]'           => [Module\Api\Friendica\Index::class, [R::GET         ]],
+       ],
 ];
 
 return [
@@ -56,11 +170,13 @@ return [
        ],
 
        '/api' => [
+               ''     => $apiRoutes,
+               '/1.1' => $apiRoutes,
                '/v1' => [
                        '/accounts'                          => [Module\Api\Mastodon\Unimplemented::class,            [        R::POST]], // not supported
                        '/accounts/{id:\d+}'                 => [Module\Api\Mastodon\Accounts::class,                 [R::GET         ]],
                        '/accounts/{id:\d+}/statuses'        => [Module\Api\Mastodon\Accounts\Statuses::class,        [R::GET         ]],
-                       '/accounts/{id:\d+}/featured_tags'   => [Module\Api\Mastodon\Unimplemented::class,            [R::GET         ]], // @todo
+                       '/accounts/{id:\d+}/featured_tags'   => [Module\Api\Mastodon\Accounts\FeaturedTags::class,    [R::GET         ]], // Dummy, not supported
                        '/accounts/{id:\d+}/followers'       => [Module\Api\Mastodon\Accounts\Followers::class,       [R::GET         ]],
                        '/accounts/{id:\d+}/following'       => [Module\Api\Mastodon\Accounts\Following::class,       [R::GET         ]],
                        '/accounts/{id:\d+}/lists'           => [Module\Api\Mastodon\Accounts\Lists::class,           [R::GET         ]],
@@ -125,12 +241,13 @@ return [
                        '/polls/{id:\d+}'                    => [Module\Api\Mastodon\Unimplemented::class,            [R::GET         ]], // not supported
                        '/polls/{id:\d+}/votes'              => [Module\Api\Mastodon\Unimplemented::class,            [        R::POST]], // not supported
                        '/preferences'                       => [Module\Api\Mastodon\Preferences::class,              [R::GET         ]],
-                       '/push/subscription'                 => [Module\Api\Mastodon\Unimplemented::class,            [R::GET, R::POST, R::PUT, R::DELETE]], // not supported
+                       '/push/subscription'                 => [Module\Api\Mastodon\PushSubscription::class,         [R::GET, R::POST, R::PUT, R::DELETE]],
                        '/reports'                           => [Module\Api\Mastodon\Unimplemented::class,            [        R::POST]], // not supported
-                       '/scheduled_statuses'                => [Module\Api\Mastodon\ScheduledStatuses::class,        [R::GET         ]], // Dummy, not supported
-                       '/scheduled_statuses/{id:\d+}'       => [Module\Api\Mastodon\Unimplemented::class,            [R::GET, R::PUT, R::DELETE]], // not supported
+                       '/scheduled_statuses'                => [Module\Api\Mastodon\ScheduledStatuses::class,        [R::GET         ]],
+                       '/scheduled_statuses/{id:\d+}'       => [Module\Api\Mastodon\ScheduledStatuses::class,        [R::GET, R::PUT, R::DELETE]],
                        '/statuses'                          => [Module\Api\Mastodon\Statuses::class,                 [        R::POST]],
                        '/statuses/{id:\d+}'                 => [Module\Api\Mastodon\Statuses::class,                 [R::GET, R::DELETE]],
+                       '/statuses/{id:\d+}/card'            => [Module\Api\Mastodon\Statuses\Card::class,            [R::GET         ]],
                        '/statuses/{id:\d+}/context'         => [Module\Api\Mastodon\Statuses\Context::class,         [R::GET         ]],
                        '/statuses/{id:\d+}/reblogged_by'    => [Module\Api\Mastodon\Statuses\RebloggedBy::class,     [R::GET         ]],
                        '/statuses/{id:\d+}/favourited_by'   => [Module\Api\Mastodon\Statuses\FavouritedBy::class,    [R::GET         ]],
@@ -154,17 +271,9 @@ return [
                        '/timelines/tag/{hashtag}'           => [Module\Api\Mastodon\Timelines\Tag::class,            [R::GET         ]],
                        '/trends'                            => [Module\Api\Mastodon\Trends::class,                   [R::GET         ]],
                ],
-               '/v2' => [
+               '/v{version:\d+}' => [
                        '/search'                            => [Module\Api\Mastodon\Search::class,                   [R::GET         ]],
                ],
-               '/friendica' => [
-                       '/profile/show'                      => [Module\Api\Friendica\Profile\Show::class, [R::GET         ]],
-                       '/events'                            => [Module\Api\Friendica\Events\Index::class, [R::GET         ]],
-               ],
-               '/followers/ids'                         => [Module\Api\Twitter\FollowersIds::class,   [R::GET         ]],
-               '/followers/list'                        => [Module\Api\Twitter\FollowersList::class,  [R::GET         ]],
-               '/friends/ids'                           => [Module\Api\Twitter\FriendsIds::class,     [R::GET         ]],
-               '/friends/list'                          => [Module\Api\Twitter\FriendsList::class,    [R::GET         ]],
                '/meta'                                  => [Module\Api\Mastodon\Unimplemented::class, [R::POST        ]], // not supported
                '/oembed'                                => [Module\Api\Mastodon\Unimplemented::class, [R::GET         ]],
                '/proofs'                                => [Module\Api\Mastodon\Proofs::class,        [R::GET         ]], // Dummy, not supported
@@ -177,8 +286,9 @@ return [
                '/addons/{addon}' => [Module\Admin\Addons\Details::class, [R::GET, R::POST]],
 
 
-               '/blocklist/contact' => [Module\Admin\Blocklist\Contact::class, [R::GET, R::POST]],
-               '/blocklist/server'  => [Module\Admin\Blocklist\Server::class,  [R::GET, R::POST]],
+               '/blocklist/contact'    => [Module\Admin\Blocklist\Contact::class,      [R::GET, R::POST]],
+               '/blocklist/server'     => [Module\Admin\Blocklist\Server\Index::class, [R::GET, R::POST]],
+               '/blocklist/server/add' => [Module\Admin\Blocklist\Server\Add::class,   [R::GET, R::POST]],
 
                '/dbsync[/{action}[/{update:\d+}]]' => [Module\Admin\DBSync::class, [R::GET]],
 
@@ -197,6 +307,9 @@ return [
 
                '/site' => [Module\Admin\Site::class, [R::GET, R::POST]],
 
+               '/storage'        => [Module\Admin\Storage::class, [R::GET, R::POST]],
+               '/storage/{name}' => [Module\Admin\Storage::class, [        R::POST]],
+
                '/themes'               => [Module\Admin\Themes\Index::class,   [R::GET, R::POST]],
                '/themes/{theme}'       => [Module\Admin\Themes\Details::class, [R::GET, R::POST]],
                '/themes/{theme}/embed' => [Module\Admin\Themes\Embed::class,   [R::GET, R::POST]],
@@ -230,10 +343,11 @@ return [
                '/{id:\d+}/block'             => [Module\Contact::class,           [R::GET]],
                '/{id:\d+}/conversations'     => [Module\Contact::class,           [R::GET]],
                '/{id:\d+}/contacts[/{type}]' => [Module\Contact\Contacts::class,  [R::GET]],
-               '/{id:\d+}/drop'              => [Module\Contact::class,           [R::GET]],
                '/{id:\d+}/ignore'            => [Module\Contact::class,           [R::GET]],
+               '/{id:\d+}/media'             => [Module\Contact\Media::class,     [R::GET]],
                '/{id:\d+}/poke'              => [Module\Contact\Poke::class,      [R::GET, R::POST]],
                '/{id:\d+}/posts'             => [Module\Contact::class,           [R::GET]],
+               '/{id:\d+}/revoke'            => [Module\Contact\Revoke::class,    [R::GET, R::POST]],
                '/{id:\d+}/update'            => [Module\Contact::class,           [R::GET]],
                '/{id:\d+}/updateprofile'     => [Module\Contact::class,           [R::GET]],
                '/archived'                   => [Module\Contact::class,           [R::GET]],
@@ -252,6 +366,8 @@ return [
        '/dirfind'                  => [Module\Search\Directory::class, [R::GET]],
        '/directory'                => [Module\Directory::class,        [R::GET]],
 
+       '/events/json'                => [Module\Events\Json::class,        [R::GET]],
+
        '/feed'     => [
                '/{nickname}'          => [Module\Feed::class, [R::GET]],
                '/{nickname}/posts'    => [Module\Feed::class, [R::GET]],
@@ -291,7 +407,7 @@ return [
        '/hashtag'                    => [Module\Hashtag::class,           [R::GET]],
        '/help[/{doc:.+}]'            => [Module\Help::class,              [R::GET]],
        '/home'                       => [Module\Home::class,              [R::GET]],
-       '/hcard/{profile}[/{action}]' => [Module\HoverCard::class,         [R::GET]],
+       '/hcard/{profile}[/{action}]' => [Module\HCard::class,             [R::GET]],
        '/inbox[/{nickname}]'         => [Module\ActivityPub\Inbox::class, [R::GET, R::POST]],
        '/invite'                     => [Module\Invite::class,            [R::GET, R::POST]],
 
@@ -348,7 +464,7 @@ return [
                '/token'       => [Module\OAuth\Token::class,       [R::POST]],
        ],
 
-       '/objects/{guid}[/{activity}]' => [Module\Objects::class, [R::GET]],
+       '/objects/{guid}[/{activity}]' => [Module\ActivityPub\Objects::class, [R::GET]],
 
        '/oembed'         => [
                '/b2h'    => [Module\Oembed::class, [R::GET]],
@@ -364,9 +480,18 @@ return [
        '/permission/tooltip/{type}/{id:\d+}' => [Module\PermissionTooltip::class, [R::GET]],
 
        '/photo' => [
-               '/{name}'                     => [Module\Photo::class, [R::GET]],
-               '/{type}/{name}'              => [Module\Photo::class, [R::GET]],
-               '/{type}/{customsize}/{name}' => [Module\Photo::class, [R::GET]],
+               '/{name}'                                                  => [Module\Photo::class, [R::GET]],
+               '/{type}/{id:\d+}'                                         => [Module\Photo::class, [R::GET]],
+               // User Id Fallback, to remove after version 2021.12
+               '/{type}/{uid_ext:\d+\..*}'                                => [Module\Photo::class, [R::GET]],
+               '/{type}/{nickname_ext}'                                   => [Module\Photo::class, [R::GET]],
+               // Contact Id Fallback, to remove after version 2021.12
+               '/{type:contact|header}/{customsize:\d+}/{contact_id:\d+}' => [Module\Photo::class, [R::GET]],
+               '/{type:contact|header}/{customsize:\d+}/{guid}'           => [Module\Photo::class, [R::GET]],
+               '/{type}/{customsize:\d+}/{id:\d+}'                        => [Module\Photo::class, [R::GET]],
+               // User Id Fallback, to remove after version 2021.12
+               '/{type}/{customsize:\d+}/{uid_ext:\d+\..*}'               => [Module\Photo::class, [R::GET]],
+               '/{type}/{customsize:\d+}/{nickname_ext}'                  => [Module\Photo::class, [R::GET]],
        ],
 
        '/pretheme'          => [Module\ThemeDetails::class, [R::GET]],
@@ -391,8 +516,8 @@ return [
        ],
 
        '/receive' => [
-               '/public'       => [Module\Diaspora\Receive::class, [R::POST]],
-               '/users/{guid}' => [Module\Diaspora\Receive::class, [R::POST]],
+               '/{type:public}'       => [Module\Diaspora\Receive::class, [        R::POST]],
+               '/{type:users}/{guid}' => [Module\Diaspora\Receive::class, [        R::POST]],
        ],
 
        '/settings' => [
@@ -431,7 +556,14 @@ return [
        '/tos'                           => [Module\Tos::class,                   [R::GET]],
 
        '/update_community[/{content}]'  => [Module\Update\Community::class,      [R::GET]],
-       '/update_network'                => [Module\Update\Network::class,        [R::GET]],
+
+       '/update_network' => [
+               '[/]'                        => [Module\Update\Network::class, [R::GET]],
+               '/archive/{from:\d\d\d\d-\d\d-\d\d}[/{to:\d\d\d\d-\d\d-\d\d}]' => [Module\Update\Network::class, [R::GET]],
+               '/forum/{contact_id:\d+}'    => [Module\Update\Network::class, [R::GET]],
+               '/group/{group_id:\d+}'      => [Module\Update\Network::class, [R::GET]],
+       ],
+
        '/update_profile'                => [Module\Update\Profile::class,        [R::GET]],
 
        '/view/theme/{theme}/style.pcss' => [Module\Theme::class,                 [R::GET]],