mirror of
https://github.com/friendica/friendica
synced 2026-03-17 03:29:03 +01:00
Changes after review
This commit is contained in:
parent
960b5c0861
commit
4267a04f44
6 changed files with 445 additions and 382 deletions
12
bin/dev/php-cs-fixer/composer.lock
generated
12
bin/dev/php-cs-fixer/composer.lock
generated
|
|
@ -402,16 +402,16 @@
|
|||
},
|
||||
{
|
||||
"name": "friendsofphp/php-cs-fixer",
|
||||
"version": "v3.94.0",
|
||||
"version": "v3.94.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
|
||||
"reference": "883b20fb38c7866de9844ab6d0a205c423bde2d4"
|
||||
"reference": "7787ceff91365ba7d623ec410b8f429cdebb4f63"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/883b20fb38c7866de9844ab6d0a205c423bde2d4",
|
||||
"reference": "883b20fb38c7866de9844ab6d0a205c423bde2d4",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/7787ceff91365ba7d623ec410b8f429cdebb4f63",
|
||||
"reference": "7787ceff91365ba7d623ec410b8f429cdebb4f63",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -494,7 +494,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
|
||||
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.94.0"
|
||||
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.94.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -502,7 +502,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2026-02-11T16:44:33+00:00"
|
||||
"time": "2026-02-20T16:13:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
|
|
|
|||
|
|
@ -46,15 +46,15 @@ use Friendica\Worker\UpdateContact;
|
|||
*/
|
||||
class Contact
|
||||
{
|
||||
const DEFAULT_AVATAR_PHOTO = '/images/person-300.jpg';
|
||||
const DEFAULT_AVATAR_THUMB = '/images/person-80.jpg';
|
||||
const DEFAULT_AVATAR_MICRO = '/images/person-48.jpg';
|
||||
public const DEFAULT_AVATAR_PHOTO = '/images/person-300.jpg';
|
||||
public const DEFAULT_AVATAR_THUMB = '/images/person-80.jpg';
|
||||
public const DEFAULT_AVATAR_MICRO = '/images/person-48.jpg';
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
const LOCK_INSERT = 'contact-insert';
|
||||
public const LOCK_INSERT = 'contact-insert';
|
||||
|
||||
/**
|
||||
* Account types
|
||||
|
|
@ -77,12 +77,12 @@ class Contact
|
|||
* This will only be assigned to contacts, not to user accounts
|
||||
* @{
|
||||
*/
|
||||
const TYPE_UNKNOWN = -1;
|
||||
const TYPE_PERSON = User::ACCOUNT_TYPE_PERSON;
|
||||
const TYPE_ORGANISATION = User::ACCOUNT_TYPE_ORGANISATION;
|
||||
const TYPE_NEWS = User::ACCOUNT_TYPE_NEWS;
|
||||
const TYPE_COMMUNITY = User::ACCOUNT_TYPE_COMMUNITY;
|
||||
const TYPE_RELAY = User::ACCOUNT_TYPE_RELAY;
|
||||
public const TYPE_UNKNOWN = -1;
|
||||
public const TYPE_PERSON = User::ACCOUNT_TYPE_PERSON;
|
||||
public const TYPE_ORGANISATION = User::ACCOUNT_TYPE_ORGANISATION;
|
||||
public const TYPE_NEWS = User::ACCOUNT_TYPE_NEWS;
|
||||
public const TYPE_COMMUNITY = User::ACCOUNT_TYPE_COMMUNITY;
|
||||
public const TYPE_RELAY = User::ACCOUNT_TYPE_RELAY;
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
@ -93,11 +93,11 @@ class Contact
|
|||
* Relationship types
|
||||
* @{
|
||||
*/
|
||||
const NOTHING = 0; // There is no relationship between the contact and the user
|
||||
const FOLLOWER = 1; // The contact is following this user (the contact is the subscriber)
|
||||
const SHARING = 2; // The contact shares their content with this user (the user is the subscriber)
|
||||
const FRIEND = 3; // There is a mutual relationship between the contact and the user
|
||||
const SELF = 4; // This is the user theirself
|
||||
public const NOTHING = 0; // There is no relationship between the contact and the user
|
||||
public const FOLLOWER = 1; // The contact is following this user (the contact is the subscriber)
|
||||
public const SHARING = 2; // The contact shares their content with this user (the user is the subscriber)
|
||||
public const FRIEND = 3; // There is a mutual relationship between the contact and the user
|
||||
public const SELF = 4; // This is the user theirself
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
@ -187,14 +187,14 @@ class Contact
|
|||
'failure_update', 'failed', 'term-date', 'last-item', 'last-discovery', 'local-data',
|
||||
'readonly', 'contact-type', 'manually-approve', 'archive', 'unsearchable', 'sensitive',
|
||||
'baseurl', 'gsid', 'bd', 'photo', 'thumb', 'micro', 'name-date', 'uri-date', 'avatar-date',
|
||||
'request', 'confirm', 'poco', 'writable', 'forum', 'prv', 'bdyear'
|
||||
'request', 'confirm', 'poco', 'writable', 'forum', 'prv', 'bdyear',
|
||||
];
|
||||
$contact = self::selectFirst($fields, ['id' => $cid]);
|
||||
if (empty($contact)) {
|
||||
return false;
|
||||
}
|
||||
$contact['uid'] = 0;
|
||||
return (bool)self::insert($contact);
|
||||
return (bool) self::insert($contact);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -824,7 +824,7 @@ class Contact
|
|||
$user = DBA::selectFirst(
|
||||
'user',
|
||||
['uid', 'username', 'nickname', 'pubkey', 'prvkey'],
|
||||
['uid' => $uid, 'account_removed' => false, 'account_expired' => false]
|
||||
['uid' => $uid, 'account_removed' => false, 'account_expired' => false],
|
||||
);
|
||||
if (!DBA::isResult($user)) {
|
||||
return false;
|
||||
|
|
@ -852,14 +852,14 @@ class Contact
|
|||
'uri-date' => DateTimeFormat::utcNow(),
|
||||
'avatar-date' => DateTimeFormat::utcNow(),
|
||||
'baseurl' => DI::baseUrl(),
|
||||
'closeness' => 0
|
||||
'closeness' => 0,
|
||||
];
|
||||
|
||||
$return = true;
|
||||
|
||||
// Only create the entry if it doesn't exist yet
|
||||
if (!DBA::exists('contact', ['uid' => $uid, 'self' => true])) {
|
||||
$return = (bool)self::insert($contact);
|
||||
$return = (bool) self::insert($contact);
|
||||
}
|
||||
|
||||
// Create the public contact
|
||||
|
|
@ -887,7 +887,7 @@ class Contact
|
|||
$fields = [
|
||||
'id', 'uri-id', 'name', 'nick', 'location', 'about', 'keywords', 'avatar', 'prvkey', 'pubkey', 'manually-approve',
|
||||
'xmpp', 'matrix', 'contact-type', 'forum', 'prv', 'avatar-date', 'url', 'nurl', 'unsearchable',
|
||||
'photo', 'thumb', 'micro', 'header', 'addr', 'request', 'notify', 'poll', 'confirm', 'poco', 'network', 'baseurl', 'gsid'
|
||||
'photo', 'thumb', 'micro', 'header', 'addr', 'request', 'notify', 'poll', 'confirm', 'poco', 'network', 'baseurl', 'gsid',
|
||||
];
|
||||
$self = DBA::selectFirst('contact', $fields, ['uid' => $uid, 'self' => true]);
|
||||
if (!DBA::isResult($self)) {
|
||||
|
|
@ -902,7 +902,7 @@ class Contact
|
|||
|
||||
$fields = [
|
||||
'name', 'photo', 'thumb', 'about', 'address', 'locality', 'region',
|
||||
'country-name', 'pub_keywords', 'xmpp', 'matrix', 'net-publish'
|
||||
'country-name', 'pub_keywords', 'xmpp', 'matrix', 'net-publish',
|
||||
];
|
||||
$profile = DBA::selectFirst('profile', $fields, ['uid' => $uid]);
|
||||
if (!DBA::isResult($profile)) {
|
||||
|
|
@ -987,7 +987,7 @@ class Contact
|
|||
// Update the profile
|
||||
$fields = [
|
||||
'photo' => User::getAvatarUrl($user),
|
||||
'thumb' => User::getAvatarUrl($user, Proxy::SIZE_THUMB)
|
||||
'thumb' => User::getAvatarUrl($user, Proxy::SIZE_THUMB),
|
||||
];
|
||||
|
||||
DBA::update('profile', $fields, ['uid' => $uid]);
|
||||
|
|
@ -1423,7 +1423,7 @@ class Contact
|
|||
$fields = [
|
||||
'name', 'nick', 'url', 'addr', 'alias', 'avatar', 'header', 'contact-type',
|
||||
'keywords', 'location', 'about', 'unsearchable', 'batch', 'notify', 'poll',
|
||||
'request', 'confirm', 'poco', 'subscribe', 'network', 'baseurl', 'gsid'
|
||||
'request', 'confirm', 'poco', 'subscribe', 'network', 'baseurl', 'gsid',
|
||||
];
|
||||
|
||||
$personal_contact = DBA::selectFirst('contact', $fields, ["`addr` = ? AND `uid` != 0", $url]);
|
||||
|
|
@ -1675,7 +1675,7 @@ class Contact
|
|||
if ($only_media) {
|
||||
$condition = DBA::mergeConditions($condition, [
|
||||
"`uri-id` IN (SELECT `uri-id` FROM `post-media` WHERE `type` IN (?, ?, ?, ?))",
|
||||
Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO, Post\Media::HLS
|
||||
Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO, Post\Media::HLS,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -1763,7 +1763,7 @@ class Contact
|
|||
|
||||
$condition2 = DBA::mergeConditions($condition, [
|
||||
"`author-id` = ? AND `gravity` = ? AND `vid` = ? AND `protocol` != ? AND `thr-parent-id` = `parent-uri-id`",
|
||||
$cid, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), Conversation::PARCEL_DIASPORA
|
||||
$cid, Item::GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), Conversation::PARCEL_DIASPORA,
|
||||
]);
|
||||
|
||||
$sql1 = "SELECT `uri-id`, `created` FROM `post-thread-user-view` WHERE " . array_shift($condition1);
|
||||
|
|
@ -2288,7 +2288,7 @@ class Contact
|
|||
{
|
||||
$condition = [
|
||||
"`nurl` = ? AND ((`uid` = ? AND `network` IN (?, ?)) OR `uid` = ?)",
|
||||
Strings::normaliseLink($url), $uid, Protocol::FEED, Protocol::MAIL, 0
|
||||
Strings::normaliseLink($url), $uid, Protocol::FEED, Protocol::MAIL, 0,
|
||||
];
|
||||
$contact = self::selectFirst(['id', 'updated'], $condition, ['order' => ['uid' => true]]);
|
||||
return self::getAvatarUrlForId($contact['id'] ?? 0, $size, $contact['updated'] ?? '');
|
||||
|
|
@ -2363,7 +2363,7 @@ class Contact
|
|||
$contact = DBA::selectFirst(
|
||||
'contact',
|
||||
['uid', 'avatar', 'photo', 'thumb', 'micro', 'blurhash', 'xmpp', 'addr', 'nurl', 'url', 'network', 'uri-id'],
|
||||
['id' => $cid, 'self' => false]
|
||||
['id' => $cid, 'self' => false],
|
||||
);
|
||||
if (!DBA::isResult($contact)) {
|
||||
return;
|
||||
|
|
@ -2445,7 +2445,7 @@ class Contact
|
|||
'avatar-date' => DateTimeFormat::utcNow(),
|
||||
'photo' => $avatar,
|
||||
'thumb' => self::getDefaultAvatar($contact, Proxy::SIZE_THUMB),
|
||||
'micro' => self::getDefaultAvatar($contact, Proxy::SIZE_MICRO)
|
||||
'micro' => self::getDefaultAvatar($contact, Proxy::SIZE_MICRO),
|
||||
];
|
||||
DI::logger()->debug('Use default avatar', ['id' => $cid, 'uid' => $uid]);
|
||||
}
|
||||
|
|
@ -2517,7 +2517,7 @@ class Contact
|
|||
$personal_contacts = DBA::select(
|
||||
'contact',
|
||||
['id', 'uid'],
|
||||
["`nurl` = ? AND `id` != ? AND NOT `self`", $contact['nurl'], $cid]
|
||||
["`nurl` = ? AND `id` != ? AND NOT `self`", $contact['nurl'], $cid],
|
||||
);
|
||||
while ($personal_contact = DBA::fetch($personal_contacts)) {
|
||||
$cids[] = $personal_contact['id'];
|
||||
|
|
@ -2714,9 +2714,9 @@ class Contact
|
|||
return true;
|
||||
}
|
||||
|
||||
$stamp = (float)microtime(true);
|
||||
$stamp = (float) microtime(true);
|
||||
self::updateFromProbe($id);
|
||||
DI::logger()->debug('Contact data is updated.', ['duration' => round((float)microtime(true) - $stamp, 3), 'id' => $id, 'url' => $contact['url']]);
|
||||
DI::logger()->debug('Contact data is updated.', ['duration' => round((float) microtime(true) - $stamp, 3), 'id' => $id, 'url' => $contact['url']]);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2732,7 +2732,7 @@ class Contact
|
|||
if (!empty($id)) {
|
||||
return self::updateByIdIfNeeded($id);
|
||||
}
|
||||
return (bool)self::getIdForURL($url);
|
||||
return (bool) self::getIdForURL($url);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2845,7 +2845,7 @@ class Contact
|
|||
'uid', 'uri-id', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe',
|
||||
'manually-approve', 'unsearchable', 'url', 'addr', 'batch', 'notify', 'poll', 'request', 'confirm', 'poco',
|
||||
'network', 'alias', 'baseurl', 'gsid', 'forum', 'prv', 'contact-type', 'pubkey', 'last-item', 'xmpp', 'matrix',
|
||||
'created', 'last-update'
|
||||
'created', 'last-update',
|
||||
];
|
||||
|
||||
/** @var array<string,mixed> */
|
||||
|
|
@ -2919,8 +2919,8 @@ class Contact
|
|||
// We must not try to update relay contacts via probe. They are no real contacts.
|
||||
// See Relay::updateContact() for more details.
|
||||
// We check after the probing to be able to correct falsely detected contact types.
|
||||
if (($contact['contact-type'] == self::TYPE_RELAY) && Strings::compareLink($contact['url'], $contact['baseurl'] ?? '') &&
|
||||
(!Strings::compareLink($ret['url'], $contact['url']) || in_array($ret['network'], [Protocol::FEED, Protocol::PHANTOM]))
|
||||
if (($contact['contact-type'] == self::TYPE_RELAY) && Strings::compareLink($contact['url'], $contact['baseurl'] ?? '')
|
||||
&& (!Strings::compareLink($ret['url'], $contact['url']) || in_array($ret['network'], [Protocol::FEED, Protocol::PHANTOM]))
|
||||
) {
|
||||
if (GServer::reachable($contact)) {
|
||||
self::updateContact($id, $uid, $uriid, $contact['url'], ['failed' => false, 'local-data' => $has_local_data, 'last-update' => $updated, 'next-update' => $success_next_update, 'success_update' => $updated, 'unsearchable' => true]);
|
||||
|
|
@ -2955,8 +2955,8 @@ class Contact
|
|||
$ret['prv'] = false;
|
||||
$ret['contact-type'] = $ret['account-type'];
|
||||
if (($ret['contact-type'] == User::ACCOUNT_TYPE_COMMUNITY) && isset($ret['manually-approve'])) {
|
||||
$ret['forum'] = (bool)!$ret['manually-approve'];
|
||||
$ret['prv'] = (bool)!$ret['forum'];
|
||||
$ret['forum'] = (bool) !$ret['manually-approve'];
|
||||
$ret['prv'] = (bool) !$ret['forum'];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3239,7 +3239,7 @@ class Contact
|
|||
|
||||
$pending = false;
|
||||
if (($protocol == Protocol::ACTIVITYPUB) && isset($ret['manually-approve'])) {
|
||||
$pending = (bool)$ret['manually-approve'];
|
||||
$pending = (bool) $ret['manually-approve'];
|
||||
}
|
||||
|
||||
$writeable = in_array($protocol, [Protocol::MAIL, Protocol::DIASPORA, Protocol::ACTIVITYPUB]);
|
||||
|
|
@ -3374,8 +3374,8 @@ class Contact
|
|||
|
||||
// Contact is blocked at user-level
|
||||
if (
|
||||
!empty($contact['id']) && !empty($importer['id']) &&
|
||||
Contact\User::isBlocked($contact['id'], $importer['id'])
|
||||
!empty($contact['id']) && !empty($importer['id'])
|
||||
&& Contact\User::isBlocked($contact['id'], $importer['id'])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -3388,7 +3388,7 @@ class Contact
|
|||
) {
|
||||
self::update(
|
||||
['rel' => self::FRIEND, 'writable' => true, 'pending' => false],
|
||||
['id' => $contact['id'], 'uid' => $importer['uid']]
|
||||
['id' => $contact['id'], 'uid' => $importer['uid']],
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3450,7 +3450,7 @@ class Contact
|
|||
$intro = DI::introFactory()->createNew(
|
||||
$importer['uid'],
|
||||
$contact_record['id'],
|
||||
$note
|
||||
$note,
|
||||
);
|
||||
DI::intro()->save($intro);
|
||||
}
|
||||
|
|
@ -3567,7 +3567,7 @@ class Contact
|
|||
AND NOT `contact`.`deleted`',
|
||||
DBA::NULL_DATE,
|
||||
self::SHARING,
|
||||
self::FRIEND
|
||||
self::FRIEND,
|
||||
];
|
||||
|
||||
$contacts = DBA::select('contact', ['id', 'uid', 'name', 'url', 'bd'], $condition);
|
||||
|
|
@ -3582,7 +3582,7 @@ class Contact
|
|||
DBA::update(
|
||||
'contact',
|
||||
['bdyear' => substr($nextbd, 0, 4), 'bd' => $nextbd],
|
||||
['id' => $contact['id']]
|
||||
['id' => $contact['id']],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -3794,7 +3794,7 @@ class Contact
|
|||
'failed' => false,
|
||||
'deleted' => false,
|
||||
'unsearchable' => false,
|
||||
'uid' => $uid
|
||||
'uid' => $uid,
|
||||
];
|
||||
|
||||
if (!$show_blocked) {
|
||||
|
|
@ -3824,7 +3824,7 @@ class Contact
|
|||
|
||||
$condition = DBA::mergeConditions(
|
||||
$condition,
|
||||
["(`addr` LIKE ? OR `name` LIKE ? OR `nick` LIKE ?)", $search, $search, $search]
|
||||
["(`addr` LIKE ? OR `name` LIKE ? OR `nick` LIKE ?)", $search, $search, $search],
|
||||
);
|
||||
|
||||
return DBA::selectToArray('account-user-view', [], $condition, $params);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,14 @@ use Friendica\Network\HTTPException\ForbiddenException;
|
|||
use Friendica\Util\Profiler;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
* Profile page for managing personal personal notes.
|
||||
*
|
||||
* Provides the UI to create, view and paginate personal notes associated
|
||||
* with the currently authenticated local user.
|
||||
*
|
||||
* @package Friendica\Module\Profile
|
||||
*/
|
||||
class Notes extends BaseProfile
|
||||
{
|
||||
protected AppHelper $appHelper;
|
||||
|
|
@ -36,17 +44,42 @@ class Notes extends BaseProfile
|
|||
protected IManageConfigValues $config;
|
||||
protected Conversation $conversation;
|
||||
|
||||
/**
|
||||
* Notes constructor.
|
||||
*
|
||||
* @param AppHelper $appHelper
|
||||
* @param UserSession $userSession
|
||||
* @param L10n $l10n
|
||||
* @param BaseURL $baseUrl
|
||||
* @param Arguments $args
|
||||
* @param LoggerInterface $logger
|
||||
* @param Profiler $profiler
|
||||
* @param \Friendica\Module\Response $response
|
||||
* @param array $server
|
||||
* @param array $parameters
|
||||
* @param Mode $mode
|
||||
* @param IManagePersonalConfigValues $pConfig
|
||||
* @param IManageConfigValues $config
|
||||
* @param Conversation $conversation
|
||||
*/
|
||||
public function __construct(AppHelper $appHelper, UserSession $userSession, L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, \Friendica\Module\Response $response, array $server, array $parameters = [], Mode $mode, IManagePersonalConfigValues $pConfig, IManageConfigValues $config, Conversation $conversation)
|
||||
{
|
||||
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
|
||||
$this->appHelper = $appHelper;
|
||||
$this->userSession = $userSession;
|
||||
$this->mode = $mode;
|
||||
$this->pConfig = $pConfig;
|
||||
$this->config = $config;
|
||||
$this->conversation = $conversation;
|
||||
$this->appHelper = $appHelper;
|
||||
$this->userSession = $userSession;
|
||||
$this->mode = $mode;
|
||||
$this->pConfig = $pConfig;
|
||||
$this->config = $config;
|
||||
$this->conversation = $conversation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the notes page content.
|
||||
*
|
||||
* @param array $request Optional request parameters
|
||||
* @return string Rendered HTML for the notes page
|
||||
* @throws ForbiddenException If no local user is logged in
|
||||
*/
|
||||
protected function content(array $request = []): string
|
||||
{
|
||||
if (!$this->userSession->getLocalUserId()) {
|
||||
|
|
@ -74,7 +107,7 @@ class Notes extends BaseProfile
|
|||
'uid' => $this->userSession->getLocalUserId(),
|
||||
'post-type' => Item::PT_PERSONAL_NOTE,
|
||||
'gravity' => Item::GRAVITY_PARENT,
|
||||
'contact-id' => $contactId
|
||||
'contact-id' => $contactId,
|
||||
];
|
||||
|
||||
if ($this->mode->isMobile()) {
|
||||
|
|
@ -82,14 +115,14 @@ class Notes extends BaseProfile
|
|||
$this->userSession->getLocalUserId(),
|
||||
'system',
|
||||
'itemspage_mobile_network',
|
||||
$this->config->get('system', 'itemspage_network_mobile')
|
||||
$this->config->get('system', 'itemspage_network_mobile'),
|
||||
);
|
||||
} else {
|
||||
$itemsPerPage = $this->pConfig->get(
|
||||
$this->userSession->getLocalUserId(),
|
||||
'system',
|
||||
'itemspage_network',
|
||||
$this->config->get('system', 'itemspage_network')
|
||||
$this->config->get('system', 'itemspage_network'),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -97,7 +130,7 @@ class Notes extends BaseProfile
|
|||
|
||||
$params = [
|
||||
'order' => ['created' => true],
|
||||
'limit' => [$pager->getStart(), $pager->getItemsPerPage()]
|
||||
'limit' => [$pager->getStart(), $pager->getItemsPerPage()],
|
||||
];
|
||||
$r = Post::selectThreadForUser($this->userSession->getLocalUserId(), ['uri-id'], $condition, $params);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ use Friendica\App\BaseURL;
|
|||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\Session\Model\UserSession;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact as ModelContact;
|
||||
use Friendica\Model\Post;
|
||||
|
|
@ -31,16 +30,37 @@ use Psr\Log\LoggerInterface;
|
|||
*
|
||||
* @package Friendica\Module\Update
|
||||
*/
|
||||
class Contact extends ContactModule
|
||||
final class Contact extends ContactModule
|
||||
{
|
||||
protected UserSession $userSession;
|
||||
private UserSession $userSession;
|
||||
|
||||
/**
|
||||
* Contact update module constructor.
|
||||
*
|
||||
* @param L10n $l10n
|
||||
* @param BaseURL $baseUrl
|
||||
* @param Arguments $args
|
||||
* @param LoggerInterface $logger
|
||||
* @param Profiler $profiler
|
||||
* @param Response $response
|
||||
* @param array $server
|
||||
* @param array $parameters
|
||||
* @param UserSession $userSession
|
||||
*/
|
||||
public function __construct(L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [], UserSession $userSession)
|
||||
{
|
||||
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
|
||||
$this->userSession = $userSession;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the HTML update for a contact thread.
|
||||
*
|
||||
* @param array $request Request parameters; expects 'item' and optional 'last_received'
|
||||
* @return void Sends HTML update and exits
|
||||
* @throws ForbiddenException If no local user is logged in
|
||||
* @throws NotFoundException If the contact or item cannot be found
|
||||
*/
|
||||
protected function rawContent(array $request = [])
|
||||
{
|
||||
if (!$this->userSession->getLocalUserId()) {
|
||||
|
|
|
|||
|
|
@ -24,8 +24,17 @@ use Friendica\Network\HTTPException\NotFoundException;
|
|||
*
|
||||
* @package Friendica\Module\Update
|
||||
*/
|
||||
class Notes extends ProfileModule
|
||||
final class Notes extends ProfileModule
|
||||
{
|
||||
/**
|
||||
* Handle an asynchronous request for a single personal note and output
|
||||
* the rendered HTML for an update (AJAX) response.
|
||||
*
|
||||
* @param array $request Request data, expects an 'item' key with the note id
|
||||
* @return void Exits after sending the HTML update
|
||||
* @throws ForbiddenException If the current user is not authenticated
|
||||
* @throws NotFoundException If the requested item cannot be found
|
||||
*/
|
||||
protected function rawContent(array $request = [])
|
||||
{
|
||||
if (!$this->userSession->getLocalUserId()) {
|
||||
|
|
|
|||
|
|
@ -33,40 +33,40 @@ $profileRoutes = [
|
|||
|
||||
$apiRoutes = [
|
||||
'/account' => [
|
||||
'/verify_credentials[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\VerifyCredentials::class, [R::GET ]],
|
||||
'/rate_limit_status[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\RateLimitStatus::class, [R::GET ]],
|
||||
'/update_profile[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\UpdateProfile::class, [ R::POST]],
|
||||
'/update_profile_image[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\UpdateProfileImage::class, [ R::POST]],
|
||||
'/verify_credentials[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\VerifyCredentials::class, [R::GET ]],
|
||||
'/rate_limit_status[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\RateLimitStatus::class, [R::GET ]],
|
||||
'/update_profile[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\UpdateProfile::class, [ R::POST]],
|
||||
'/update_profile_image[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Account\UpdateProfileImage::class, [ R::POST]],
|
||||
],
|
||||
|
||||
'/blocks/ids[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Blocks\Ids::class, [R::GET ]],
|
||||
'/blocks/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Blocks\Lists::class, [R::GET ]],
|
||||
'/conversation/show[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\Statusnet\Conversation::class, [R::GET ]],
|
||||
'/conversation/show/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\Statusnet\Conversation::class, [R::GET ]],
|
||||
'/direct_messages' => [
|
||||
'/all[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\All::class, [R::GET ]],
|
||||
'/conversation[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Conversation::class, [R::GET ]],
|
||||
'/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Destroy::class, [ R::POST]],
|
||||
'/new[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\NewDM::class, [ R::POST]],
|
||||
'/sent[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Sent::class, [R::GET ]],
|
||||
'/blocks/ids[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Blocks\Ids::class, [R::GET ]],
|
||||
'/blocks/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Blocks\Lists::class, [R::GET ]],
|
||||
'/conversation/show[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\Statusnet\Conversation::class, [R::GET ]],
|
||||
'/conversation/show/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\Statusnet\Conversation::class, [R::GET ]],
|
||||
'/direct_messages' => [
|
||||
'/all[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\All::class, [R::GET ]],
|
||||
'/conversation[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Conversation::class, [R::GET ]],
|
||||
'/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Destroy::class, [ R::POST]],
|
||||
'/new[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\NewDM::class, [ R::POST]],
|
||||
'/sent[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Sent::class, [R::GET ]],
|
||||
],
|
||||
'/direct_messages[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Inbox::class, [R::GET, R::POST]],
|
||||
'/direct_messages[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\DirectMessages\Inbox::class, [R::GET, R::POST]],
|
||||
|
||||
'/externalprofile/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Show::class, [R::GET ]],
|
||||
'/favorites/create[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Favorites\Create::class, [ R::POST]],
|
||||
'/favorites/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Favorites\Destroy::class, [ R::POST]],
|
||||
'/favorites[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Favorites::class, [R::GET ]],
|
||||
'/followers/ids[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Followers\Ids::class, [R::GET ]],
|
||||
'/followers/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Followers\Lists::class, [R::GET ]],
|
||||
'/friends/ids[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friends\Ids::class, [R::GET ]],
|
||||
'/friends/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friends\Lists::class, [R::GET ]],
|
||||
'/friendships/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friendships\Destroy::class, [ R::POST]],
|
||||
'/friendships/incoming[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friendships\Incoming::class, [R::GET ]],
|
||||
'/friendships/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friendships\Show::class, [R::GET ]],
|
||||
'/externalprofile/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Show::class, [R::GET ]],
|
||||
'/favorites/create[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Favorites\Create::class, [ R::POST]],
|
||||
'/favorites/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Favorites\Destroy::class, [ R::POST]],
|
||||
'/favorites[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Favorites::class, [R::GET ]],
|
||||
'/followers/ids[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Followers\Ids::class, [R::GET ]],
|
||||
'/followers/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Followers\Lists::class, [R::GET ]],
|
||||
'/friends/ids[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friends\Ids::class, [R::GET ]],
|
||||
'/friends/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friends\Lists::class, [R::GET ]],
|
||||
'/friendships/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friendships\Destroy::class, [ R::POST]],
|
||||
'/friendships/incoming[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friendships\Incoming::class, [R::GET ]],
|
||||
'/friendships/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friendships\Show::class, [R::GET ]],
|
||||
|
||||
'/friendica' => [
|
||||
'/activity/{verb:attendmaybe|attendno|attendyes|dislike|like|unattendmaybe|unattendno|unattendyes|undislike|unlike}[.{extension:json|xml|rss|atom}]'
|
||||
=> [Module\Api\Friendica\Activity::class, [ R::POST]],
|
||||
'/activity/{verb:attendmaybe|attendno|attendyes|dislike|like|unattendmaybe|unattendno|unattendyes|undislike|unlike}[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Activity::class, [ R::POST]],
|
||||
|
||||
'/statuses/{id:\d+}/dislike' => [Module\Api\Friendica\Statuses\Dislike::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/disliked_by' => [Module\Api\Friendica\Statuses\DislikedBy::class, [R::GET ]],
|
||||
'/statuses/{id:\d+}/undislike' => [Module\Api\Friendica\Statuses\Undislike::class, [ R::POST]],
|
||||
|
|
@ -74,7 +74,7 @@ $apiRoutes = [
|
|||
'/notification[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Notification::class, [R::GET ]],
|
||||
'/notifications[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Notification::class, [R::GET ]],
|
||||
'/direct_messages_setseen[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\DirectMessages\Setseen::class, [ R::POST]],
|
||||
'/direct_messages_search[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\DirectMessages\Search ::class, [R::GET ]],
|
||||
'/direct_messages_search[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\DirectMessages\Search::class, [R::GET ]],
|
||||
'/events[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Events\Index::class, [R::GET ]],
|
||||
'/event_create[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Events\Create::class, [ R::POST]],
|
||||
'/event_delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Events\Delete::class, [ R::POST]],
|
||||
|
|
@ -85,35 +85,35 @@ $apiRoutes = [
|
|||
|
||||
// Backward compatibility
|
||||
// @deprecated
|
||||
'/group_show[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Show::class, [R::GET ]],
|
||||
'/group_create[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Create::class, [ R::POST]],
|
||||
'/group_delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Delete::class, [ R::POST]],
|
||||
'/group_update[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Update::class, [ R::POST]],
|
||||
'/group_show[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Show::class, [R::GET ]],
|
||||
'/group_create[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Create::class, [ R::POST]],
|
||||
'/group_delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Delete::class, [ R::POST]],
|
||||
'/group_update[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Circle\Update::class, [ R::POST]],
|
||||
|
||||
'/profile/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Profile\Show::class, [R::GET ]],
|
||||
'/photoalbums[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Index::class, [R::GET ]],
|
||||
'/photoalbum[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Show::class, [R::GET ]],
|
||||
'/photoalbum/delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Delete::class, [ R::POST]],
|
||||
'/photoalbum/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Update::class, [ R::POST]],
|
||||
'/photos/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Lists::class, [R::GET ]],
|
||||
'/photo/create[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Create::class, [ R::POST]],
|
||||
'/photo/delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Delete::class, [ R::POST]],
|
||||
'/photo/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Update::class, [ R::POST]],
|
||||
'/photo[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo::class, [R::GET ]],
|
||||
'/profile/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Profile\Show::class, [R::GET ]],
|
||||
'/photoalbums[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Index::class, [R::GET ]],
|
||||
'/photoalbum[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Show::class, [R::GET ]],
|
||||
'/photoalbum/delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Delete::class, [ R::POST]],
|
||||
'/photoalbum/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photoalbum\Update::class, [ R::POST]],
|
||||
'/photos/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Lists::class, [R::GET ]],
|
||||
'/photo/create[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Create::class, [ R::POST]],
|
||||
'/photo/delete[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Delete::class, [ R::POST]],
|
||||
'/photo/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo\Update::class, [ R::POST]],
|
||||
'/photo[.{extension:json|xml|rss|atom}]' => [Module\Api\Friendica\Photo::class, [R::GET ]],
|
||||
],
|
||||
|
||||
'/gnusocial/config[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\GNUSocial\Config::class, [R::GET ]],
|
||||
'/gnusocial/version[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\GNUSocial\Version::class, [R::GET ]],
|
||||
'/help/test[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\Help\Test::class, [R::GET ]],
|
||||
'/gnusocial/config[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\GNUSocial\Config::class, [R::GET ]],
|
||||
'/gnusocial/version[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\GNUSocial\Version::class, [R::GET ]],
|
||||
'/help/test[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\Help\Test::class, [R::GET ]],
|
||||
|
||||
'/lists' => [
|
||||
'/create[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Create::class, [ R::POST]],
|
||||
'/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Destroy::class, [ R::POST]],
|
||||
'/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Lists::class, [R::GET ]],
|
||||
'/ownerships[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Ownership::class, [R::GET ]],
|
||||
'/statuses[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Statuses::class, [R::GET ]],
|
||||
'/subscriptions[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Lists::class, [R::GET ]],
|
||||
'/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Update::class, [ R::POST]],
|
||||
'/create[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Create::class, [ R::POST]],
|
||||
'/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Destroy::class, [ R::POST]],
|
||||
'/list[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Lists::class, [R::GET ]],
|
||||
'/ownerships[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Ownership::class, [R::GET ]],
|
||||
'/statuses[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Statuses::class, [R::GET ]],
|
||||
'/subscriptions[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Lists::class, [R::GET ]],
|
||||
'/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Lists\Update::class, [ R::POST]],
|
||||
],
|
||||
|
||||
'/media/upload[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Media\Upload::class, [ R::POST]],
|
||||
|
|
@ -127,34 +127,34 @@ $apiRoutes = [
|
|||
'/statusnet/version[.{extension:json|xml|rss|atom}]' => [Module\Api\GNUSocial\GNUSocial\Version::class, [R::GET ]],
|
||||
|
||||
'/statuses' => [
|
||||
'/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Destroy::class, [ R::POST]],
|
||||
'/destroy/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Destroy::class, [ R::POST]],
|
||||
'/followers[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Followers\Lists::class, [R::GET ]],
|
||||
'/friends[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friends\Lists::class, [R::GET ]],
|
||||
'/friends_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\HomeTimeline::class, [R::GET ]],
|
||||
'/home_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\HomeTimeline::class, [R::GET ]],
|
||||
'/mediap[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Update::class, [ R::POST]],
|
||||
'/mentions[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Mentions::class, [R::GET ]],
|
||||
'/mentions_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Mentions::class, [R::GET ]],
|
||||
'/networkpublic_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\NetworkPublicTimeline::class, [R::GET ]],
|
||||
'/public_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\PublicTimeline::class, [R::GET ]],
|
||||
'/replies[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Mentions::class, [R::GET ]],
|
||||
'/retweet[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Retweet::class, [ R::POST]],
|
||||
'/retweet/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Retweet::class, [ R::POST]],
|
||||
'/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Show::class, [R::GET ]],
|
||||
'/show/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Show::class, [R::GET ]],
|
||||
'/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Update::class, [ R::POST]],
|
||||
'/update_with_media[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Update::class, [ R::POST]],
|
||||
'/user_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\UserTimeline::class, [R::GET ]],
|
||||
'/destroy[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Destroy::class, [ R::POST]],
|
||||
'/destroy/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Destroy::class, [ R::POST]],
|
||||
'/followers[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Followers\Lists::class, [R::GET ]],
|
||||
'/friends[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Friends\Lists::class, [R::GET ]],
|
||||
'/friends_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\HomeTimeline::class, [R::GET ]],
|
||||
'/home_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\HomeTimeline::class, [R::GET ]],
|
||||
'/mediap[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Update::class, [ R::POST]],
|
||||
'/mentions[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Mentions::class, [R::GET ]],
|
||||
'/mentions_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Mentions::class, [R::GET ]],
|
||||
'/networkpublic_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\NetworkPublicTimeline::class, [R::GET ]],
|
||||
'/public_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\PublicTimeline::class, [R::GET ]],
|
||||
'/replies[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Mentions::class, [R::GET ]],
|
||||
'/retweet[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Retweet::class, [ R::POST]],
|
||||
'/retweet/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Retweet::class, [ R::POST]],
|
||||
'/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Show::class, [R::GET ]],
|
||||
'/show/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Show::class, [R::GET ]],
|
||||
'/update[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Update::class, [ R::POST]],
|
||||
'/update_with_media[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\Update::class, [ R::POST]],
|
||||
'/user_timeline[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Statuses\UserTimeline::class, [R::GET ]],
|
||||
],
|
||||
|
||||
'/users' => [
|
||||
'/lookup[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Lookup::class, [R::GET ]],
|
||||
'/search[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Search::class, [R::GET ]],
|
||||
'/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Show::class, [R::GET ]],
|
||||
'/show/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Show::class, [R::GET ]],
|
||||
'/lookup[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Lookup::class, [R::GET ]],
|
||||
'/search[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Search::class, [R::GET ]],
|
||||
'/show[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Show::class, [R::GET ]],
|
||||
'/show/{id:\d+}[.{extension:json|xml|rss|atom}]' => [Module\Api\Twitter\Users\Show::class, [R::GET ]],
|
||||
],
|
||||
'/whoami' => [Module\ActivityPub\Whoami::class, [R::GET ]],
|
||||
'/whoami' => [Module\ActivityPub\Whoami::class, [R::GET ]],
|
||||
];
|
||||
|
||||
return [
|
||||
|
|
@ -179,149 +179,149 @@ 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\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 ]],
|
||||
'/accounts/{id:\d+}/identity_proofs' => [Module\Api\Mastodon\Accounts\IdentityProofs::class, [R::GET ]], // Dummy, not supported
|
||||
'/accounts/{id:\d+}/follow' => [Module\Api\Mastodon\Accounts\Follow::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unfollow' => [Module\Api\Mastodon\Accounts\Unfollow::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/block' => [Module\Api\Mastodon\Accounts\Block::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unblock' => [Module\Api\Mastodon\Accounts\Unblock::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/mute' => [Module\Api\Mastodon\Accounts\Mute::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unmute' => [Module\Api\Mastodon\Accounts\Unmute::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/pin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/accounts/{id:\d+}/unpin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/accounts/{id:\d+}/note' => [Module\Api\Mastodon\Accounts\Note::class, [ R::POST]],
|
||||
'/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\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 ]],
|
||||
'/accounts/{id:\d+}/identity_proofs' => [Module\Api\Mastodon\Accounts\IdentityProofs::class, [R::GET ]], // Dummy, not supported
|
||||
'/accounts/{id:\d+}/follow' => [Module\Api\Mastodon\Accounts\Follow::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unfollow' => [Module\Api\Mastodon\Accounts\Unfollow::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/block' => [Module\Api\Mastodon\Accounts\Block::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unblock' => [Module\Api\Mastodon\Accounts\Unblock::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/mute' => [Module\Api\Mastodon\Accounts\Mute::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unmute' => [Module\Api\Mastodon\Accounts\Unmute::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/pin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/accounts/{id:\d+}/unpin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/accounts/{id:\d+}/note' => [Module\Api\Mastodon\Accounts\Note::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/remove_from_followers' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/accounts/familiar_followers' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/accounts/lookup' => [Module\Api\Mastodon\Accounts\Lookup::class, [R::GET ]],
|
||||
'/accounts/relationships' => [Module\Api\Mastodon\Accounts\Relationships::class, [R::GET ]],
|
||||
'/accounts/search' => [Module\Api\Mastodon\Accounts\Search::class, [R::GET ]],
|
||||
'/accounts/update_credentials' => [Module\Api\Mastodon\Accounts\UpdateCredentials::class, [R::PATCH ]],
|
||||
'/accounts/verify_credentials' => [Module\Api\Mastodon\Accounts\VerifyCredentials::class, [R::GET ]],
|
||||
'/accounts/{name}' => [Module\Api\Mastodon\Accounts::class, [R::GET ]],
|
||||
'/admin/accounts/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/accounts/{id:\d+}/{action}' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/dimensions' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/measures' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/retention' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/trends/links' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/trends/statuses' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/trends/tags' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/reports' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/reports/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/reports/{id:\d+}/{action}' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/announcements' => [Module\Api\Mastodon\Announcements::class, [R::GET ]], // Dummy, not supported
|
||||
'/announcements/{id:\d+}/dismiss' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/accounts/familiar_followers' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/accounts/lookup' => [Module\Api\Mastodon\Accounts\Lookup::class, [R::GET ]],
|
||||
'/accounts/relationships' => [Module\Api\Mastodon\Accounts\Relationships::class, [R::GET ]],
|
||||
'/accounts/search' => [Module\Api\Mastodon\Accounts\Search::class, [R::GET ]],
|
||||
'/accounts/update_credentials' => [Module\Api\Mastodon\Accounts\UpdateCredentials::class, [R::PATCH ]],
|
||||
'/accounts/verify_credentials' => [Module\Api\Mastodon\Accounts\VerifyCredentials::class, [R::GET ]],
|
||||
'/accounts/{name}' => [Module\Api\Mastodon\Accounts::class, [R::GET ]],
|
||||
'/admin/accounts/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/accounts/{id:\d+}/{action}' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/dimensions' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/measures' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/retention' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/admin/trends/links' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/trends/statuses' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/trends/tags' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/reports' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/reports/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/admin/reports/{id:\d+}/{action}' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/announcements' => [Module\Api\Mastodon\Announcements::class, [R::GET ]], // Dummy, not supported
|
||||
'/announcements/{id:\d+}/dismiss' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]], // not supported
|
||||
'/announcements/{id:\d+}/reactions/{name}' => [Module\Api\Mastodon\Unimplemented::class, [R::PUT, R::DELETE]], // not supported
|
||||
'/apps' => [Module\Api\Mastodon\Apps::class, [ R::POST]],
|
||||
'/apps/verify_credentials' => [Module\Api\Mastodon\Apps\VerifyCredentials::class, [R::GET ]],
|
||||
'/blocks' => [Module\Api\Mastodon\Blocks::class, [R::GET ]],
|
||||
'/bookmarks' => [Module\Api\Mastodon\Bookmarks::class, [R::GET ]],
|
||||
'/conversations' => [Module\Api\Mastodon\Conversations::class, [R::GET ]],
|
||||
'/conversations/{id:\d+}' => [Module\Api\Mastodon\Conversations::class, [R::DELETE ]],
|
||||
'/conversations/{id:\d+}/read' => [Module\Api\Mastodon\Conversations\Read::class, [R::POST ]],
|
||||
'/custom_emojis' => [Module\Api\Mastodon\CustomEmojis::class, [R::GET ]],
|
||||
'/domain_blocks' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST, R::DELETE]], // not supported
|
||||
'/directory' => [Module\Api\Mastodon\Directory::class, [R::GET ]],
|
||||
'/emails/confirmations' => [Module\Api\Mastodon\Unimplemented::class, [R::POST ]], // not supported
|
||||
'/endorsements' => [Module\Api\Mastodon\Endorsements::class, [R::GET ]], // Dummy, not supported
|
||||
'/favourites' => [Module\Api\Mastodon\Favourited::class, [R::GET ]],
|
||||
'/featured_tags' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST]], // not supported
|
||||
'/featured_tags/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]], // not supported
|
||||
'/featured_tags/suggestions' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/filters/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST, R::PUT, R::DELETE]], // not supported
|
||||
'/follow_requests' => [Module\Api\Mastodon\FollowRequests::class, [R::GET ]],
|
||||
'/follow_requests/{id:\d+}/{action}' => [Module\Api\Mastodon\FollowRequests::class, [ R::POST]],
|
||||
'/followed_tags' => [Module\Api\Mastodon\FollowedTags::class, [R::GET ]],
|
||||
'/instance' => [Module\Api\Mastodon\Instance::class, [R::GET ]],
|
||||
'/instance/activity' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // @todo
|
||||
'/instance/domain_blocks' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // @todo
|
||||
'/instance/extended_description' => [Module\Api\Mastodon\Instance\ExtendedDescription::class, [R::GET ]],
|
||||
'/instance/peers' => [Module\Api\Mastodon\Instance\Peers::class, [R::GET ]],
|
||||
'/instance/rules' => [Module\Api\Mastodon\Instance\Rules::class, [R::GET ]],
|
||||
'/lists' => [Module\Api\Mastodon\Lists::class, [R::GET, R::POST]],
|
||||
'/lists/{id:\d+}' => [Module\Api\Mastodon\Lists::class, [R::GET, R::PUT, R::DELETE]],
|
||||
'/lists/{id:\d+}/accounts' => [Module\Api\Mastodon\Lists\Accounts::class, [R::GET, R::POST, R::DELETE]],
|
||||
'/markers' => [Module\Api\Mastodon\Markers::class, [R::GET, R::POST]],
|
||||
'/media/{id}' => [Module\Api\Mastodon\Media::class, [R::GET, R::PUT ]],
|
||||
'/mutes' => [Module\Api\Mastodon\Mutes::class, [R::GET ]],
|
||||
'/notifications' => [Module\Api\Mastodon\Notifications::class, [R::GET ]],
|
||||
'/notifications/{id:\d+}' => [Module\Api\Mastodon\Notifications::class, [R::GET ]],
|
||||
'/notifications/clear' => [Module\Api\Mastodon\Notifications\Clear::class, [ R::POST]],
|
||||
'/notifications/{id:\d+}/dismiss' => [Module\Api\Mastodon\Notifications\Dismiss::class, [ R::POST]],
|
||||
'/polls/{id:\d+}' => [Module\Api\Mastodon\Polls::class, [R::GET ]],
|
||||
'/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\PushSubscription::class, [R::GET, R::POST, R::PUT, R::DELETE]],
|
||||
'/reports' => [Module\Api\Mastodon\Reports::class, [ R::POST]],
|
||||
'/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::PUT, 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 ]],
|
||||
'/statuses/{id:\d+}/favourite' => [Module\Api\Mastodon\Statuses\Favourite::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unfavourite' => [Module\Api\Mastodon\Statuses\Unfavourite::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/reblog' => [Module\Api\Mastodon\Statuses\Reblog::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unreblog' => [Module\Api\Mastodon\Statuses\Unreblog::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/bookmark' => [Module\Api\Mastodon\Statuses\Bookmark::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unbookmark' => [Module\Api\Mastodon\Statuses\Unbookmark::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/mute' => [Module\Api\Mastodon\Statuses\Mute::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unmute' => [Module\Api\Mastodon\Statuses\Unmute::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/pin' => [Module\Api\Mastodon\Statuses\Pin::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unpin' => [Module\Api\Mastodon\Statuses\Unpin::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/history' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/statuses/{id:\d+}/source' => [Module\Api\Mastodon\Statuses\Source::class, [R::GET ]],
|
||||
'/streaming/direct' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/hashtag' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/hashtag/local' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/health' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/list' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/public' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/public/local' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/public/remote' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/user' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/user/notification' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/suggestions/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]], // not implemented
|
||||
'/tags/{hashtag}' => [Module\Api\Mastodon\Tags::class, [R::GET ]],
|
||||
'/tags/{hashtag}/follow' => [Module\Api\Mastodon\Tags\Follow::class, [ R::POST]],
|
||||
'/tags/{hashtag}/unfollow' => [Module\Api\Mastodon\Tags\Unfollow::class, [ R::POST]],
|
||||
'/timelines/direct' => [Module\Api\Mastodon\Timelines\Direct::class, [R::GET ]],
|
||||
'/timelines/home' => [Module\Api\Mastodon\Timelines\Home::class, [R::GET ]],
|
||||
'/timelines/list/{id}' => [Module\Api\Mastodon\Timelines\ListTimeline::class, [R::GET ]],
|
||||
'/timelines/public' => [Module\Api\Mastodon\Timelines\PublicTimeline::class, [R::GET ]],
|
||||
'/timelines/tag/{hashtag}' => [Module\Api\Mastodon\Timelines\Tag::class, [R::GET ]],
|
||||
'/trends' => [Module\Api\Mastodon\Trends\Tags::class, [R::GET ]],
|
||||
'/trends/links' => [Module\Api\Mastodon\Trends\Links::class, [R::GET ]],
|
||||
'/trends/statuses' => [Module\Api\Mastodon\Trends\Statuses::class, [R::GET ]],
|
||||
'/trends/tags' => [Module\Api\Mastodon\Trends\Tags::class, [R::GET ]],
|
||||
'/apps' => [Module\Api\Mastodon\Apps::class, [ R::POST]],
|
||||
'/apps/verify_credentials' => [Module\Api\Mastodon\Apps\VerifyCredentials::class, [R::GET ]],
|
||||
'/blocks' => [Module\Api\Mastodon\Blocks::class, [R::GET ]],
|
||||
'/bookmarks' => [Module\Api\Mastodon\Bookmarks::class, [R::GET ]],
|
||||
'/conversations' => [Module\Api\Mastodon\Conversations::class, [R::GET ]],
|
||||
'/conversations/{id:\d+}' => [Module\Api\Mastodon\Conversations::class, [R::DELETE ]],
|
||||
'/conversations/{id:\d+}/read' => [Module\Api\Mastodon\Conversations\Read::class, [R::POST ]],
|
||||
'/custom_emojis' => [Module\Api\Mastodon\CustomEmojis::class, [R::GET ]],
|
||||
'/domain_blocks' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST, R::DELETE]], // not supported
|
||||
'/directory' => [Module\Api\Mastodon\Directory::class, [R::GET ]],
|
||||
'/emails/confirmations' => [Module\Api\Mastodon\Unimplemented::class, [R::POST ]], // not supported
|
||||
'/endorsements' => [Module\Api\Mastodon\Endorsements::class, [R::GET ]], // Dummy, not supported
|
||||
'/favourites' => [Module\Api\Mastodon\Favourited::class, [R::GET ]],
|
||||
'/featured_tags' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST]], // not supported
|
||||
'/featured_tags/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]], // not supported
|
||||
'/featured_tags/suggestions' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/filters/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST, R::PUT, R::DELETE]], // not supported
|
||||
'/follow_requests' => [Module\Api\Mastodon\FollowRequests::class, [R::GET ]],
|
||||
'/follow_requests/{id:\d+}/{action}' => [Module\Api\Mastodon\FollowRequests::class, [ R::POST]],
|
||||
'/followed_tags' => [Module\Api\Mastodon\FollowedTags::class, [R::GET ]],
|
||||
'/instance' => [Module\Api\Mastodon\Instance::class, [R::GET ]],
|
||||
'/instance/activity' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // @todo
|
||||
'/instance/domain_blocks' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // @todo
|
||||
'/instance/extended_description' => [Module\Api\Mastodon\Instance\ExtendedDescription::class, [R::GET ]],
|
||||
'/instance/peers' => [Module\Api\Mastodon\Instance\Peers::class, [R::GET ]],
|
||||
'/instance/rules' => [Module\Api\Mastodon\Instance\Rules::class, [R::GET ]],
|
||||
'/lists' => [Module\Api\Mastodon\Lists::class, [R::GET, R::POST]],
|
||||
'/lists/{id:\d+}' => [Module\Api\Mastodon\Lists::class, [R::GET, R::PUT, R::DELETE]],
|
||||
'/lists/{id:\d+}/accounts' => [Module\Api\Mastodon\Lists\Accounts::class, [R::GET, R::POST, R::DELETE]],
|
||||
'/markers' => [Module\Api\Mastodon\Markers::class, [R::GET, R::POST]],
|
||||
'/media/{id}' => [Module\Api\Mastodon\Media::class, [R::GET, R::PUT ]],
|
||||
'/mutes' => [Module\Api\Mastodon\Mutes::class, [R::GET ]],
|
||||
'/notifications' => [Module\Api\Mastodon\Notifications::class, [R::GET ]],
|
||||
'/notifications/{id:\d+}' => [Module\Api\Mastodon\Notifications::class, [R::GET ]],
|
||||
'/notifications/clear' => [Module\Api\Mastodon\Notifications\Clear::class, [ R::POST]],
|
||||
'/notifications/{id:\d+}/dismiss' => [Module\Api\Mastodon\Notifications\Dismiss::class, [ R::POST]],
|
||||
'/polls/{id:\d+}' => [Module\Api\Mastodon\Polls::class, [R::GET ]],
|
||||
'/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\PushSubscription::class, [R::GET, R::POST, R::PUT, R::DELETE]],
|
||||
'/reports' => [Module\Api\Mastodon\Reports::class, [ R::POST]],
|
||||
'/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::PUT, 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 ]],
|
||||
'/statuses/{id:\d+}/favourite' => [Module\Api\Mastodon\Statuses\Favourite::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unfavourite' => [Module\Api\Mastodon\Statuses\Unfavourite::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/reblog' => [Module\Api\Mastodon\Statuses\Reblog::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unreblog' => [Module\Api\Mastodon\Statuses\Unreblog::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/bookmark' => [Module\Api\Mastodon\Statuses\Bookmark::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unbookmark' => [Module\Api\Mastodon\Statuses\Unbookmark::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/mute' => [Module\Api\Mastodon\Statuses\Mute::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unmute' => [Module\Api\Mastodon\Statuses\Unmute::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/pin' => [Module\Api\Mastodon\Statuses\Pin::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unpin' => [Module\Api\Mastodon\Statuses\Unpin::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/history' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/statuses/{id:\d+}/source' => [Module\Api\Mastodon\Statuses\Source::class, [R::GET ]],
|
||||
'/streaming/direct' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/hashtag' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/hashtag/local' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/health' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/list' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/public' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/public/local' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/public/remote' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/user' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/streaming/user/notification' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not implemented
|
||||
'/suggestions/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]], // not implemented
|
||||
'/tags/{hashtag}' => [Module\Api\Mastodon\Tags::class, [R::GET ]],
|
||||
'/tags/{hashtag}/follow' => [Module\Api\Mastodon\Tags\Follow::class, [ R::POST]],
|
||||
'/tags/{hashtag}/unfollow' => [Module\Api\Mastodon\Tags\Unfollow::class, [ R::POST]],
|
||||
'/timelines/direct' => [Module\Api\Mastodon\Timelines\Direct::class, [R::GET ]],
|
||||
'/timelines/home' => [Module\Api\Mastodon\Timelines\Home::class, [R::GET ]],
|
||||
'/timelines/list/{id}' => [Module\Api\Mastodon\Timelines\ListTimeline::class, [R::GET ]],
|
||||
'/timelines/public' => [Module\Api\Mastodon\Timelines\PublicTimeline::class, [R::GET ]],
|
||||
'/timelines/tag/{hashtag}' => [Module\Api\Mastodon\Timelines\Tag::class, [R::GET ]],
|
||||
'/trends' => [Module\Api\Mastodon\Trends\Tags::class, [R::GET ]],
|
||||
'/trends/links' => [Module\Api\Mastodon\Trends\Links::class, [R::GET ]],
|
||||
'/trends/statuses' => [Module\Api\Mastodon\Trends\Statuses::class, [R::GET ]],
|
||||
'/trends/tags' => [Module\Api\Mastodon\Trends\Tags::class, [R::GET ]],
|
||||
],
|
||||
'/v2' => [
|
||||
'/instance' => [Module\Api\Mastodon\InstanceV2::class, [R::GET ]], // not supported
|
||||
'/instance' => [Module\Api\Mastodon\InstanceV2::class, [R::GET ]], // not supported
|
||||
],
|
||||
'/v{version:\d+}' => [
|
||||
'/admin/accounts' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/filters' => [Module\Api\Mastodon\Filters::class, [R::GET ]], // Dummy, not supported
|
||||
'/media' => [Module\Api\Mastodon\Media::class, [ R::POST]],
|
||||
'/search' => [Module\Api\Mastodon\Search::class, [R::GET ]],
|
||||
'/suggestions' => [Module\Api\Mastodon\Suggestions::class, [R::GET ]],
|
||||
'/admin/accounts' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]], // not supported
|
||||
'/filters' => [Module\Api\Mastodon\Filters::class, [R::GET ]], // Dummy, not supported
|
||||
'/media' => [Module\Api\Mastodon\Media::class, [ R::POST]],
|
||||
'/search' => [Module\Api\Mastodon\Search::class, [R::GET ]],
|
||||
'/suggestions' => [Module\Api\Mastodon\Suggestions::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
|
||||
'/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
|
||||
],
|
||||
|
||||
'/about[/more]' => [Module\About::class, [R::GET]],
|
||||
'/about[/more]' => [Module\About::class, [R::GET]],
|
||||
|
||||
'/admin' => [
|
||||
'/admin' => [
|
||||
'[/]' => [Module\Admin\Summary::class, [R::GET]],
|
||||
|
||||
'/addons' => [Module\Admin\Addons\Index::class, [R::GET, R::POST]],
|
||||
|
|
@ -350,20 +350,20 @@ return [
|
|||
|
||||
'/tos' => [Module\Admin\Tos::class, [R::GET, R::POST]],
|
||||
],
|
||||
'/amcd' => [Module\AccountManagementControlDocument::class, [R::GET]],
|
||||
'/acctlink' => [Module\Acctlink::class, [R::GET]],
|
||||
'/apps' => [Module\Apps::class, [R::GET]],
|
||||
'/attach/{item:\d+}' => [Module\Attach::class, [R::GET]],
|
||||
'/amcd' => [Module\AccountManagementControlDocument::class, [R::GET]],
|
||||
'/acctlink' => [Module\Acctlink::class, [R::GET]],
|
||||
'/apps' => [Module\Apps::class, [R::GET]],
|
||||
'/attach/{item:\d+}' => [Module\Attach::class, [R::GET]],
|
||||
|
||||
// Mastodon route used by Fedifind to follow people who set their Webfinger address in their Twitter bio
|
||||
'/authorize_interaction' => [Module\Contact\Follow::class, [R::GET, R::POST]],
|
||||
|
||||
'/babel' => [Module\Debug\Babel::class, [R::GET, R::POST]],
|
||||
'/debug/ap' => [Module\Debug\ActivityPubConversion::class, [R::GET, R::POST]],
|
||||
'/babel' => [Module\Debug\Babel::class, [R::GET, R::POST]],
|
||||
'/debug/ap' => [Module\Debug\ActivityPubConversion::class, [R::GET, R::POST]],
|
||||
|
||||
'/blocklist/domain/download' => [Module\Blocklist\Domain\Download::class, [R::GET]],
|
||||
|
||||
'/bookmarklet' => [Module\Bookmarklet::class, [R::GET]],
|
||||
'/bookmarklet' => [Module\Bookmarklet::class, [R::GET]],
|
||||
|
||||
'/calendar' => [
|
||||
'[/]' => [Module\Calendar\Show::class, [R::GET ]],
|
||||
|
|
@ -381,13 +381,14 @@ return [
|
|||
'/channel[/{content}]' => [Module\Conversation\Channel::class, [R::GET]],
|
||||
'/community[/{content}]' => [Module\Conversation\Community::class, [R::GET]],
|
||||
|
||||
'/compose[/{type}]' => [Module\Item\Compose::class, [R::GET, R::POST]],
|
||||
'/compose[/{type}]' => [Module\Item\Compose::class, [R::GET, R::POST]],
|
||||
|
||||
'/contact' => [
|
||||
'[/]' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}[/]' => [Module\Contact\Profile::class, [R::GET, R::POST]],
|
||||
|
||||
'/{id:\d+}/{action:block|ignore|collapse|update|updateprofile|fetchoutbox}' => [Module\Contact\Profile::class, [R::GET]],
|
||||
|
||||
'/contact' => [
|
||||
'[/]' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}[/]' => [Module\Contact\Profile::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/{action:block|ignore|collapse|update|updateprofile|fetchoutbox}'
|
||||
=> [Module\Contact\Profile::class, [R::GET]],
|
||||
'/{id:\d+}/advanced' => [Module\Contact\Advanced::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/conversations' => [Module\Contact\Conversations::class, [R::GET]],
|
||||
'/{id:\d+}/contacts[/{type}]' => [Module\Contact\Contacts::class, [R::GET]],
|
||||
|
|
@ -420,37 +421,37 @@ return [
|
|||
'/display/feed-item/{uri-id}[.atom]' => [Module\Item\Feed::class, [R::GET]],
|
||||
'/display/feed-item/{uri-id}/{mode:conversation}[.atom]' => [Module\Item\Feed::class, [R::GET]],
|
||||
|
||||
'/featured/{nickname}' => [Module\ActivityPub\Featured::class, [R::GET]],
|
||||
'/featured/{nickname}' => [Module\ActivityPub\Featured::class, [R::GET]],
|
||||
|
||||
'/feed/{nickname}[/{type:posts|comments|replies|activity}]' => [Module\Feed::class, [R::GET]],
|
||||
|
||||
'/feedtest' => [Module\Debug\Feed::class, [R::GET]],
|
||||
|
||||
'/fetch' => [
|
||||
'/fetch' => [
|
||||
'/post/{guid}' => [Module\Diaspora\Fetch::class, [R::GET]],
|
||||
'/status_message/{guid}' => [Module\Diaspora\Fetch::class, [R::GET]],
|
||||
'/reshare/{guid}' => [Module\Diaspora\Fetch::class, [R::GET]],
|
||||
],
|
||||
'/filed' => [Module\Search\Filed::class, [R::GET]],
|
||||
'/filer[/{id:\d+}]' => [Module\Filer\SaveTag::class, [R::GET]],
|
||||
'/filerm/{id:\d+}' => [Module\Filer\RemoveTag::class, [R::GET, R::POST]],
|
||||
'/follow_confirm' => [Module\FollowConfirm::class, [R::POST]],
|
||||
'/followers/{nickname}' => [Module\ActivityPub\Followers::class, [R::GET]],
|
||||
'/following/{nickname}' => [Module\ActivityPub\Following::class, [R::GET]],
|
||||
'/filed' => [Module\Search\Filed::class, [R::GET]],
|
||||
'/filer[/{id:\d+}]' => [Module\Filer\SaveTag::class, [R::GET]],
|
||||
'/filerm/{id:\d+}' => [Module\Filer\RemoveTag::class, [R::GET, R::POST]],
|
||||
'/follow_confirm' => [Module\FollowConfirm::class, [R::POST]],
|
||||
'/followers/{nickname}' => [Module\ActivityPub\Followers::class, [R::GET]],
|
||||
'/following/{nickname}' => [Module\ActivityPub\Following::class, [R::GET]],
|
||||
'/friendica[/{format:json}]' => [Module\Friendica::class, [R::GET]],
|
||||
'/friendica/inbox' => [Module\ActivityPub\Inbox::class, [R::GET, R::POST]],
|
||||
'/friendica/outbox' => [Module\ActivityPub\Outbox::class, [R::GET]],
|
||||
'/friendica/inbox' => [Module\ActivityPub\Inbox::class, [R::GET, R::POST]],
|
||||
'/friendica/outbox' => [Module\ActivityPub\Outbox::class, [R::GET]],
|
||||
|
||||
'/fsuggest/{contact:\d+}' => [Module\FriendSuggest::class, [R::GET, R::POST]],
|
||||
|
||||
'/circle' => [
|
||||
'[/]' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/{circle:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/none' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/new' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/drop/{circle:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/markread/{circle:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/{circle:\d+}/{contact:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/circle' => [
|
||||
'[/]' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/{circle:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/none' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/new' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/drop/{circle:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/markread/{circle:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/{circle:\d+}/{contact:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
'/{circle:\d+}/{command:add|remove}/{contact:\d+}' => [Module\Circle::class, [R::GET, R::POST]],
|
||||
],
|
||||
'/hashtag' => [Module\Hashtag::class, [R::GET]],
|
||||
|
|
@ -460,12 +461,12 @@ return [
|
|||
'/inbox[/{nickname}]' => [Module\ActivityPub\Inbox::class, [R::GET, R::POST]],
|
||||
'/invite' => [Module\Invite::class, [R::GET, R::POST]],
|
||||
|
||||
'/install' => [
|
||||
'[/]' => [Module\Install::class, [R::GET, R::POST]],
|
||||
'/testrewrite' => [Module\Install::class, [R::GET]],
|
||||
'/install' => [
|
||||
'[/]' => [Module\Install::class, [R::GET, R::POST]],
|
||||
'/testrewrite' => [Module\Install::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/item/{id:\d+}' => [
|
||||
'/item/{id:\d+}' => [
|
||||
'/activity/{verb}' => [Module\Item\Activity::class, [ R::POST]],
|
||||
'/follow' => [Module\Item\Follow::class, [ R::POST]],
|
||||
'/complete' => [Module\Item\Complete::class, [ R::POST]],
|
||||
|
|
@ -476,12 +477,12 @@ return [
|
|||
'/star' => [Module\Item\Star::class, [ R::POST]],
|
||||
],
|
||||
|
||||
'/localtime' => [Module\Debug\Localtime::class, [R::GET, R::POST]],
|
||||
'/login' => [Module\Security\Login::class, [R::GET, R::POST]],
|
||||
'/logout' => [Module\Security\Logout::class, [R::GET, R::POST]],
|
||||
'/magic' => [Module\Magic::class, [R::GET]],
|
||||
'/manifest' => [Module\Manifest::class, [R::GET]],
|
||||
'/manifest.json' => [Module\Manifest::class, [R::GET]],
|
||||
'/localtime' => [Module\Debug\Localtime::class, [R::GET, R::POST]],
|
||||
'/login' => [Module\Security\Login::class, [R::GET, R::POST]],
|
||||
'/logout' => [Module\Security\Logout::class, [R::GET, R::POST]],
|
||||
'/magic' => [Module\Magic::class, [R::GET]],
|
||||
'/manifest' => [Module\Manifest::class, [R::GET]],
|
||||
'/manifest.json' => [Module\Manifest::class, [R::GET]],
|
||||
'/friendica.webmanifest' => [Module\Manifest::class, [R::GET]],
|
||||
|
||||
'/media' => [
|
||||
|
|
@ -491,7 +492,7 @@ return [
|
|||
'/photo/upload' => [Module\Media\Photo\Upload::class, [ R::POST]],
|
||||
],
|
||||
|
||||
'/moderation' => [
|
||||
'/moderation' => [
|
||||
'[/]' => [Module\Moderation\Summary::class, [R::GET]],
|
||||
|
||||
'/blocklist/contact' => [Module\Moderation\Blocklist\Contact::class, [R::GET, R::POST]],
|
||||
|
|
@ -514,13 +515,13 @@ return [
|
|||
'/users/deleted' => [Module\Moderation\Users\Deleted::class, [R::GET ]],
|
||||
'/users/create' => [Module\Moderation\Users\Create::class, [R::GET, R::POST]],
|
||||
],
|
||||
'/newmember' => [Module\Welcome::class, [R::GET]],
|
||||
'/nodeinfo/1.0' => [Module\NodeInfo110::class, [R::GET]],
|
||||
'/nodeinfo/2.0' => [Module\NodeInfo120::class, [R::GET]],
|
||||
'/nodeinfo/2.0.json' => [Module\NodeInfo120::class, [R::GET]],
|
||||
'/nodeinfo/2.1' => [Module\NodeInfo121::class, [R::GET]],
|
||||
'/nodeinfo/2.2' => [Module\NodeInfo122::class, [R::GET]],
|
||||
'/nocircle' => [Module\Circle::class, [R::GET]],
|
||||
'/newmember' => [Module\Welcome::class, [R::GET]],
|
||||
'/nodeinfo/1.0' => [Module\NodeInfo110::class, [R::GET]],
|
||||
'/nodeinfo/2.0' => [Module\NodeInfo120::class, [R::GET]],
|
||||
'/nodeinfo/2.0.json' => [Module\NodeInfo120::class, [R::GET]],
|
||||
'/nodeinfo/2.1' => [Module\NodeInfo121::class, [R::GET]],
|
||||
'/nodeinfo/2.2' => [Module\NodeInfo122::class, [R::GET]],
|
||||
'/nocircle' => [Module\Circle::class, [R::GET]],
|
||||
|
||||
'/noscrape' => [
|
||||
'/{nick}' => [Module\NoScrape::class, [R::GET]],
|
||||
|
|
@ -530,16 +531,16 @@ return [
|
|||
'/notes' => [Module\Profile\Notes::class, [R::GET, R::POST]],
|
||||
|
||||
'/notifications' => [
|
||||
'/network[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/system[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/personal[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/home[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/intros[/json]' => [Module\Notifications\Introductions::class, [R::GET, R::POST]],
|
||||
'/intros/all[/json]' => [Module\Notifications\Introductions::class, [R::GET, R::POST]],
|
||||
'/network[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/system[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/personal[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/home[/json]' => [Module\Notifications\Notifications::class, [R::GET, R::POST]],
|
||||
'/intros[/json]' => [Module\Notifications\Introductions::class, [R::GET, R::POST]],
|
||||
'/intros/all[/json]' => [Module\Notifications\Introductions::class, [R::GET, R::POST]],
|
||||
'/intros/{contact:\d+}[/json]' => [Module\Notifications\Introductions::class, [R::GET, R::POST]],
|
||||
],
|
||||
|
||||
'/notification' => [
|
||||
'/notification' => [
|
||||
'[/]' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/mark/all' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/{id:\d+}' => [Module\Notifications\Notification::class, [R::GET, R::POST]],
|
||||
|
|
@ -580,31 +581,31 @@ return [
|
|||
'/{type}/{customsize:\d+}/{nickname_ext}' => [Module\Photo::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/ping' => [Module\Notifications\Ping::class, [R::GET]],
|
||||
'/ping' => [Module\Notifications\Ping::class, [R::GET]],
|
||||
|
||||
'/post' => [
|
||||
'/{post_id}/edit' => [Module\Post\Edit::class, [R::GET ]],
|
||||
'/{post_id}/share' => [Module\Post\Share::class, [R::GET ]],
|
||||
'/{item_id}/tag/add' => [Module\Post\Tag\Add::class, [ R::POST]],
|
||||
'/{item_id}/tag/remove[/{tag_name}]' => [Module\Post\Tag\Remove::class, [R::GET, R::POST]],
|
||||
'/{post_id}/edit' => [Module\Post\Edit::class, [R::GET ]],
|
||||
'/{post_id}/share' => [Module\Post\Share::class, [R::GET ]],
|
||||
'/{item_id}/tag/add' => [Module\Post\Tag\Add::class, [ R::POST]],
|
||||
'/{item_id}/tag/remove[/{tag_name}]' => [Module\Post\Tag\Remove::class, [R::GET, R::POST]],
|
||||
],
|
||||
|
||||
'/pretheme' => [Module\ThemeDetails::class, [R::GET]],
|
||||
'/probe' => [Module\Debug\Probe::class, [R::GET]],
|
||||
'/pretheme' => [Module\ThemeDetails::class, [R::GET]],
|
||||
'/probe' => [Module\Debug\Probe::class, [R::GET]],
|
||||
|
||||
'/profile/{nickname}' => $profileRoutes,
|
||||
'/u/{nickname}' => $profileRoutes,
|
||||
'/~{nickname}' => $profileRoutes,
|
||||
|
||||
'/ostatus/subscribe' => [Module\OStatus\Subscribe::class, [R::GET ]],
|
||||
'/poco' => [Module\User\PortableContacts::class, [R::GET ]],
|
||||
'/ostatus/subscribe' => [Module\OStatus\Subscribe::class, [R::GET ]],
|
||||
'/poco' => [Module\User\PortableContacts::class, [R::GET ]],
|
||||
|
||||
'/search' => [
|
||||
'[/]' => [Module\Search\Index::class, [R::GET ]],
|
||||
'/acl' => [Module\Search\Acl::class, [R::GET, R::POST]],
|
||||
'/saved/add' => [Module\Search\Saved::class, [R::GET ]],
|
||||
'/saved/remove' => [Module\Search\Saved::class, [R::GET ]],
|
||||
'/user/tags' => [Module\Search\Tags::class, [ R::POST]],
|
||||
'[/]' => [Module\Search\Index::class, [R::GET ]],
|
||||
'/acl' => [Module\Search\Acl::class, [R::GET, R::POST]],
|
||||
'/saved/add' => [Module\Search\Saved::class, [R::GET ]],
|
||||
'/saved/remove' => [Module\Search\Saved::class, [R::GET ]],
|
||||
'/user/tags' => [Module\Search\Tags::class, [ R::POST]],
|
||||
],
|
||||
|
||||
'/receive' => [
|
||||
|
|
@ -623,7 +624,7 @@ return [
|
|||
'[/]' => [Module\Settings\Server\Index::class, [R::GET, R::POST]],
|
||||
'/{gsid:\d+}/{action}' => [Module\Settings\Server\Action::class, [R::GET, R::POST]],
|
||||
],
|
||||
'[/]' => [Module\Settings\Account::class, [R::GET, R::POST]],
|
||||
'[/]' => [Module\Settings\Account::class, [R::GET, R::POST]],
|
||||
'/account' => [
|
||||
'[/]' => [Module\Settings\Account::class, [R::GET, R::POST]],
|
||||
'/{open}' => [Module\Settings\Account::class, [R::GET, R::POST]],
|
||||
|
|
@ -636,14 +637,14 @@ return [
|
|||
'/features' => [Module\Settings\Features::class, [R::GET, R::POST]],
|
||||
'/importcontacts' => [Module\Settings\ContactImport::class, [R::GET, R::POST]],
|
||||
'/oauth' => [Module\Settings\OAuth::class, [R::GET, R::POST]],
|
||||
'/profile' => [
|
||||
'[/]' => [Module\Settings\Profile\Index::class, [R::GET, R::POST]],
|
||||
'/photo[/new]' => [Module\Settings\Profile\Photo\Index::class, [R::GET, R::POST]],
|
||||
'/photo/crop/{guid}' => [Module\Settings\Profile\Photo\Crop::class, [R::GET, R::POST]],
|
||||
'/profile' => [
|
||||
'[/]' => [Module\Settings\Profile\Index::class, [R::GET, R::POST]],
|
||||
'/photo[/new]' => [Module\Settings\Profile\Photo\Index::class, [R::GET, R::POST]],
|
||||
'/photo/crop/{guid}' => [Module\Settings\Profile\Photo\Crop::class, [R::GET, R::POST]],
|
||||
],
|
||||
'/removeme' => [Module\Settings\RemoveMe::class, [R::GET, R::POST]],
|
||||
'/userexport[/{action}]' => [Module\Settings\UserExport::class, [R::GET ]],
|
||||
'/2fa' => [
|
||||
'/2fa' => [
|
||||
'[/]' => [Module\Settings\TwoFactor\Index::class, [R::GET, R::POST]],
|
||||
'/recovery' => [Module\Settings\TwoFactor\Recovery::class, [R::GET, R::POST]],
|
||||
'/app_specific' => [Module\Settings\TwoFactor\AppSpecific::class, [R::GET, R::POST]],
|
||||
|
|
@ -656,45 +657,45 @@ return [
|
|||
'/stats/caching' => [Module\StatsCaching::class, [R::GET]],
|
||||
|
||||
'/network' => [
|
||||
'[/{content}]' => [Module\Conversation\Network::class, [R::GET]],
|
||||
'[/{content}]' => [Module\Conversation\Network::class, [R::GET]],
|
||||
'/archive/{from:\d\d\d\d-\d\d-\d\d}[/{to:\d\d\d\d-\d\d-\d\d}]' => [Module\Conversation\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Conversation\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Conversation\Network::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/randprof' => [Module\RandomProfile::class, [R::GET]],
|
||||
'/register' => [Module\Register::class, [R::GET, R::POST]],
|
||||
'/robots.txt' => [Module\RobotsTxt::class, [R::GET]],
|
||||
'/rsd.xml' => [Module\ReallySimpleDiscovery::class, [R::GET]],
|
||||
'/smilies[/json]' => [Module\Smilies::class, [R::GET]],
|
||||
'/statistics.json' => [Module\Statistics::class, [R::GET]],
|
||||
'/toggle_mobile' => [Module\ToggleMobile::class, [R::GET]],
|
||||
'/tos' => [Module\Tos::class, [R::GET]],
|
||||
'/randprof' => [Module\RandomProfile::class, [R::GET]],
|
||||
'/register' => [Module\Register::class, [R::GET, R::POST]],
|
||||
'/robots.txt' => [Module\RobotsTxt::class, [R::GET]],
|
||||
'/rsd.xml' => [Module\ReallySimpleDiscovery::class, [R::GET]],
|
||||
'/smilies[/json]' => [Module\Smilies::class, [R::GET]],
|
||||
'/statistics.json' => [Module\Statistics::class, [R::GET]],
|
||||
'/toggle_mobile' => [Module\ToggleMobile::class, [R::GET]],
|
||||
'/tos' => [Module\Tos::class, [R::GET]],
|
||||
|
||||
'/ping_network' => [
|
||||
'[/]' => [Module\Ping\Network::class, [R::GET]],
|
||||
'[/]' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/archive/{from:\d\d\d\d-\d\d-\d\d}[/{to:\d\d\d\d-\d\d-\d\d}]' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/group/{contact_id:\d+}' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/group/{contact_id:\d+}' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Ping\Network::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/update_channel[/{content}]' => [Module\Update\Channel::class, [R::GET]],
|
||||
'/update_community[/{content}]' => [Module\Update\Community::class, [R::GET]],
|
||||
'/update_channel[/{content}]' => [Module\Update\Channel::class, [R::GET]],
|
||||
'/update_community[/{content}]' => [Module\Update\Community::class, [R::GET]],
|
||||
|
||||
'/update_contact/{id:\d+}/conversations' => [Module\Update\Contact::class, [R::GET]],
|
||||
|
||||
'/update_display' => [Module\Update\Display::class, [R::GET]],
|
||||
'/update_display' => [Module\Update\Display::class, [R::GET]],
|
||||
|
||||
'/update_network' => [
|
||||
'[/]' => [Module\Update\Network::class, [R::GET]],
|
||||
'[/]' => [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]],
|
||||
'/group/{contact_id:\d+}' => [Module\Update\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Update\Network::class, [R::GET]],
|
||||
'/group/{contact_id:\d+}' => [Module\Update\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Update\Network::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/update_notes' => [Module\Update\Notes::class, [R::GET]],
|
||||
'/update_profile' => [Module\Update\Profile::class, [R::GET]],
|
||||
'/update_notes' => [Module\Update\Notes::class, [R::GET]],
|
||||
'/update_profile' => [Module\Update\Profile::class, [R::GET]],
|
||||
|
||||
'/user/import' => [Module\User\Import::class, [R::GET, R::POST]],
|
||||
'/user/import' => [Module\User\Import::class, [R::GET, R::POST]],
|
||||
|
||||
'/view/theme/{theme}/style.pcss' => [Module\Theme::class, [R::GET]],
|
||||
'/viewsrc/{item:\d+}' => [Module\Debug\ItemBody::class, [R::GET]],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue