Merge remote-tracking branch 'upstream/develop' into item-view
This commit is contained in:
commit
122ad0af14
875 changed files with 156972 additions and 153019 deletions
1001
static/dbstructure.config.php
Executable file → Normal file
1001
static/dbstructure.config.php
Executable file → Normal file
File diff suppressed because it is too large
Load diff
67
static/dbview.config.php
Executable file → Normal file
67
static/dbview.config.php
Executable file → Normal file
|
@ -164,6 +164,65 @@ return [
|
|||
LEFT JOIN `tag` ON `post-tag`.`tid` = `tag`.`id`
|
||||
LEFT JOIN `contact` ON `post-tag`.`cid` = `contact`.`id`"
|
||||
],
|
||||
"network-item-view" => [
|
||||
"fields" => [
|
||||
"uri-id" => ["item", "parent-uri-id"],
|
||||
"uri" => ["item", "parent-uri"],
|
||||
"parent" => ["item", "parent"],
|
||||
"received" => ["item", "received"],
|
||||
"commented" => ["item", "commented"],
|
||||
"created" => ["item", "created"],
|
||||
"uid" => ["item", "uid"],
|
||||
"starred" => ["item", "starred"],
|
||||
"mention" => ["item", "mention"],
|
||||
"network" => ["item", "network"],
|
||||
"unseen" => ["item", "unseen"],
|
||||
"gravity" => ["item", "gravity"],
|
||||
"contact-id" => ["item", "contact-id"],
|
||||
"contact-type" => ["ownercontact", "contact-type"],
|
||||
],
|
||||
"query" => "FROM `item`
|
||||
INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent`
|
||||
STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
|
||||
LEFT JOIN `user-item` ON `user-item`.`iid` = `item`.`id` AND `user-item`.`uid` = `thread`.`uid`
|
||||
LEFT JOIN `user-contact` AS `author` ON `author`.`uid` = `thread`.`uid` AND `author`.`cid` = `thread`.`author-id`
|
||||
LEFT JOIN `user-contact` AS `owner` ON `owner`.`uid` = `thread`.`uid` AND `owner`.`cid` = `thread`.`owner-id`
|
||||
LEFT JOIN `contact` AS `ownercontact` ON `ownercontact`.`id` = `thread`.`owner-id`
|
||||
WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
|
||||
AND (NOT `contact`.`readonly` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`)
|
||||
AND (`user-item`.`hidden` IS NULL OR NOT `user-item`.`hidden`)
|
||||
AND (`author`.`blocked` IS NULL OR NOT `author`.`blocked`)
|
||||
AND (`owner`.`blocked` IS NULL OR NOT `owner`.`blocked`)"
|
||||
],
|
||||
"network-thread-view" => [
|
||||
"fields" => [
|
||||
"uri-id" => ["item", "uri-id"],
|
||||
"uri" => ["item", "uri"],
|
||||
"parent-uri-id" => ["item", "parent-uri-id"],
|
||||
"parent" => ["thread", "iid"],
|
||||
"received" => ["thread", "received"],
|
||||
"commented" => ["thread", "commented"],
|
||||
"created" => ["thread", "created"],
|
||||
"uid" => ["thread", "uid"],
|
||||
"starred" => ["thread", "starred"],
|
||||
"mention" => ["thread", "mention"],
|
||||
"network" => ["thread", "network"],
|
||||
"contact-id" => ["thread", "contact-id"],
|
||||
"contact-type" => ["ownercontact", "contact-type"],
|
||||
],
|
||||
"query" => "FROM `thread`
|
||||
STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
|
||||
STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid`
|
||||
LEFT JOIN `user-item` ON `user-item`.`iid` = `item`.`id` AND `user-item`.`uid` = `thread`.`uid`
|
||||
LEFT JOIN `user-contact` AS `author` ON `author`.`uid` = `thread`.`uid` AND `author`.`cid` = `thread`.`author-id`
|
||||
LEFT JOIN `user-contact` AS `owner` ON `owner`.`uid` = `thread`.`uid` AND `owner`.`cid` = `thread`.`owner-id`
|
||||
LEFT JOIN `contact` AS `ownercontact` ON `ownercontact`.`id` = `thread`.`owner-id`
|
||||
WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
|
||||
AND (NOT `contact`.`readonly` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`)
|
||||
AND (`user-item`.`hidden` IS NULL OR NOT `user-item`.`hidden`)
|
||||
AND (`author`.`blocked` IS NULL OR NOT `author`.`blocked`)
|
||||
AND (`owner`.`blocked` IS NULL OR NOT `owner`.`blocked`)"
|
||||
],
|
||||
"owner-view" => [
|
||||
"fields" => [
|
||||
"id" => ["contact", "id"],
|
||||
|
@ -218,18 +277,18 @@ return [
|
|||
"term-date" => ["contact", "term-date"],
|
||||
"last-item" => ["contact", "last-item"],
|
||||
"priority" => ["contact", "priority"],
|
||||
"blocked" => ["contact", "blocked"], /// @todo Check if "blocked" from contact or from the users table
|
||||
"blocked" => ["user", "blocked"],
|
||||
"block_reason" => ["contact", "block_reason"],
|
||||
"readonly" => ["contact", "readonly"],
|
||||
"writable" => ["contact", "writable"],
|
||||
"forum" => ["contact", "forum"],
|
||||
"prv" => ["contact", "prv"],
|
||||
"contact-type" => ["contact", "contact-type"],
|
||||
"manually-approve" => ["contact", "manually-approve"],
|
||||
"hidden" => ["contact", "hidden"],
|
||||
"archive" => ["contact", "archive"],
|
||||
"pending" => ["contact", "pending"],
|
||||
"deleted" => ["contact", "deleted"],
|
||||
"rating" => ["contact", "rating"],
|
||||
"unsearchable" => ["contact", "unsearchable"],
|
||||
"sensitive" => ["contact", "sensitive"],
|
||||
"baseurl" => ["contact", "baseurl"],
|
||||
|
@ -241,7 +300,7 @@ return [
|
|||
"bd" => ["contact", "bd"],
|
||||
"notify_new_posts" => ["contact", "notify_new_posts"],
|
||||
"fetch_further_information" => ["contact", "fetch_further_information"],
|
||||
"ffi_keyword_blacklist" => ["contact", "ffi_keyword_blacklist"],
|
||||
"ffi_keyword_denylist" => ["contact", "ffi_keyword_denylist"],
|
||||
"parent-uid" => ["user", "parent-uid"],
|
||||
"guid" => ["user", "guid"],
|
||||
"nickname" => ["user", "nickname"], /// @todo Replaces all uses of "nickname" with "nick"
|
||||
|
@ -273,7 +332,7 @@ return [
|
|||
"account_removed" => ["user", "account_removed"],
|
||||
"account_expired" => ["user", "account_expired"],
|
||||
"account_expires_on" => ["user", "account_expires_on"],
|
||||
"expire_notification_sent" => ["user", "expire_notification_sent"],
|
||||
"expire_notification_sent" => ["user", "expire_notification_sent"],
|
||||
"def_gid" => ["user", "def_gid"],
|
||||
"allow_cid" => ["user", "allow_cid"],
|
||||
"allow_gid" => ["user", "allow_gid"],
|
||||
|
|
|
@ -32,6 +32,11 @@ return [
|
|||
// Can contain the port number with the syntax "hostname:port".
|
||||
'hostname' => '',
|
||||
|
||||
// port (Integer)
|
||||
// Port of the database server.
|
||||
// Can be used instead of adding a port number to the hostname
|
||||
'port' => null,
|
||||
|
||||
// user (String)
|
||||
// Database user name. Please don't use "root".
|
||||
'username' => '',
|
||||
|
@ -45,8 +50,24 @@ return [
|
|||
'database' => '',
|
||||
|
||||
// charset (String)
|
||||
// Database connexion charset. Changing this value will likely corrupt special characters.
|
||||
// Database connection charset. Changing this value will likely corrupt special characters.
|
||||
'charset' => 'utf8mb4',
|
||||
|
||||
// pdo_emulate_prepares (Boolean)
|
||||
// If enabled, the builtin emulation for prepared statements is used.
|
||||
// This can be used as a workaround for the database error "Prepared statement needs to be re-prepared".
|
||||
'pdo_emulate_prepares' => false,
|
||||
|
||||
// disable_pdo (Boolean)
|
||||
// PDO is used by default (if available). Otherwise MySQLi will be used.
|
||||
'disable_pdo' => false,
|
||||
|
||||
// persistent (Boolean)
|
||||
// This controls if the system should use persistent connections or not.
|
||||
// Persistent connections increase the performance.
|
||||
// On the other hand the number of open connections are higher,
|
||||
// this will most likely increase the system load.
|
||||
'persistent' => false,
|
||||
],
|
||||
'config' => [
|
||||
// admin_email (Comma-separated list)
|
||||
|
@ -67,6 +88,10 @@ return [
|
|||
'php_path' => 'php',
|
||||
],
|
||||
'system' => [
|
||||
// adjust_poll_frequency (Boolean)
|
||||
// Automatically detect and set the best feed poll frequency.
|
||||
'adjust_poll_frequency' => false,
|
||||
|
||||
// allowed_link_protocols (Array)
|
||||
// Allowed protocols in links URLs, add at your own risk. http(s) is always allowed.
|
||||
'allowed_link_protocols' => ['ftp://', 'ftps://', 'mailto:', 'cid:', 'gopher://'],
|
||||
|
@ -88,16 +113,28 @@ return [
|
|||
// chose "Remember me" when logging in is considered logged out.
|
||||
'auth_cookie_lifetime' => 7,
|
||||
|
||||
// big_emojis (Boolean)
|
||||
// Display "Emoji Only" posts in big.
|
||||
'big_emojis' => false,
|
||||
|
||||
// block_local_dir (Boolean)
|
||||
// Deny public access to the local user directory.
|
||||
'block_local_dir' => false,
|
||||
|
||||
// community_no_sharer (Boolean)
|
||||
// Don't display sharing accounts on the global community
|
||||
'community_no_sharer' => false,
|
||||
|
||||
// contact_update_limit (Integer)
|
||||
// How much contacts should be checked at a time?
|
||||
'contact_update_limit' => 100,
|
||||
|
||||
// cron_interval (Integer)
|
||||
// Minimal period in minutes between two calls of the "Cron" worker job.
|
||||
'cron_interval' => 5,
|
||||
|
||||
// cache_driver (database|memcache|memcached|redis)
|
||||
// Whether to use Memcache or Memcached or Redis to store temporary cache.
|
||||
// cache_driver (database|memcache|memcached|redis|apcu)
|
||||
// Whether to use Memcache, Memcached, Redis or APCu to store temporary cache.
|
||||
'cache_driver' => 'database',
|
||||
|
||||
// config_adapter (jit|preload)
|
||||
|
@ -124,9 +161,9 @@ return [
|
|||
// Watchlist of indexes to watch.
|
||||
'db_log_index_watch' => '',
|
||||
|
||||
// db_log_index_blacklist (Comma-separated list)
|
||||
// Blacklist of indexes that shouldn't be watched.
|
||||
'db_log_index_blacklist' => '',
|
||||
// db_log_index_denylist (Comma-separated list)
|
||||
// Deny list of indexes that shouldn't be watched.
|
||||
'db_log_index_denylist' => '',
|
||||
|
||||
// db_loglimit (Integer)
|
||||
// If a database call lasts longer than this value in seconds it is logged.
|
||||
|
@ -148,9 +185,19 @@ return [
|
|||
|
||||
// dbclean-expire-limit (Integer)
|
||||
// This defines the number of items that are to be deleted in a single call.
|
||||
// Reduce this value when you are getting memory issues.
|
||||
// Reduce this value when you are getting lock issues.
|
||||
// A value of 0 disables the deletion process.
|
||||
'dbclean-expire-limit' => 1000,
|
||||
|
||||
// daemon_watchdog (Boolean)
|
||||
// Enable regular checking if the daemon is running.
|
||||
// If it is not running and hadn't been terminated normally, it will be started automatically.
|
||||
'daemon_watchdog' => false,
|
||||
|
||||
// delete_sleeping_processes (Boolean)
|
||||
// Periodically delete waiting database processes.
|
||||
'delete_sleeping_processes' => false,
|
||||
|
||||
// diaspora_test (Boolean)
|
||||
// For development only. Disables the message transfer.
|
||||
'diaspora_test' => false,
|
||||
|
@ -180,6 +227,10 @@ return [
|
|||
// Disable the polling of DFRN and OStatus contacts through onepoll.php.
|
||||
'disable_polling' => false,
|
||||
|
||||
// display_resharer (Boolean)
|
||||
// Display the first resharer as icon and text on a reshared item.
|
||||
'display_resharer' => false,
|
||||
|
||||
// dlogfile (Path)
|
||||
// location of the developer log file.
|
||||
'dlogfile' => '',
|
||||
|
@ -188,19 +239,23 @@ return [
|
|||
// restricts develop log writes to requests originating from this IP address.
|
||||
'dlogip' => '',
|
||||
|
||||
// expire-notify-priority (integer)
|
||||
// Priority for the expirary notification
|
||||
'expire-notify-priority' => PRIORITY_LOW,
|
||||
|
||||
// free_crawls (Integer)
|
||||
// Number of "free" searches when system => permit_crawling is enabled.
|
||||
'free_crawls' => 10,
|
||||
|
||||
// frontend_worker_timeout (Integer)
|
||||
// Value in minutes after we think that a frontend task was killed by the webserver.
|
||||
'frontend_worker_timeout' => 10,
|
||||
|
||||
// groupedit_image_limit (Integer)
|
||||
// Number of contacts at which the group editor should switch from display the profile pictures of the contacts to only display the names.
|
||||
// This can alternatively be set on a per account basis in the pconfig table.
|
||||
'groupedit_image_limit' => 400,
|
||||
|
||||
// gserver_update_limit (Integer)
|
||||
// How much servers should be checked at a time?
|
||||
'gserver_update_limit' => 100,
|
||||
|
||||
// hsts (Boolean)
|
||||
// Enables the sending of HTTP Strict Transport Security headers.
|
||||
'hsts' => false,
|
||||
|
@ -256,6 +311,16 @@ return [
|
|||
// Sets the logging adapter of Friendica globally (monolog, syslog, stream)
|
||||
'logger_config' => 'stream',
|
||||
|
||||
// maintenance_start (String)
|
||||
// Start of the window for the daily maintenance cron call.
|
||||
// The system timezone is used when no timezone is defined here.
|
||||
'maintenance_start' => '01:00 +00:00',
|
||||
|
||||
// maintenance_end (String)
|
||||
// End of the window for the daily maintenance cron call
|
||||
// The system timezone is used when no timezone is defined here.
|
||||
'maintenance_end' => '03:00 +00:00',
|
||||
|
||||
// max_batch_queue (Integer)
|
||||
// Maximum number of batched queue items for a single contact before subsequent messages are discarded.
|
||||
'max_batch_queue' => 1000,
|
||||
|
@ -273,6 +338,12 @@ return [
|
|||
// Maximum number of queue items for a single contact before subsequent messages are discarded.
|
||||
'max_contact_queue' => 500,
|
||||
|
||||
// max_csv_file_size (Integer)
|
||||
// When uploading a CSV with account addresses to follow
|
||||
// in the user settings, this controls the maximum file
|
||||
// size of the upload file.
|
||||
'max_csv_file_size' => 30720,
|
||||
|
||||
// max_feed_items (Integer)
|
||||
// Maximum number of feed items that are fetched and processed. For unlimited items set to 0.
|
||||
'max_feed_items' => 20,
|
||||
|
@ -312,7 +383,11 @@ return [
|
|||
|
||||
// min_poll_interval (Integer)
|
||||
// minimal distance in minutes between two polls for a contact. Reasonable values are between 1 and 59.
|
||||
'min_poll_interval' => 1,
|
||||
'min_poll_interval' => 15,
|
||||
|
||||
// minimum_posting_interval (Integer)
|
||||
// Minimum interval between two feed posts per user
|
||||
'minimum_posting_interval' => 0,
|
||||
|
||||
// no_count (Boolean)
|
||||
// Don't do count calculations (currently only when showing photo albums).
|
||||
|
@ -322,6 +397,10 @@ return [
|
|||
// Don't use OEmbed to fetch more information about a link.
|
||||
'no_oembed' => false,
|
||||
|
||||
// no_redirect_list (Array)
|
||||
// List of domains where HTTP redirects should be ignored.
|
||||
'no_redirect_list' => [],
|
||||
|
||||
// no_smilies (Boolean)
|
||||
// Don't show smilies.
|
||||
'no_smilies' => false,
|
||||
|
@ -365,10 +444,6 @@ return [
|
|||
// - 0 = every minute
|
||||
'pushpoll_frequency' => 3,
|
||||
|
||||
// queue_no_dead_check (Boolean)
|
||||
// Ignore if the target contact or server seems to be dead during queue delivery.
|
||||
'queue_no_dead_check' => false,
|
||||
|
||||
// redis_host (String)
|
||||
// Host name of the redis daemon.
|
||||
'redis_host' => '127.0.0.1',
|
||||
|
@ -389,6 +464,10 @@ return [
|
|||
// Whether to use Cache to store session data or to use PHP native session storage.
|
||||
'session_handler' => 'database',
|
||||
|
||||
// remote_avatar_lookup (Boolean)
|
||||
// Perform an avatar lookup via the activated services for remote contacts
|
||||
'remote_avatar_lookup' => false,
|
||||
|
||||
// remove_multiplicated_lines (Boolean)
|
||||
// If enabled, multiple linefeeds in items are stripped to a single one.
|
||||
'remove_multiplicated_lines' => false,
|
||||
|
@ -431,6 +510,10 @@ return [
|
|||
// Maximum number of posts that a user can send per month with the API. 0 to disable monthly throttling.
|
||||
'throttle_limit_month' => 0,
|
||||
|
||||
// update_active_contacts (Boolean)
|
||||
// When activated, only public contacts will be activated regularly that are used for example in items or tags.
|
||||
'update_active_contacts' => false,
|
||||
|
||||
// username_min_length (Integer)
|
||||
// The minimum character length a username can be.
|
||||
// This length is check once the username has been trimmed and multiple spaces have been collapsed into one.
|
||||
|
@ -455,6 +538,11 @@ return [
|
|||
// Number of worker tasks that are fetched in a single query.
|
||||
'worker_fetch_limit' => 1,
|
||||
|
||||
// worker_fork (Boolean)
|
||||
// Experimental setting. Use pcntl_fork to spawn a new worker process.
|
||||
// Does not work when "worker_multiple_fetch" is enabled (Needs more testing)
|
||||
'worker_fork' => false,
|
||||
|
||||
// worker_jpm (Boolean)
|
||||
// If enabled, it prints out the jobs per minute.
|
||||
'worker_jpm' => false,
|
||||
|
@ -469,6 +557,12 @@ return [
|
|||
// Setting 0 would allow maximum worker queues at all times, which is not recommended.
|
||||
'worker_load_exponent' => 3,
|
||||
|
||||
// worker_multiple_fetch (Boolean)
|
||||
// When activated, the worker fetches jobs for multiple workers (not only for itself).
|
||||
// This is an experimental setting without knowing the performance impact.
|
||||
// Does not work when "worker_fork" is enabled (Needs more testing)
|
||||
'worker_multiple_fetch' => false,
|
||||
|
||||
// worker_defer_limit (Integer)
|
||||
// Per default the systems tries delivering for 15 times before dropping it.
|
||||
'worker_defer_limit' => 15,
|
||||
|
|
|
@ -46,6 +46,7 @@ use Friendica\Database\Database;
|
|||
use Friendica\Factory;
|
||||
use Friendica\Model\Storage\IStorage;
|
||||
use Friendica\Model\User\Cookie;
|
||||
use Friendica\Network;
|
||||
use Friendica\Util;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
@ -80,7 +81,7 @@ return [
|
|||
Config\Cache::class => [
|
||||
'instanceOf' => Factory\ConfigFactory::class,
|
||||
'call' => [
|
||||
['createCache', [], Dice::CHAIN_CALL],
|
||||
['createCache', [$_SERVER], Dice::CHAIN_CALL],
|
||||
],
|
||||
],
|
||||
App\Mode::class => [
|
||||
|
@ -104,7 +105,6 @@ return [
|
|||
Database::class => [
|
||||
'constructParams' => [
|
||||
[Dice::INSTANCE => \Psr\Log\NullLogger::class],
|
||||
$_SERVER,
|
||||
],
|
||||
],
|
||||
/**
|
||||
|
@ -186,14 +186,14 @@ return [
|
|||
Process::class => [
|
||||
'constructParams' => [
|
||||
[Dice::INSTANCE => '$basepath'],
|
||||
getmypid(),
|
||||
],
|
||||
],
|
||||
App\Router::class => [
|
||||
'constructParams' => [
|
||||
$_SERVER, null
|
||||
],
|
||||
'call' => [
|
||||
['loadRoutes', [include __DIR__ . '/routes.config.php'], Dice::CHAIN_CALL],
|
||||
$_SERVER,
|
||||
__DIR__ . '/routes.config.php',
|
||||
null
|
||||
],
|
||||
],
|
||||
L10n::class => [
|
||||
|
@ -219,4 +219,7 @@ return [
|
|||
['getBackend', [], Dice::CHAIN_CALL],
|
||||
],
|
||||
],
|
||||
Network\IHTTPRequest::class => [
|
||||
'instanceOf' => Network\HTTPRequest::class,
|
||||
]
|
||||
];
|
||||
|
|
59
static/env.config.php
Normal file
59
static/env.config.php
Normal file
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (C) 2020, Friendica
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Main mapping table of environment variables to namespaced config values
|
||||
*
|
||||
*/
|
||||
|
||||
return [
|
||||
'MYSQL_HOST' => ['database', 'hostname'],
|
||||
'MYSQL_USERNAME' => ['database', 'username'],
|
||||
'MYSQL_USER' => ['database', 'username'],
|
||||
'MYSQL_PORT' => ['database', 'port'],
|
||||
'MYSQL_PASSWORD' => ['database', 'password'],
|
||||
'MYSQL_DATABASE' => ['database', 'database'],
|
||||
|
||||
// Core variables
|
||||
'FRIENDICA_ADMIN_MAIL' => ['config', 'admin_email'],
|
||||
'FRIENDICA_URL' => ['system', 'url'],
|
||||
'FRIENDICA_TZ' => ['config', 'timezone'],
|
||||
'FRIENDICA_LANG' => ['config', 'language'],
|
||||
'FRIENDICA_SITENAME' => ['config', 'sitename'],
|
||||
|
||||
// Storage
|
||||
'FRIENDICA_DATA' => ['storage', 'name'],
|
||||
'FRIENDICA_DATA_DIR' => ['storage', 'filesystem_path'],
|
||||
|
||||
// Debugging/Profiling
|
||||
'FRIENDICA_DEBUGGING' => ['system', 'debugging'],
|
||||
'FRIENDICA_LOGFILE' => ['system', 'logfile'],
|
||||
'FRIENDICA_LOGLEVEL'=> ['system', 'loglevel'],
|
||||
'FRIENDICA_PROFILING' => ['system', 'profiler'],
|
||||
|
||||
// Caching
|
||||
'FRIENDICA_CACHE_DRIVER' => ['system', 'cache_driver'],
|
||||
'FRIENDICA_SESSION_HANDLER' => ['system', 'session_handler'],
|
||||
'FRIENDICA_LOCK_DRIVER' => ['system', 'lock_driver'],
|
||||
|
||||
// Redis Config
|
||||
'REDIS_HOST' => ['system', 'redis_host'],
|
||||
'REDIS_PORT' => ['system', 'redis_port'],
|
||||
'REDIS_PW' => ['system', 'redis_password'],
|
||||
'REDIS_DB' => ['system', 'redis_db'],
|
||||
];
|
|
@ -30,6 +30,14 @@
|
|||
use Friendica\App\Router as R;
|
||||
use Friendica\Module;
|
||||
|
||||
$profileRoutes = [
|
||||
'' => [Module\Profile\Index::class, [R::GET]],
|
||||
'/profile' => [Module\Profile\Profile::class, [R::GET]],
|
||||
'/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]],
|
||||
];
|
||||
|
||||
return [
|
||||
'/' => [Module\Home::class, [R::GET]],
|
||||
|
||||
|
@ -37,6 +45,7 @@ return [
|
|||
'/host-meta' => [Module\WellKnown\HostMeta::class, [R::GET]],
|
||||
'/nodeinfo' => [Module\WellKnown\NodeInfo::class, [R::GET]],
|
||||
'/webfinger' => [Module\Xrd::class, [R::GET]],
|
||||
'/x-nodeinfo2' => [Module\NodeInfo210::class, [R::GET]],
|
||||
'/x-social-relay' => [Module\WellKnown\XSocialRelay::class, [R::GET]],
|
||||
],
|
||||
|
||||
|
@ -47,16 +56,109 @@ return [
|
|||
|
||||
'/api' => [
|
||||
'/v1' => [
|
||||
'/custom_emojis' => [Module\Api\Mastodon\CustomEmojis::class, [R::GET ]],
|
||||
'/follow_requests' => [Module\Api\Mastodon\FollowRequests::class, [R::GET ]],
|
||||
'/follow_requests/{id:\d+}/{action}' => [Module\Api\Mastodon\FollowRequests::class, [ R::POST]],
|
||||
'/instance' => [Module\Api\Mastodon\Instance::class, [R::GET ]],
|
||||
'/instance/peers' => [Module\Api\Mastodon\Instance\Peers::class, [R::GET ]],
|
||||
'/accounts' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/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+}/followers' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/{id:\d+}/following' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/{id:\d+}/lists' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/{id:\d+}/identity_proofs' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/{id:\d+}/follow' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unfollow' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/block' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unblock' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/mute' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unmute' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/pin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/unpin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/{id:\d+}/note' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/accounts/relationships' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/search' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/verify_credentials' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/accounts/update_credentials' => [Module\Api\Mastodon\Unimplemented::class, [R::PATCH ]],
|
||||
'/admin/accounts' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/admin/accounts/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/admin/accounts/{id:\d+}/{action}' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/admin/reports' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/admin/reports/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/admin/reports/{id:\d+}/{action}' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/announcements' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/announcements/{id:\d+}/dismiss' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/announcements/{id:\d+}/reactions/{name}' => [Module\Api\Mastodon\Unimplemented::class, [R::PUT, R::DELETE]],
|
||||
'/apps' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/apps/verify_credentials' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/blocks' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/bookmarks' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/conversations' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/conversations/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]],
|
||||
'/conversations/{id:\d+}/read' => [Module\Api\Mastodon\Unimplemented::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]],
|
||||
'/directory' => [Module\Api\Mastodon\Directory::class, [R::GET ]],
|
||||
'/endorsements' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/favourites' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/featured_tags' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST]],
|
||||
'/featured_tags/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]],
|
||||
'/featured_tags/suggestions' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/filters' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/filters/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST, R::PUT, R::DELETE]],
|
||||
'/follow_requests' => [Module\Api\Mastodon\FollowRequests::class, [R::GET ]],
|
||||
'/follow_requests/{id:\d+}/{action}' => [Module\Api\Mastodon\FollowRequests::class, [ R::POST]],
|
||||
'/instance' => [Module\Api\Mastodon\Instance::class, [R::GET ]],
|
||||
'/instance/activity' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/instance/peers' => [Module\Api\Mastodon\Instance\Peers::class, [R::GET ]],
|
||||
'/lists' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST]],
|
||||
'/lists/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::PUT, R::DELETE]],
|
||||
'/lists/{id:\d+}/accounts' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST, R::DELETE]],
|
||||
'/markers' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::POST]],
|
||||
'/media' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/media/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::PUT]],
|
||||
'/mutes' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/notifications' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/notifications/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/notifications/clear' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/notifications/{id:\d+}/dismiss' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/polls/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/polls/{id:\d+}/votes' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/preferences' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/reports' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/scheduled_statuses' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/scheduled_statuses/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::PUT, R::DELETE]],
|
||||
'/statuses' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET, R::DELETE]],
|
||||
'/statuses/{id:\d+}/context' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/statuses/{id:\d+}/reblogged_by' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/statuses/{id:\d+}/favourited_by' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/statuses/{id:\d+}/favourite' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unfavourite' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/reblog' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unreblog' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/bookmark' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unbookmark' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/mute' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unmute' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/pin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/statuses/{id:\d+}/unpin' => [Module\Api\Mastodon\Unimplemented::class, [ R::POST]],
|
||||
'/suggestions' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/suggestions/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::DELETE ]],
|
||||
'/timelines/home' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/timelines/list/{id:\d+}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/timelines/public' => [Module\Api\Mastodon\Timelines\PublicTimeline::class, [R::GET ]],
|
||||
'/timelines/tag/{hashtag}' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
'/trends' => [Module\Api\Mastodon\Trends::class, [R::GET ]],
|
||||
],
|
||||
'/v2' => [
|
||||
'/search' => [Module\Api\Mastodon\Unimplemented::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 ]],
|
||||
'/oembed' => [Module\Api\Mastodon\Unimplemented::class, [R::GET ]],
|
||||
],
|
||||
|
||||
'/admin' => [
|
||||
|
@ -69,9 +171,7 @@ return [
|
|||
'/blocklist/contact' => [Module\Admin\Blocklist\Contact::class, [R::GET, R::POST]],
|
||||
'/blocklist/server' => [Module\Admin\Blocklist\Server::class, [R::GET, R::POST]],
|
||||
|
||||
'/dbsync[/check]' => [Module\Admin\DBSync::class, [R::GET]],
|
||||
'/dbsync/{update:\d+}' => [Module\Admin\DBSync::class, [R::GET]],
|
||||
'/dbsync/mark/{update:\d+}' => [Module\Admin\DBSync::class, [R::GET]],
|
||||
'/dbsync[/{action}[/{update:\d+}]]' => [Module\Admin\DBSync::class, [R::GET]],
|
||||
|
||||
'/features' => [Module\Admin\Features::class, [R::GET, R::POST]],
|
||||
'/federation' => [Module\Admin\Federation::class, [R::GET]],
|
||||
|
@ -84,7 +184,7 @@ return [
|
|||
|
||||
'/phpinfo' => [Module\Admin\PhpInfo::class, [R::GET]],
|
||||
|
||||
'/queue[/deferred]' => [Module\Admin\Queue::class, [R::GET]],
|
||||
'/queue[/{status}]' => [Module\Admin\Queue::class, [R::GET]],
|
||||
|
||||
'/site' => [Module\Admin\Site::class, [R::GET, R::POST]],
|
||||
|
||||
|
@ -94,40 +194,46 @@ return [
|
|||
|
||||
'/tos' => [Module\Admin\Tos::class, [R::GET, R::POST]],
|
||||
|
||||
'/users[/{action}/{uid}]' => [Module\Admin\Users::class, [R::GET, R::POST]],
|
||||
'/users[/{action}/{uid}]' => [Module\Admin\Users\Index::class, [R::GET, R::POST]],
|
||||
'/users/active[/{action}/{uid}]' => [Module\Admin\Users\Active::class, [R::GET, R::POST]],
|
||||
'/users/pending[/{action}/{uid}]' => [Module\Admin\Users\Pending::class, [R::GET, R::POST]],
|
||||
'/users/blocked[/{action}/{uid}]' => [Module\Admin\Users\Blocked::class, [R::GET, R::POST]],
|
||||
'/users/deleted' => [Module\Admin\Users\Deleted::class, [R::GET ]],
|
||||
'/users/create' => [Module\Admin\Users\Create::class, [R::GET, R::POST]],
|
||||
],
|
||||
'/amcd' => [Module\AccountManagementControlDocument::class, [R::GET]],
|
||||
'/acctlink' => [Module\Acctlink::class, [R::GET]],
|
||||
'/allfriends/{id:\d+}' => [Module\AllFriends::class, [R::GET]],
|
||||
'/apps' => [Module\Apps::class, [R::GET]],
|
||||
'/attach/{item:\d+}' => [Module\Attach::class, [R::GET]],
|
||||
'/babel' => [Module\Debug\Babel::class, [R::GET, R::POST]],
|
||||
'/debug/ap' => [Module\Debug\ActivityPubConversion::class, [R::GET, R::POST]],
|
||||
'/bookmarklet' => [Module\Bookmarklet::class, [R::GET]],
|
||||
|
||||
'/community[/{content}[/{accounttype}]]' => [Module\Conversation\Community::class, [R::GET]],
|
||||
'/community[/{content}]' => [Module\Conversation\Community::class, [R::GET]],
|
||||
|
||||
'/compose[/{type}]' => [Module\Item\Compose::class, [R::GET, R::POST]],
|
||||
|
||||
'/contact' => [
|
||||
'[/]' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}[/]' => [Module\Contact::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/archive' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/advanced' => [Module\Contact\Advanced::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/block' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/conversations' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/drop' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/ignore' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/poke' => [Module\Contact\Poke::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/posts' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/update' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/updateprofile' => [Module\Contact::class, [R::GET]],
|
||||
'/archived' => [Module\Contact::class, [R::GET]],
|
||||
'/batch' => [Module\Contact::class, [R::GET, R::POST]],
|
||||
'/pending' => [Module\Contact::class, [R::GET]],
|
||||
'/blocked' => [Module\Contact::class, [R::GET]],
|
||||
'/hidden' => [Module\Contact::class, [R::GET]],
|
||||
'/ignored' => [Module\Contact::class, [R::GET]],
|
||||
'/hovercard' => [Module\Contact\Hovercard::class, [R::GET]],
|
||||
'[/]' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}[/]' => [Module\Contact::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/archive' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/advanced' => [Module\Contact\Advanced::class, [R::GET, R::POST]],
|
||||
'/{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+}/poke' => [Module\Contact\Poke::class, [R::GET, R::POST]],
|
||||
'/{id:\d+}/posts' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/update' => [Module\Contact::class, [R::GET]],
|
||||
'/{id:\d+}/updateprofile' => [Module\Contact::class, [R::GET]],
|
||||
'/archived' => [Module\Contact::class, [R::GET]],
|
||||
'/batch' => [Module\Contact::class, [R::GET, R::POST]],
|
||||
'/pending' => [Module\Contact::class, [R::GET]],
|
||||
'/blocked' => [Module\Contact::class, [R::GET]],
|
||||
'/hidden' => [Module\Contact::class, [R::GET]],
|
||||
'/ignored' => [Module\Contact::class, [R::GET]],
|
||||
'/hovercard' => [Module\Contact\Hovercard::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/credits' => [Module\Credits::class, [R::GET]],
|
||||
|
@ -150,12 +256,14 @@ return [
|
|||
'/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]],
|
||||
'/follow_confirm' => [Module\FollowConfirm::class, [R::GET, R::POST]],
|
||||
'/followers/{owner}' => [Module\Followers::class, [R::GET]],
|
||||
'/following/{owner}' => [Module\Following::class, [R::GET]],
|
||||
'/friendica[/json]' => [Module\Friendica::class, [R::GET]],
|
||||
'/friendica/inbox' => [Module\Inbox::class, [R::GET, R::POST]],
|
||||
|
||||
'/fsuggest/{contact:\d+}' => [Module\FriendSuggest::class, [R::GET, R::POST]],
|
||||
|
||||
|
@ -195,7 +303,8 @@ return [
|
|||
'/manifest' => [Module\Manifest::class, [R::GET]],
|
||||
'/modexp/{nick}' => [Module\PublicRSAKey::class, [R::GET]],
|
||||
'/newmember' => [Module\Welcome::class, [R::GET]],
|
||||
'/nodeinfo/{version}' => [Module\NodeInfo::class, [R::GET]],
|
||||
'/nodeinfo/1.0' => [Module\NodeInfo110::class, [R::GET]],
|
||||
'/nodeinfo/2.0' => [Module\NodeInfo120::class, [R::GET]],
|
||||
'/nogroup' => [Module\Group::class, [R::GET]],
|
||||
|
||||
'/noscrape' => [
|
||||
|
@ -218,7 +327,10 @@ return [
|
|||
'/mark/all' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/{id:\d+}' => [Module\Notifications\Notification::class, [R::GET, R::POST]],
|
||||
],
|
||||
'/objects/{guid}' => [Module\Objects::class, [R::GET]],
|
||||
'/oauth/authorize' => [Module\Api\Mastodon\Unimplemented::class, [R::GET]],
|
||||
'/oauth/revoke' => [Module\Api\Mastodon\Unimplemented::class, [R::POST]],
|
||||
'/oauth/token' => [Module\Api\Mastodon\Unimplemented::class, [R::POST]],
|
||||
'/objects/{guid}[/{activity}]' => [Module\Objects::class, [R::GET]],
|
||||
|
||||
'/oembed' => [
|
||||
'/b2h' => [Module\Oembed::class, [R::GET]],
|
||||
|
@ -230,6 +342,8 @@ return [
|
|||
'/openid' => [Module\Security\OpenID::class, [R::GET]],
|
||||
'/opensearch' => [Module\OpenSearch::class, [R::GET]],
|
||||
|
||||
'/permission/tooltip/{type}/{id:\d+}' => [Module\PermissionTooltip::class, [R::GET]],
|
||||
|
||||
'/photo' => [
|
||||
'/{name}' => [Module\Photo::class, [R::GET]],
|
||||
'/{type}/{name}' => [Module\Photo::class, [R::GET]],
|
||||
|
@ -240,12 +354,11 @@ return [
|
|||
'/pretheme' => [Module\ThemeDetails::class, [R::GET]],
|
||||
'/probe' => [Module\Debug\Probe::class, [R::GET]],
|
||||
|
||||
'/profile' => [
|
||||
'/{nickname}' => [Module\Profile\Index::class, [R::GET]],
|
||||
'/{nickname}/profile' => [Module\Profile\Profile::class, [R::GET]],
|
||||
'/{nickname}/contacts[/{type}]' => [Module\Profile\Contacts::class, [R::GET]],
|
||||
'/{nickname}/status[/{category}[/{date1}[/{date2}]]]' => [Module\Profile\Status::class, [R::GET]],
|
||||
],
|
||||
'/proofs' => [Module\Api\Mastodon\Unimplemented::class, [R::GET]],
|
||||
|
||||
'/profile/{nickname}' => $profileRoutes,
|
||||
'/u/{nickname}' => $profileRoutes,
|
||||
'/~{nickname}' => $profileRoutes,
|
||||
|
||||
'/proxy' => [
|
||||
'[/]' => [Module\Proxy::class, [R::GET]],
|
||||
|
@ -283,6 +396,13 @@ return [
|
|||
'/userexport[/{action}]' => [Module\Settings\UserExport::class, [R::GET, R::POST]],
|
||||
],
|
||||
|
||||
'/network' => [
|
||||
'[/]' => [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]],
|
||||
'/forum/{contact_id:\d+}' => [Module\Conversation\Network::class, [R::GET]],
|
||||
'/group/{group_id:\d+}' => [Module\Conversation\Network::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/randprof' => [Module\RandomProfile::class, [R::GET]],
|
||||
'/register' => [Module\Register::class, [R::GET, R::POST]],
|
||||
'/remote_follow/{profile}' => [Module\RemoteFollow::class, [R::GET, R::POST]],
|
||||
|
@ -294,7 +414,8 @@ return [
|
|||
'/toggle_mobile' => [Module\ToggleMobile::class, [R::GET]],
|
||||
'/tos' => [Module\Tos::class, [R::GET]],
|
||||
|
||||
'/update_community[/{content}[/{accounttype}]]' => [Module\Update\Community::class, [R::GET]],
|
||||
'/update_community[/{content}]' => [Module\Update\Community::class, [R::GET]],
|
||||
'/update_network' => [Module\Update\Network::class, [R::GET]],
|
||||
'/update_profile' => [Module\Update\Profile::class, [R::GET]],
|
||||
|
||||
'/view/theme/{theme}/style.pcss' => [Module\Theme::class, [R::GET]],
|
||||
|
|
|
@ -60,6 +60,30 @@ return [
|
|||
// Themes users can change to in their settings.
|
||||
'allowed_themes' => 'quattro,vier,duepuntozero,smoothly',
|
||||
|
||||
// curl_timeout (Integer)
|
||||
// Value is in seconds. Set to 0 for unlimited (not recommended).
|
||||
'curl_timeout' => 60,
|
||||
|
||||
// dbclean (Boolean)
|
||||
// Remove old remote items, orphaned database records and old content from some other helper tables.
|
||||
'dbclean' => false,
|
||||
|
||||
// dbclean-expire-days (Integer)
|
||||
// When the database cleanup is enabled, this defines the days after which remote items will be deleted.
|
||||
// Own items, and marked or filed items are always kept. 0 disables this behaviour.
|
||||
'dbclean-expire-days' => 0,
|
||||
|
||||
// dbclean-expire-unclaimed (Integer)
|
||||
// When the database cleanup is enabled, this defines the days after which unclaimed remote items
|
||||
// (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general
|
||||
// lifespan value of remote items if set to 0.
|
||||
'dbclean-expire-unclaimed' => 90,
|
||||
|
||||
// dbclean_expire_conversation (Integer)
|
||||
// The conversation data is used for ActivityPub and OStatus, as well as for debug purposes.
|
||||
// It should be safe to remove it after 14 days, default is 90 days.
|
||||
'dbclean_expire_conversation' => 90,
|
||||
|
||||
// debugging (boolean)
|
||||
// Enable/Disable Debugging (logging)
|
||||
'debugging' => false,
|
||||
|
@ -73,6 +97,10 @@ return [
|
|||
// URL of the global directory.
|
||||
'directory' => 'https://dir.friendica.social',
|
||||
|
||||
// explicit_content (Boolean)
|
||||
// Set this to announce that your node is used mostly for explicit content that might not be suited for minors.
|
||||
'explicit_content' => false,
|
||||
|
||||
// forbidden_nicknames (Comma-separated list)
|
||||
// Prevents users from registering the specified nicknames on this node.
|
||||
// Default value comprises classic role names from RFC 2142.
|
||||
|
@ -108,19 +136,41 @@ return [
|
|||
// Maximum size in bytes of an uploaded photo.
|
||||
'maximagesize' => 800000,
|
||||
|
||||
// maxloadavg (Integer)
|
||||
// Maximum system load before delivery and poll processes are deferred.
|
||||
'maxloadavg' => 20,
|
||||
|
||||
// maxloadavg_frontend (Integer)
|
||||
// Maximum system load before the frontend quits service - default 50.
|
||||
'maxloadavg_frontend' => 50,
|
||||
|
||||
// min_memory (Integer)
|
||||
// Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated).
|
||||
'min_memory' => 0,
|
||||
|
||||
// no_regfullname (Boolean)
|
||||
// Allow pseudonyms (true) or enforce a space between first name and last name in Full name, as an anti spam measure (false).
|
||||
'no_regfullname' => true,
|
||||
|
||||
// optimize_max_tablesize (Integer)
|
||||
// Maximum table size (in MB) for the automatic optimization.
|
||||
// -1 to disable automatic optimization.
|
||||
// 0 to use internal default (100MB)
|
||||
'optimize_max_tablesize' => -1,
|
||||
// optimize_tables (Boolean)
|
||||
// Periodically (once an hour) run an "optimize table" command for cache tables
|
||||
'optimize_tables' => false,
|
||||
|
||||
// maxloadavg (Integer)
|
||||
// Maximum system load before delivery and poll processes are deferred.
|
||||
'maxloadavg' => 20,
|
||||
// relay_deny_tags (String)
|
||||
// Comma separated list of tags that are rejected.
|
||||
'relay_deny_tags' => '',
|
||||
|
||||
// relay_server (String)
|
||||
// Address of the relay server where public posts should be send to.
|
||||
'relay_server' => 'https://social-relay.isurf.ca',
|
||||
|
||||
// relay_server_tags (String)
|
||||
// Comma separated list of tags for the "tags" subscription.
|
||||
'relay_server_tags' => '',
|
||||
|
||||
// relay_user_tags (Boolean)
|
||||
// If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".
|
||||
'relay_user_tags' => true,
|
||||
|
||||
// rino_encrypt (Integer)
|
||||
// Server-to-server private message encryption (RINO).
|
||||
|
@ -140,12 +190,6 @@ return [
|
|||
// The fully-qualified URL of this Friendica node.
|
||||
// Used by the worker in a non-HTTP execution environment.
|
||||
'url' => '',
|
||||
|
||||
// max_csv_file_size (Integer)
|
||||
// When uploading a CSV with account addresses to follow
|
||||
// in the user settings, this controls the maximum file
|
||||
// size of the upload file.
|
||||
'max_csv_file_size' => 30720,
|
||||
],
|
||||
|
||||
// Used in the admin settings to lock certain features
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue