|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Util\Site;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
|
|
|
|
|
|
class Config
|
|
|
|
|
{
|
|
|
|
|
const CACHE_KEY = 'api:site:configuration:_v0.9';
|
|
|
|
|
|
|
|
|
|
public static function get()
|
|
|
|
|
{
|
|
|
|
|
return Cache::remember(self::CACHE_KEY, 900, function () {
|
|
|
|
|
$hls = [
|
|
|
|
|
'enabled' => config('media.hls.enabled'),
|
|
|
|
|
];
|
|
|
|
|
if (config('media.hls.enabled')) {
|
|
|
|
|
$hls = [
|
|
|
|
|
'enabled' => true,
|
|
|
|
|
'debug' => (bool) config('media.hls.debug'),
|
|
|
|
|
'p2p' => (bool) config('media.hls.p2p'),
|
|
|
|
|
'p2p_debug' => (bool) config('media.hls.p2p_debug'),
|
|
|
|
|
'tracker' => config('media.hls.tracker'),
|
|
|
|
|
'ice' => config('media.hls.ice'),
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
'version' => config('pixelfed.version'),
|
|
|
|
|
'open_registration' => (bool) config_cache('pixelfed.open_registration'),
|
Staging (#5978)
* Added current title as value for input so that the current value remains stored by default
* Added parameter 'show_legal_notice_link' => (bool) config_cache('instance.has_legal_notice'),
* Added conditional display of a link to legal notice if the page is active
* Added key 'legalNotice'
* feat translate story
* translate auth
- register
- login
* add remove follow
* Update ApiV1Controller.php
Co-Authored-By: Mathieu <385764+Casmo@users.noreply.github.com>
* New translations web.php (Chinese Simplified)
[ci skip]
* Added current title as value for input so that the current value remains stored by default
* Added parameter 'show_legal_notice_link' => (bool) config_cache('instance.has_legal_notice'),
* Added conditional display of a link to legal notice if the page is active
* Added key 'legalNotice'
* add missing key
* add missing keys
* New translations web.php (Portuguese, Brazilian)
[ci skip]
* New translations web.php (Turkish)
[ci skip]
* New translations web.php (Italian)
[ci skip]
* translate custom filter
* New translations web.php (Italian)
[ci skip]
* use configured alt text length limit when uploading multiple photos
* in notifications sidebar, show popover on shared posts too, not just liked posts
* use case insensitive search when tagging accounts
* New translations web.php (Portuguese, Brazilian)
[ci skip]
* Generic OIDC Support
* Everything should be configurable by env variables
* Basic request tests
* Fixes for items highlighted by review.ai
* Consider using `hash_equals()` instead of `==` when comparing the state values to prevent timing attacks:
`abort_unless(hash_equals($request->input('state'), $request->session()->pull('oauth2state')), 400, 'invalid
state');`
* For better data integrity, consider adding a foreign key constraint to the user_id column: `$table-
>foreign('user_id')->references('id')->on('users')->onDelete('cascade');`
* Does the OIDC provider guarantee that the username field exists in the userInfo data? Consider adding a
null check or fallback: `$userInfoData[config('remote-auth.oidc.field_username')] ?? null`
* field isnt accessTokenResourceOwnerId but responseResourceOwnerId
* New translations web.php (Dutch)
[ci skip]
* Fix components
* Update LandingService and Config util to properly support the legal_notice setting
* Update footer to use legalNotice i18n
* Update i18n
* Update sidebar with gap padding for footer links
* Update compiled assets
* Update i18n json
* Update OIDC config with comments, and disable tests as we dont have db tests configured
* Update remove_from_followers api endpoint
* Update i18n
* Update compiled assets
* Update changelog
* New supported formats, Preserve ICC Color Profiles, libvips support
Update image pipeline to handle avif, heic and webp and preserve ICC color profiles and added libvips support.
* Fix tests
* Update CHANGELOG.md
---------
Co-authored-by: Samy Elshamy <elshamy@coderbutze.de>
Co-authored-by: Felipe Mateus <eu@felipemateus.com>
Co-authored-by: Mathieu <385764+Casmo@users.noreply.github.com>
Co-authored-by: Mackenzie Morgan <macoafi@gmail.com>
Co-authored-by: Gavin Mogan <git@gavinmogan.com>
1 year ago
|
|
|
'show_legal_notice_link' => (bool) config('instance.has_legal_notice'),
|
|
|
|
|
'logo' => config('app.logo'),
|
|
|
|
|
'uploader' => [
|
|
|
|
|
'max_photo_size' => (int) config_cache('pixelfed.max_photo_size'),
|
|
|
|
|
'max_caption_length' => (int) config_cache('pixelfed.max_caption_length'),
|
|
|
|
|
'max_altext_length' => (int) config_cache('pixelfed.max_altext_length'),
|
|
|
|
|
'album_limit' => (int) config_cache('pixelfed.max_album_length'),
|
|
|
|
|
'image_quality' => (int) config_cache('pixelfed.image_quality'),
|
|
|
|
|
|
|
|
|
|
'max_collection_length' => (int) config_cache('pixelfed.max_collection_length'),
|
|
|
|
|
|
|
|
|
|
'optimize_image' => (bool) config_cache('pixelfed.optimize_image'),
|
|
|
|
|
'optimize_video' => (bool) config_cache('pixelfed.optimize_video'),
|
|
|
|
|
|
|
|
|
|
'media_types' => config_cache('pixelfed.media_types'),
|
|
|
|
|
'mime_types' => config_cache('pixelfed.media_types') ? explode(',', config_cache('pixelfed.media_types')) : [],
|
|
|
|
|
'enforce_account_limit' => (bool) config_cache('pixelfed.enforce_account_limit'),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
'activitypub' => [
|
|
|
|
|
'enabled' => (bool) config_cache('federation.activitypub.enabled'),
|
|
|
|
|
'remote_follow' => config('federation.activitypub.remoteFollow'),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
'ab' => config('exp'),
|
|
|
|
|
|
|
|
|
|
'site' => [
|
|
|
|
|
'name' => config_cache('app.name'),
|
|
|
|
|
'domain' => config('pixelfed.domain.app'),
|
|
|
|
|
'url' => config('app.url'),
|
|
|
|
|
'description' => config_cache('app.short_description'),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
'account' => [
|
|
|
|
|
'max_avatar_size' => config('pixelfed.max_avatar_size'),
|
|
|
|
|
'max_bio_length' => config('pixelfed.max_bio_length'),
|
|
|
|
|
'max_name_length' => config('pixelfed.max_name_length'),
|
|
|
|
|
'min_password_length' => config('pixelfed.min_password_length'),
|
|
|
|
|
'max_account_size' => config('pixelfed.max_account_size'),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
'username' => [
|
|
|
|
|
'remote' => [
|
|
|
|
|
'formats' => config('instance.username.remote.formats'),
|
|
|
|
|
'format' => config('instance.username.remote.format'),
|
|
|
|
|
'custom' => config('instance.username.remote.custom'),
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
'features' => [
|
|
|
|
|
'timelines' => [
|
|
|
|
|
'local' => true,
|
|
|
|
|
'network' => (bool) config('federation.network_timeline'),
|
|
|
|
|
],
|
|
|
|
|
'mobile_apis' => (bool) config_cache('pixelfed.oauth_enabled'),
|
|
|
|
|
'mobile_registration' => (bool) config_cache('pixelfed.open_registration') && config('auth.in_app_registration'),
|
|
|
|
|
'stories' => (bool) config_cache('instance.stories.enabled'),
|
|
|
|
|
'video' => Str::contains(config_cache('pixelfed.media_types'), 'video/mp4'),
|
|
|
|
|
'import' => [
|
|
|
|
|
'instagram' => (bool) config_cache('pixelfed.import.instagram.enabled'),
|
|
|
|
|
'mastodon' => false,
|
|
|
|
|
'pixelfed' => false,
|
|
|
|
|
],
|
|
|
|
|
'hls' => $hls,
|
|
|
|
|
'groups' => (bool) config('groups.enabled'),
|
|
|
|
|
],
|
|
|
|
|
];
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function refresh()
|
|
|
|
|
{
|
|
|
|
|
Cache::forget(self::CACHE_KEY);
|
|
|
|
|
|
|
|
|
|
return self::get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function json()
|
|
|
|
|
{
|
|
|
|
|
return json_encode(self::get(), JSON_FORCE_OBJECT);
|
|
|
|
|
}
|
|
|
|
|
}
|