diff --git a/.env.docker b/.env.docker index cdc5ad9c6..d97beea8f 100644 --- a/.env.docker +++ b/.env.docker @@ -964,7 +964,7 @@ TZ="${APP_TIMEZONE}" # Combined with [DOCKER_APP_RUNTIME] and [PHP_VERSION] configured # elsewhere in this file, the final Docker tag is computed. # @dottie/validate required -DOCKER_APP_RELEASE="branch-jippi-fork" +DOCKER_APP_RELEASE="v0.12" # The PHP version to use for [web] and [worker] container # @@ -981,7 +981,7 @@ DOCKER_APP_RELEASE="branch-jippi-fork" # *only* the version part. The rest of the full tag is derived from # the [DOCKER_APP_RUNTIME] and [PHP_DEBIAN_RELEASE] settings # @dottie/validate required -DOCKER_APP_PHP_VERSION="8.2" +DOCKER_APP_PHP_VERSION="8.3" # The container runtime to use. # @@ -993,7 +993,7 @@ DOCKER_APP_RUNTIME="apache" # # Examlpe: [bookworm] or [bullseye] # @dottie/validate required,oneof=bookworm bullseye -DOCKER_APP_DEBIAN_RELEASE="bullseye" +DOCKER_APP_DEBIAN_RELEASE="bookworm" # The [php] Docker image base type # @@ -1010,7 +1010,7 @@ DOCKER_APP_BASE_TYPE="apache" # * "your/fork" to pull from a custom fork # # @dottie/validate required -DOCKER_APP_IMAGE="ghcr.io/jippi/pixelfed" +DOCKER_APP_IMAGE="ghcr.io/jippi/docker-pixelfed" # Pixelfed version (image tag) to pull from the registry. # diff --git a/.env.example b/.env.example index 79ce65337..959c00e9f 100644 --- a/.env.example +++ b/.env.example @@ -9,6 +9,7 @@ ENFORCE_EMAIL_VERIFICATION="false" PF_MAX_USERS="1000" OAUTH_ENABLED="true" ENABLE_CONFIG_CACHE=true +INSTANCE_DISCOVER_PUBLIC="true" # Media Configuration PF_OPTIMIZE_IMAGES="true" diff --git a/CHANGELOG.md b/CHANGELOG.md index c805e84ae..6fabcd1d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ - Update ComposeController, add max_media_attachments attribute ([17918cbe](https://github.com/pixelfed/pixelfed/commit/17918cbe)) - Fix GroupController, move groups enabled check to each method to fix route:list ([f260572e](https://github.com/pixelfed/pixelfed/commit/f260572e)) - Update MediaStorageService, handle local media deletes after successful S3 upload ([280f63dc](https://github.com/pixelfed/pixelfed/commit/280f63dc)) +- Update status twitter:card to summary_large_image for images/albums ([9a5a9f55](https://github.com/pixelfed/pixelfed/commit/9a5a9f55)) - ([](https://github.com/pixelfed/pixelfed/commit/)) ## [v0.12.4 (2024-11-08)](https://github.com/pixelfed/pixelfed/compare/v0.12.4...dev) diff --git a/Dockerfile b/Dockerfile index 3f27c84a2..29d22f611 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,11 +28,11 @@ ARG DOTTIE_VERSION="v0.9.5" ### # See: https://hub.docker.com/_/php/tags -ARG PHP_VERSION="8.1" +ARG PHP_VERSION="8.3" # See: https://github.com/docker-library/docs/blob/master/php/README.md#image-variants ARG PHP_BASE_TYPE="apache" -ARG PHP_DEBIAN_RELEASE="bullseye" +ARG PHP_DEBIAN_RELEASE="bookworm" ARG RUNTIME_UID=33 # often called 'www-data' ARG RUNTIME_GID=33 # often called 'www-data' diff --git a/app/Console/Commands/ImportCities.php b/app/Console/Commands/ImportCities.php index 1056f5ce2..6d5a31aac 100644 --- a/app/Console/Commands/ImportCities.php +++ b/app/Console/Commands/ImportCities.php @@ -74,7 +74,6 @@ class ImportCities extends Command */ public function handle() { - $old_memory_limit = ini_get('memory_limit'); ini_set('memory_limit', '256M'); $path = storage_path('app/cities.json'); @@ -137,7 +136,6 @@ class ImportCities extends Command $this->line(''); $this->info('Successfully imported ' . $cityCount . ' entries!'); $this->line(''); - ini_set('memory_limit', $old_memory_limit); return; } diff --git a/app/Console/Commands/TransformImports.php b/app/Console/Commands/TransformImports.php index 6b6efa6e3..fe793ce40 100644 --- a/app/Console/Commands/TransformImports.php +++ b/app/Console/Commands/TransformImports.php @@ -103,7 +103,7 @@ class TransformImports extends Command continue; } - $caption = $ip->caption; + $caption = $ip->caption ?? ""; $status = new Status; $status->profile_id = $pid; $status->caption = $caption; diff --git a/package-lock.json b/package-lock.json index 2c64259da..1c495f4a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "vue-loading-overlay": "^3.3.3", "vue-timeago": "^5.1.2", "vue-tribute": "^1.0.7", - "webgl-media-editor": "^0.0.1", + "webgl-media-editor": "^0.0.6", "zuck.js": "^1.6.0" }, "devDependencies": { @@ -2323,6 +2323,12 @@ "m3u8-parser": "~4.7.1" } }, + "node_modules/@reactively/core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@reactively/core/-/core-0.0.8.tgz", + "integrity": "sha512-5uAnNf2gQSm3gM7z6Lx079H1/MuDQQI+5aYfwyDFGR9nHZj8yblLY/6aOJVWp+NcBwXVBKuWQ28qWHD9F1qN1w==", + "license": "ISC" + }, "node_modules/@thaunknown/simple-peer": { "version": "10.0.11", "resolved": "https://registry.npmjs.org/@thaunknown/simple-peer/-/simple-peer-10.0.11.tgz", @@ -5645,6 +5651,15 @@ "node": ">=8" } }, + "node_modules/fine-jsx": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/fine-jsx/-/fine-jsx-0.0.5.tgz", + "integrity": "sha512-UKQ0ymyZnA605yf7np/wAv3iTs6i9oRKgyYmz+dX+F3VanYEBr60zRQ+WPcYzXMtl9NghNxT736qHfDBjoXVDg==", + "license": "AGPL-3.0-only", + "dependencies": { + "@reactively/core": "^0.0.8" + } + }, "node_modules/fizzy-ui-utils": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fizzy-ui-utils/-/fizzy-ui-utils-2.0.7.tgz", @@ -10749,16 +10764,28 @@ "node": ">= 8" } }, + "node_modules/webgl-effects": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/webgl-effects/-/webgl-effects-0.0.3.tgz", + "integrity": "sha512-P+qxcO0QyydUnHHwnsge2ckou85Pnsdgn0BKAjrhD9LiPFz5i2hq8rT8AdS7wNdXrXyqlM1Y0id+AB0gKTDtpQ==", + "license": "AGPL-3.0-only", + "dependencies": { + "gl-matrix": "^3.4.3", + "twgl.js": "^5.5.4" + } + }, "node_modules/webgl-media-editor": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/webgl-media-editor/-/webgl-media-editor-0.0.1.tgz", - "integrity": "sha512-TxnuRl3rpWa1Cia/pn+vh+0iz3yDNwzsrnRGJ61YkdZAYuimu2afBivSHv0RK73hKza6Y/YoRCkuEcsFmtxPNw==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/webgl-media-editor/-/webgl-media-editor-0.0.6.tgz", + "integrity": "sha512-hqpIY+a+ay3QzXKECC4pFSHS0dVogV3GlBWzuSwBzEeGZcs7MeEYxLhFdqUa1D2xFtNnXb0pAo+1lCndYDKP2A==", "license": "AGPL-3.0-only", "dependencies": { "cropperjs": "^1.6.2", + "fine-jsx": "^0.0.5", "gl-matrix": "^3.4.3", "throttle-debounce": "^5.0.2", - "twgl.js": "^5.5.4" + "twgl.js": "^5.5.4", + "webgl-effects": "^0.0.3" } }, "node_modules/webidl-conversions": { diff --git a/package.json b/package.json index 691972ced..46f3839c5 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "vue-loading-overlay": "^3.3.3", "vue-timeago": "^5.1.2", "vue-tribute": "^1.0.7", - "webgl-media-editor": "^0.0.1", + "webgl-media-editor": "^0.0.6", "zuck.js": "^1.6.0" }, "collective": { diff --git a/resources/assets/js/components/ComposeModal.vue b/resources/assets/js/components/ComposeModal.vue index 1ec98c64f..389eba782 100644 --- a/resources/assets/js/components/ComposeModal.vue +++ b/resources/assets/js/components/ComposeModal.vue @@ -1015,19 +1015,29 @@ export default { }, created() { - this.editor = new MediaEditor({ - effects: filterEffects, - onEdit: (index, {effect, intensity, crop}) => { - if (index >= this.files.length) return - const file = this.files[index] - - this.$set(file, 'editState', { effect, intensity, crop }) - }, - onRenderPreview: (sourceIndex, previewUrl) => { - const media = this.media[sourceIndex] - if (media) media.preview_url = previewUrl - }, - }) + try { + this.editor = new MediaEditor({ + effects: filterEffects, + onEdit: (sourceIndex, {effect, intensity, crop}) => { + if (sourceIndex >= this.files.length) return + const file = this.files[sourceIndex] + + this.$set(file, 'editState', { effect, intensity, crop }) + }, + onRenderPreview: (sourceIndex, previewUrl) => { + if (sourceIndex >= this.files.length) return + const file = this.files[sourceIndex] + const { editState } = file + const media = this.media[sourceIndex] + + // If the image was edited, use the preview image from the editor. + if (editState && (editState.crop || editState.effect !== -1)) media.preview_url = previewUrl + // When no edits are applied, use the original media URL. + // This limits broken previews with firefox's resistFingerprinting setting. + else media.preview_url = media.url + }, + }) + } catch {} }, computed: { @@ -1054,8 +1064,9 @@ export default { }, destroyed() { - this.files.forEach(fileInfo => { - URL.revokeObjectURL(fileInfo.url); + this.media.forEach(media => { + URL.revokeObjectURL(media.url); + URL.revokeObjectURL(media.preview_url); }) this.files.length = this.media.length = 0 this.editor = undefined @@ -1161,7 +1172,7 @@ export default { const type = file.type.replace(/\/.*/, '') const url = URL.createObjectURL(file) - const preview_url = type === 'image' ? url : '/storage/no-preview.png' + const preview_url = type === 'image' ? URL.createObjectURL(file) : '/storage/no-preview.png' this.files.push({ file, editState: undefined }) this.media.push({ url, preview_url, type }) @@ -1182,7 +1193,16 @@ export default { const media = this.media[i] if (media.type === 'image' && fileInfo.editState) { - file = await this.editor.toBlob(i) + const { editState, cropperBlob } = fileInfo + + // If the WebGL editor is supported by the browser, apply the edits and use the resulting blob + if (this.editor && (editState.effect !== -1 || !!editState.crop)) { + file = await this.editor.toBlob(i) + } + // Otherwise, only the cropped result from cropper.js may be used + else if (cropperBlob) { + file = cropperBlob + } } let form = new FormData(); @@ -1555,12 +1575,29 @@ export default { break; case 'cropPhoto': - const { editState } = this.files[this.carouselCursor] + const file = this.files[this.carouselCursor] + const { cropper } = this.$refs + + // update the file state in this vue component const croppedState = { - ...editState, - crop: this.$refs.cropper.getData() + ...file.editState, + crop: cropper.getData() + } + + if (this.editor) { + // also update the file state in the WebGL editor + this.editor.setEditState(this.carouselCursor, croppedState) + } else { + // if the browser can't run the WebGL editor, get the cropped image from cropper.js + cropper.getCroppedCanvas().toBlob((blob) => { + const { media } = this.media[this.carouselCursor] + + file.croppedBlob = blob + URL.revokeObjectURL(media.preview_url) + media.preview_url = URL.createObjectURL(blob) + }) } - this.editor.setEditState(this.carouselCursor, croppedState) + this.page = 2; break; diff --git a/resources/lang/es/auth.php b/resources/lang/es/auth.php index c0d26842f..fec9df86f 100644 --- a/resources/lang/es/auth.php +++ b/resources/lang/es/auth.php @@ -13,7 +13,7 @@ return [ | */ - 'failed' => 'Los datos introducidos no son válidos.', - 'throttle' => 'Demasiados intentos de iniciar sesión. Por favor, inténtalo de nuevo en :seconds segundos.', + 'failed' => 'Los datos introducidos no son vlidos.', + 'throttle' => 'Demasiados intentos de iniciar sesin. Por favor, intntalo de nuevo en :seconds segundos.', ]; diff --git a/resources/lang/es/exception.php b/resources/lang/es/exception.php new file mode 100644 index 000000000..292bd2808 --- /dev/null +++ b/resources/lang/es/exception.php @@ -0,0 +1,11 @@ + [ + 'invalid' => [ + 'album' => 'Debe contener solo una foto o video, o multiples.', + ], + ], + +]; \ No newline at end of file diff --git a/resources/lang/es/notification.php b/resources/lang/es/notification.php index 599a0ab09..ea8ffd8c8 100644 --- a/resources/lang/es/notification.php +++ b/resources/lang/es/notification.php @@ -2,7 +2,10 @@ return [ - 'likedPhoto' => 'le gustó tu foto.', + 'likedPhoto' => 'le gustó tu foto.', + 'likedComment' => 'le gustó tu comentario.', 'startedFollowingYou' => 'empezó a seguirte.', - + 'commented' => 'comentó tu foto.', + 'mentionedYou' => 'te menciono.', + 'shared' => 'compartir tu foto.', ]; diff --git a/resources/lang/fi/web.php b/resources/lang/fi/web.php index 3b9062230..73b5fb2fb 100644 --- a/resources/lang/fi/web.php +++ b/resources/lang/fi/web.php @@ -3,7 +3,7 @@ return [ 'common' => [ - 'comment' => 'Kommentti', + 'comment' => 'Kommentoi', 'commented' => 'Kommentoitu', 'comments' => 'Kommentit', 'like' => 'Tykkää', @@ -13,7 +13,7 @@ return [ 'shared' => 'Jaettu', 'shares' => 'Jaot', 'unshare' => 'Peru jakaminen', - 'bookmark' => 'Bookmark', + 'bookmark' => 'Kirjanmerkki', 'cancel' => 'Peruuta', 'copyLink' => 'Kopioi linkki', @@ -24,10 +24,10 @@ return [ 'other' => 'Muu', 'readMore' => 'Lue lisää', 'success' => 'Onnistui', - 'proceed' => 'Proceed', - 'next' => 'Next', - 'close' => 'Close', - 'clickHere' => 'click here', + 'proceed' => 'Jatka', + 'next' => 'Seuraava', + 'close' => 'Sulje', + 'clickHere' => 'klikkaa tästä', 'sensitive' => 'Sensitiivinen', 'sensitiveContent' => 'Sensitiivinen sisältö', @@ -82,71 +82,71 @@ return [ 'notifications' => [ 'liked' => 'tykkäsi sinun', 'commented' => 'kommentoi sinun', - 'reacted' => 'reacted to your', - 'shared' => 'shared your', - 'tagged' => 'tagged you in a', - - 'updatedA' => 'updated a', - 'sentA' => 'sent a', - - 'followed' => 'followed', - 'mentioned' => 'mentioned', - 'you' => 'you', - - 'yourApplication' => 'Your application to join', - 'applicationApproved' => 'was approved!', - 'applicationRejected' => 'was rejected. You can re-apply to join in 6 months.', - - 'dm' => 'dm', - 'groupPost' => 'group post', - 'modlog' => 'modlog', - 'post' => 'post', - 'story' => 'story', - 'noneFound' => 'No notifications found', + 'reacted' => 'reagoi sinun', + 'shared' => 'jakoi sinun', + 'tagged' => 'merkitsi sinut', + + 'updatedA' => 'päivitetty', + 'sentA' => 'lähetti', + + 'followed' => 'seuraa', + 'mentioned' => 'mainittu', + 'you' => 'sinä', + + 'yourApplication' => 'Liittymistä koskeva hakemuksesi', + 'applicationApproved' => 'oli hyväksytty!', + 'applicationRejected' => 'oli hylätty. Voit hakea uudelleen 6 kuukauden kuluttua.', + + 'dm' => 'yv', + 'groupPost' => 'ryhmäviesti', + 'modlog' => 'modelogi', + 'post' => 'viesti', + 'story' => 'tarina', + 'noneFound' => 'Ilmoituksia ei löytynyt', ], 'post' => [ - 'shareToFollowers' => 'Share to followers', - 'shareToOther' => 'Share to other', - 'noLikes' => 'No likes yet', - 'uploading' => 'Uploading', + 'shareToFollowers' => 'Jaa seuraajille', + 'shareToOther' => 'Jaa muille', + 'noLikes' => 'Tykkäyksiä ei ole vielä', + 'uploading' => 'Siirretään', ], 'profile' => [ - 'posts' => 'Posts', - 'followers' => 'Followers', - 'following' => 'Following', - 'admin' => 'Admin', - 'collections' => 'Collections', - 'follow' => 'Follow', - 'unfollow' => 'Unfollow', - 'editProfile' => 'Edit Profile', - 'followRequested' => 'Follow Requested', - 'joined' => 'Joined', - - 'emptyCollections' => 'We can\'t seem to find any collections', - 'emptyPosts' => 'We can\'t seem to find any posts', + 'posts' => 'Julkaisut', + 'followers' => 'Seuraajat', + 'following' => 'Seurataan', + 'admin' => 'Ylläpitäjä', + 'collections' => 'Kokoelmat', + 'follow' => 'Seuraa', + 'unfollow' => 'Lopeta seuraaminen', + 'editProfile' => 'Muokkaa profiilia', + 'followRequested' => 'Seuraamista pyydetty', + 'joined' => 'Liittynyt', + + 'emptyCollections' => 'Emme näytä löytävän yhtään kokoelmaa', + 'emptyPosts' => 'Emme näytä löytävän yhtään viestiä', ], 'menu' => [ - 'viewPost' => 'View Post', - 'viewProfile' => 'View Profile', - 'moderationTools' => 'Moderation Tools', - 'report' => 'Report', - 'archive' => 'Archive', - 'unarchive' => 'Unarchive', - 'embed' => 'Embed', - - 'selectOneOption' => 'Select one of the following options', - 'unlistFromTimelines' => 'Unlist from Timelines', - 'addCW' => 'Add Content Warning', - 'removeCW' => 'Remove Content Warning', - 'markAsSpammer' => 'Mark as Spammer', - 'markAsSpammerText' => 'Unlist + CW existing and future posts', - 'spam' => 'Spam', - 'sensitive' => 'Sensitive Content', - 'abusive' => 'Abusive or Harmful', - 'underageAccount' => 'Underage Account', + 'viewPost' => 'Näytä viesti', + 'viewProfile' => 'Näytä profiili', + 'moderationTools' => 'Moderointityökalut', + 'report' => 'Ilmoita', + 'archive' => 'Arkisto', + 'unarchive' => 'Palauta arkistosta', + 'embed' => 'Upota', + + 'selectOneOption' => 'Valitse yksi seuraavista vaihtoehdoista', + 'unlistFromTimelines' => 'Poista aikajanalta', + 'addCW' => 'Lisää sisältövaroitus', + 'removeCW' => 'Poista sisältövaroitus', + 'markAsSpammer' => 'Merkitse roskapostittajaksi', + 'markAsSpammerText' => 'Unlist + SV olevat ja tulevat julkaisut', + 'spam' => 'Roskaposti', + 'sensitive' => 'Arkaluonteista sisältöä', + 'abusive' => 'Hyökkäävä tai haitallinen', + 'underageAccount' => 'Alaikäisen tili', 'copyrightInfringement' => 'Tekijänoikeusloukkaus', 'impersonation' => 'Väärennetty henkilöllisyys', 'scamOrFraud' => 'Huijaus tai petos', @@ -182,27 +182,27 @@ return [ ], 'timeline' => [ - 'peopleYouMayKnow' => 'People you may know', + 'peopleYouMayKnow' => 'Ihmisiä, jotka saatat tuntea', 'onboarding' => [ - 'welcome' => 'Welcome', - 'thisIsYourHomeFeed' => 'This is your home feed, a chronological feed of posts from accounts you follow.', - 'letUsHelpYouFind' => 'Let us help you find some interesting people to follow', - 'refreshFeed' => 'Refresh my feed', + 'welcome' => 'Tervetuloa', + 'thisIsYourHomeFeed' => 'Tämä on kotisyötteesi. Aikajärjestyksessä oleva syöte seuraamiesi käyttäjien julkaisuista.', + 'letUsHelpYouFind' => 'Anna meidän auttaa löytämään mielenkiintoisia ihmisiä seurattavaksi', + 'refreshFeed' => 'Päivitä syötteeni', ], ], 'hashtags' => [ - 'emptyFeed' => 'We can\'t seem to find any posts for this hashtag' + 'emptyFeed' => 'Emme näytä löytävän yhtään viestiä tälle aihetunnisteelle' ], 'report' => [ - 'report' => 'Report', - 'selectReason' => 'Select a reason', - 'reported' => 'Reported', - 'sendingReport' => 'Sending report', - 'thanksMsg' => 'Thanks for the report, people like you help keep our community safe!', - 'contactAdminMsg' => 'If you\'d like to contact an administrator about this post or report', + 'report' => 'Ilmoita', + 'selectReason' => 'Valitse syy', + 'reported' => 'Ilmoitettu', + 'sendingReport' => 'Lähetetään ilmoitusta', + 'thanksMsg' => 'Kiitos ilmoituksesta. Sinä ja kaltaisesi autatte pitämään yhteisön turvallisena!', + 'contactAdminMsg' => 'Jos haluaisit ottaa yhteyttä ylläpitoom tästä julkaisusta tai ilmoittaa sen', ], ]; diff --git a/resources/lang/hu/web.php b/resources/lang/hu/web.php index f3b8e8452..4e25b4745 100644 --- a/resources/lang/hu/web.php +++ b/resources/lang/hu/web.php @@ -44,7 +44,7 @@ return [ 'admin' => 'Admin irányítópult', // Timelines - 'homeFeed' => 'Kezdőlap', + 'homeFeed' => 'Saját idővonal', 'localFeed' => 'Helyi idővonal', 'globalFeed' => 'Globális idővonal', @@ -63,7 +63,7 @@ return [ 'logout' => 'Kijelentkezés', // Nav footer - 'about' => 'Rólunk', + 'about' => 'Névjegy', 'help' => 'Súgó', 'language' => 'Nyelv', 'privacy' => 'Adatvédelem', @@ -186,9 +186,9 @@ return [ 'onboarding' => [ 'welcome' => 'Üdvözöljük', - 'thisIsYourHomeFeed' => 'Ez a kezdőlap, az Ön által követett fiókok bejegyzései időrendi sorrendben.', + 'thisIsYourHomeFeed' => 'Ez a saját idővonala, az Ön által követett fiókok bejegyzései időrendi sorrendben.', 'letUsHelpYouFind' => 'Keressünk érdekes, követhető embereket', - 'refreshFeed' => 'Kezdőlap frissítése', + 'refreshFeed' => 'Idővonal frissítése', ], ], diff --git a/resources/lang/pt/web.php b/resources/lang/pt/web.php index 9729c0ba3..6b6c8aded 100644 --- a/resources/lang/pt/web.php +++ b/resources/lang/pt/web.php @@ -19,48 +19,48 @@ return [ 'copyLink' => 'Copiar link', 'delete' => 'Eliminar', 'error' => 'Erro', - 'errorMsg' => 'Algo correu mal. Por favor, tente novamente mais tarde.', - 'oops' => 'Opa!', + 'errorMsg' => 'Algo correu mal. Tenta novamente mais tarde.', + 'oops' => 'Oops!', 'other' => 'Outro', 'readMore' => 'Ler mais', 'success' => 'Sucesso', 'proceed' => 'Continuar', 'next' => 'Seguinte', 'close' => 'Fechar', - 'clickHere' => 'clique aqui', + 'clickHere' => 'clica aqui', 'sensitive' => 'Sensível', 'sensitiveContent' => 'Conteúdo sensível', - 'sensitiveContentWarning' => 'Este post pode conter conteúdo sensível', + 'sensitiveContentWarning' => 'Esta publicação pode conter conteúdo sensível', ], 'site' => [ - 'terms' => 'Termos de Uso', + 'terms' => 'Termos de Utilização', 'privacy' => 'Política de Privacidade', ], 'navmenu' => [ - 'search' => 'Pesquisa', - 'admin' => 'Painel de Administração', + 'search' => 'Pesquisar', + 'admin' => 'Painel de administração', // Timelines - 'homeFeed' => 'Inicio', + 'homeFeed' => 'Início', 'localFeed' => 'Feed local', 'globalFeed' => 'Feed global', // Core features 'discover' => 'Descobrir', - 'directMessages' => 'Mensagens Diretas', + 'directMessages' => 'Mensagens diretas', 'notifications' => 'Notificações', 'groups' => 'Grupos', 'stories' => 'Stories', // Self links 'profile' => 'Perfil', - 'drive' => 'Drive', + 'drive' => 'Disco', 'settings' => 'Definições', 'compose' => 'Criar novo', - 'logout' => 'Terminar Sessão', + 'logout' => 'Terminar sessão', // Nav footer 'about' => 'Sobre', @@ -70,38 +70,38 @@ return [ 'terms' => 'Termos', // Temporary links - 'backToPreviousDesign' => 'Voltar ao design anterior' + 'backToPreviousDesign' => 'Voltar ao design antigo' ], 'directMessages' => [ - 'inbox' => 'Caixa de Entrada', + 'inbox' => 'Caixa de entrada', 'sent' => 'Enviadas', 'requests' => 'Pedidos' ], 'notifications' => [ - 'liked' => 'curtiu seu', - 'commented' => 'comentou em seu', + 'liked' => 'gostou do seu', + 'commented' => 'comentou no seu', 'reacted' => 'reagiu ao seu', - 'shared' => 'compartilhou seu', - 'tagged' => 'marcou você em um', + 'shared' => 'partilhou o teu', + 'tagged' => 'etiquetou-te numa publicação', - 'updatedA' => 'atualizou um(a)', - 'sentA' => 'enviou um', + 'updatedA' => 'atualizou uma', + 'sentA' => 'enviou uma', - 'followed' => 'seguiu', - 'mentioned' => 'mencionou', - 'you' => 'você', + 'followed' => 'seguiu-te', + 'mentioned' => 'mencionou-te', + 'you' => 'tu', - 'yourApplication' => 'A sua candidatura para se juntar', + 'yourApplication' => 'O teu pedido de adesão', 'applicationApproved' => 'foi aprovado!', - 'applicationRejected' => 'foi rejeitado. Você pode se inscrever novamente para participar em 6 meses.', + 'applicationRejected' => 'foi rejeitado. Podes voltar a candidatar-te dentro de 6 meses.', - 'dm' => 'mensagem direta', - 'groupPost' => 'postagem do grupo', + 'dm' => 'md', + 'groupPost' => 'publicação de grupo', 'modlog' => 'histórico de moderação', 'post' => 'publicação', - 'story' => 'história', + 'story' => 'estória', 'noneFound' => 'Nenhuma notificação encontrada', ], @@ -115,12 +115,12 @@ return [ 'profile' => [ 'posts' => 'Publicações', 'followers' => 'Seguidores', - 'following' => 'A seguir', + 'following' => 'Seguindo', 'admin' => 'Administrador', 'collections' => 'Coleções', 'follow' => 'Seguir', 'unfollow' => 'Deixar de seguir', - 'editProfile' => 'Editar Perfil', + 'editProfile' => 'Editar perfil', 'followRequested' => 'Pedido para seguir enviado', 'joined' => 'Juntou-se', @@ -137,72 +137,72 @@ return [ 'unarchive' => 'Retirar do arquivo', 'embed' => 'Incorporar', - 'selectOneOption' => 'Selecione uma das seguintes opções', + 'selectOneOption' => 'Seleciona uma das seguintes opções', 'unlistFromTimelines' => 'Remover das cronologias', 'addCW' => 'Adicionar aviso de conteúdo', 'removeCW' => 'Remover aviso de conteúdo', - 'markAsSpammer' => 'Marcar como Spammer', + 'markAsSpammer' => 'Marcar como spammer', 'markAsSpammerText' => 'Remover das cronologias e adicionar um aviso de conteúdo às publicações existentes e futuras', - 'spam' => 'Lixo Eletrônico', - 'sensitive' => 'Conteúdo Sensível', + 'spam' => 'Spam', + 'sensitive' => 'Conteúdo sensível', 'abusive' => 'Abusivo ou prejudicial', 'underageAccount' => 'Conta de menor de idade', 'copyrightInfringement' => 'Violação de direitos de autor', 'impersonation' => 'Roubo de identidade', 'scamOrFraud' => 'Esquema ou fraude', 'confirmReport' => 'Confirmar denúncia', - 'confirmReportText' => 'Tem a certeza que deseja denunciar esta mensagem?', + 'confirmReportText' => 'Tens a certeza que desejas denunciar esta mensagem?', 'reportSent' => 'Denúncia enviada!', - 'reportSentText' => 'Recebemos com sucesso a sua denúncia.', + 'reportSentText' => 'Recebemos com sucesso a tua denúncia.', 'reportSentError' => 'Ocorreu um erro ao denunciar este conteúdo.', - 'modAddCWConfirm' => 'Tem a certeza que pretende adicionar um aviso de conteúdo à publicação?', - 'modCWSuccess' => 'Adicionou com sucesso um aviso de conteúdo', - 'modRemoveCWConfirm' => 'Tem a certeza que pretende remover o aviso de conteúdo desta publicação?', - 'modRemoveCWSuccess' => 'Removeu com sucesso o aviso de conteúdo', + 'modAddCWConfirm' => 'Tens a certeza que pretendes adicionar um aviso de conteúdo à publicação?', + 'modCWSuccess' => 'Adicionaste com sucesso um aviso de conteúdo', + 'modRemoveCWConfirm' => 'Tens a certeza que pretendes remover o aviso de conteúdo desta publicação?', + 'modRemoveCWSuccess' => 'Removeste com sucesso o aviso de conteúdo', 'modUnlistConfirm' => 'Tem a certeza que pretende deslistar este post?', 'modUnlistSuccess' => 'Deslistou com sucesso este post', - 'modMarkAsSpammerConfirm' => 'Você realmente quer denunciar este usuário por spam? Todas as suas publicações anteriores e futuras serão marcadas com um aviso de conteúdo e removidas das linhas do tempo.', + 'modMarkAsSpammerConfirm' => 'Tem a certeza que deseja marcar este utilizador como spammer? Todos os posts existentes e futuros serão deslistados da timeline e o alerta de conteúdo será aplicado.', 'modMarkAsSpammerSuccess' => 'Marcou com sucesso esta conta como spammer', - 'toFollowers' => 'para seguidores', + 'toFollowers' => 'para Seguidores', 'showCaption' => 'Mostar legenda', - 'showLikes' => 'Mostrar Gostos', + 'showLikes' => 'Mostrar gostos', 'compactMode' => 'Modo compacto', - 'embedConfirmText' => 'Ao usar de forma “embed”, você concorda com nossas', + 'embedConfirmText' => 'Ao utilizar este conteúdo, concordas com:', - 'deletePostConfirm' => 'Tem a certeza que pretende apagar esta publicação?', - 'archivePostConfirm' => 'Tem a certeza que pretende arquivar esta publicação?', + 'deletePostConfirm' => 'Tens a certeza que pretendes eliminar esta publicação?', + 'archivePostConfirm' => 'Tens a certeza que pretendes arquivar esta publicação?', 'unarchivePostConfirm' => 'Tem a certeza que pretende desarquivar este post?', ], 'story' => [ - 'add' => 'Adicionar Story' + 'add' => 'Adicionar Storie' ], 'timeline' => [ - 'peopleYouMayKnow' => 'Pessoas que talvez conheça', + 'peopleYouMayKnow' => 'Pessoas que talvez conheças', 'onboarding' => [ 'welcome' => 'Bem-vindo', - 'thisIsYourHomeFeed' => 'Este é o seu feed pessoal, com publicações em ordem cronológica das contas que segue.', - 'letUsHelpYouFind' => 'Deixe-nos ajudar a encontrar algumas pessoas interessantes para seguir', - 'refreshFeed' => 'Atualizar o meu feed', + 'thisIsYourHomeFeed' => 'Este é a tua cronologia inicial pessoal, com publicações em ordem cronológica das contas que segue.', + 'letUsHelpYouFind' => 'Deixa-nos ajudar-te a encontrar algumas pessoas interessantes para seguires', + 'refreshFeed' => 'Atualizar a minha cronologia', ], ], 'hashtags' => [ - 'emptyFeed' => 'Não encontramos nenhuma publicação com esta hashtag' + 'emptyFeed' => 'Não conseguimos encontrar publicações com essa hashtag' ], 'report' => [ 'report' => 'Denunciar', - 'selectReason' => 'Selecione uma razão', + 'selectReason' => 'Seleciona um motivo', 'reported' => 'Denunciado', 'sendingReport' => 'A enviar denúncia', - 'thanksMsg' => 'Obrigado pela denúncia, pessoas como você ajudam a manter a nossa comunidade segura!', - 'contactAdminMsg' => 'Se quiser entrar em contato com um administrador acerca desta publicação ou denúncia', + 'thanksMsg' => 'Obrigado pela denúncia, as pessoas como tu ajudam a manter a nossa comunidade segura!', + 'contactAdminMsg' => 'Se quiseres entrar em contacto com um administrador sobre esta publicação ou denúncia', ], ]; diff --git a/resources/lang/ru/web.php b/resources/lang/ru/web.php index ab469fc12..b8a850c07 100644 --- a/resources/lang/ru/web.php +++ b/resources/lang/ru/web.php @@ -29,9 +29,9 @@ return [ 'close' => 'Закрыть', 'clickHere' => 'нажмите здесь', - 'sensitive' => 'Чувствительный', - 'sensitiveContent' => 'Чувствительный контент', - 'sensitiveContentWarning' => 'Этот пост может содержать чувствительный контент', + 'sensitive' => 'Вызывающий', + 'sensitiveContent' => 'Вызывающее содержимое', + 'sensitiveContentWarning' => 'Эта запись может содержать вызывающее содержимое', ], 'site' => [ @@ -98,9 +98,9 @@ return [ 'applicationRejected' => 'было отклонено. Вы можете повторно подать заявку на регистрацию в течение 6 месяцев.', 'dm' => 'сообщение', - 'groupPost' => 'пост в группе', + 'groupPost' => 'запись в группе', 'modlog' => 'журнал модерации', - 'post' => 'пост', + 'post' => 'запись', 'story' => 'история', 'noneFound' => 'Уведомления не найдены', ], @@ -108,12 +108,12 @@ return [ 'post' => [ 'shareToFollowers' => 'Поделиться с подписчиками', 'shareToOther' => 'Поделиться с другими', - 'noLikes' => 'Пока никому не понравилось', + 'noLikes' => 'Пока нет лайков', 'uploading' => 'Загружается', ], 'profile' => [ - 'posts' => 'Посты', + 'posts' => 'Записи', 'followers' => 'Подписчики', 'following' => 'Подписки', 'admin' => 'Администратор', @@ -129,7 +129,7 @@ return [ ], 'menu' => [ - 'viewPost' => 'Показать пост', + 'viewPost' => 'Показать запись', 'viewProfile' => 'Посмотреть профиль', 'moderationTools' => 'Инструменты модерации', 'report' => 'Пожаловаться', @@ -146,23 +146,23 @@ return [ 'spam' => 'Спам', 'sensitive' => 'Деликатный контент', 'abusive' => 'Жестокое обращение или причинение вреда', - 'underageAccount' => 'Несовершеннолетний аккаунт', + 'underageAccount' => 'Профиль несовершеннолетнего', 'copyrightInfringement' => 'Нарушение авторских прав', 'impersonation' => 'Представление себя за другого человека', 'scamOrFraud' => 'Обман или мошенничество', 'confirmReport' => 'Подтвердить жалобу', - 'confirmReportText' => 'Вы действительно хотите пожаловаться на этот пост?', + 'confirmReportText' => 'Вы действительно хотите пожаловаться на эту запись?', 'reportSent' => 'Жалоба отправлена!', 'reportSentText' => 'Мы успешно получили Вашу жалобу.', - 'reportSentError' => 'При отправке жалобы на этот пост произошла ошибка.', + 'reportSentError' => 'При отправке жалобы на эту запись произошла ошибка.', - 'modAddCWConfirm' => 'Вы действительно хотите добавить предупреждение о контенте на этот пост?', + 'modAddCWConfirm' => 'Вы действительно хотите добавить предупреждение о содержимом на этой записи?', 'modCWSuccess' => 'Предупреждение о контенте успешно добавлено', - 'modRemoveCWConfirm' => 'Вы действительно хотите удалить предупреждение о контенте с этого поста?', + 'modRemoveCWConfirm' => 'Вы действительно хотите удалить предупреждение о содержимом с этой записи?', 'modRemoveCWSuccess' => 'Предупреждение о контенте успешно удалено', - 'modUnlistConfirm' => 'Вы действительно хотите скрыть этот пост из лент?', - 'modUnlistSuccess' => 'Пост удален', - 'modMarkAsSpammerConfirm' => 'Вы уверены, что хотите отметить этого пользователя спамом? Все существующие и будущие сообщения будут исключены из списка в сроки, и будет применяться предупреждение о содержании.', + 'modUnlistConfirm' => 'Вы действительно хотите скрыть эту запись со всех лент?', + 'modUnlistSuccess' => 'Запись скрыта', + 'modMarkAsSpammerConfirm' => 'Вы уверены, что хотите отметить этого пользователя как спамера? Все существующие и будущие сообщения будут скрыты в лентах и будет применяться предупреждение о содержании.', 'modMarkAsSpammerSuccess' => 'Аккаунт успешно помечен как спаммер', 'toFollowers' => 'подписчикам', @@ -186,7 +186,7 @@ return [ 'onboarding' => [ 'welcome' => 'Добро пожаловать', - 'thisIsYourHomeFeed' => 'Это ваша домашняя лента, где хронологически собраны посты с аккаунтов, на которые вы подписаны.', + 'thisIsYourHomeFeed' => 'Это ваша домашняя лента, где хронологически собраны записи от профилей на которые вы подписаны.', 'letUsHelpYouFind' => 'Давайте мы поможем вам найти интересных людей, на которых можно подписаться', 'refreshFeed' => 'Обновить мою ленту', ], @@ -202,7 +202,7 @@ return [ 'reported' => 'Жалоба отправлена', 'sendingReport' => 'Отправка жалобы', 'thanksMsg' => 'Спасибо за обращение! Такие, как вы, помогают сделать сообщество безопаснее!', - 'contactAdminMsg' => 'Хотите ли вы связаться с администратором по поводу этой публикации или жалобы', + 'contactAdminMsg' => 'Хотите ли вы связаться с администратором по поводу этой публикации или пожаловаться', ], ]; diff --git a/resources/views/admin/diagnostics/home.blade.php b/resources/views/admin/diagnostics/home.blade.php index b23652b51..0bc6cc07a 100644 --- a/resources/views/admin/diagnostics/home.blade.php +++ b/resources/views/admin/diagnostics/home.blade.php @@ -1,887 +1,922 @@ @extends('admin.partial.template-full') @section('section') -
-

Diagnostics

- -
-

- Information - Copy -

- -
- - -
- - +
+
+ +
-
-
-
- - -

The payload is from the "Something went wrong" page, anyone can copy the payload for you to decrypt.
Contents are encrypted due to potential sensitive information.

-
-
- - -
-
- -
-
+
+
+
+
+
+
    +

    + Troubleshooting +

    + +
  • + Bootstrap: + {{is_writable(base_path('bootstrap/')) ? 'Writable ✅' : 'Not writable ❌'}} +
  • +
  • + Storage: + {{is_writable(base_path('storage/')) ? 'Writable ✅' : 'Not writable ❌'}} +
  • + + @foreach([ + 'bcmath', + 'gd', + 'imagick', + 'ctype', + 'curl', + 'intl', + 'json', + 'mbstring', + 'openssl', + 'redis' + ] as $ext) + @if(!extension_loaded($ext)) +
  • + PHP Module {{$ext}}: + Not installed/Not loaded ❌ +
  • + @endif + @endforeach + +
  • + DATABASE Ping: + {{ \DB::connection()->getPDO() ? 'Pong! Connected to DB "' . \DB::connection()->getDatabaseName() . '" ✅' : 'DB Not Responding ❌' }} +
  • +
  • + REDIS Ping: + {{ \Illuminate\Support\Facades\Redis::command('ping') ? 'Pong! Connected to Redis ✅' : 'Redis Not Responding ❌' }} +
  • +
  • + ACTIVITYPUB instance actor created: + {{ \App\Models\InstanceActor::count() ? '✅ true' : '❌ false' }} +
  • +
  • + ACTIVITYPUB instance actor cached: + {{ Cache::get(\App\Models\InstanceActor::PROFILE_KEY) ? '✅ true' : '❌ false' }} +
  • +
  • + OAUTH enabled: + {{ (bool) config_cache('pixelfed.oauth_enabled') ? '✅ true' : '❌ false' }} +
  • +
  • + OAUTH token_expiration + {{ config_cache('instance.oauth.token_expiration') }} days +
  • +
  • + OAUTH public key exists: + {{ file_exists(storage_path('oauth-public.key')) || config_cache('passport.public_key') ? '✅ true' : '❌ false' }} +
  • +
  • + OAUTH private key exists: + {{ file_exists(storage_path('oauth-private.key')) || config_cache('passport.private_key') ? '✅ true' : '❌ false' }} +
  • + +
    +

    + Important Information +

    + + + @if(function_exists('shell_exec')) +
  • + Version: + {{config('pixelfed.version')}}-{{ @shell_exec('git log --pretty="%h" -n1 HEAD') ?? 'unknown git commit' }} +
  • + @else +
  • + Version: + {{config('pixelfed.version')}} +
  • + @endif + +
  • + Database: + @php($v = explode(' ', DB::select('select version() as version')[0]->version)) + {{config('database.default')}} ({{count($v) == 1 ? $v[0] : $v[1]}}) +
  • +
  • + APP_URL: + {{config_cache('app.url')}} +
  • +
  • + APP_DOMAIN: + {{config_cache('pixelfed.domain.app')}} +
  • +
  • + ADMIN_DOMAIN: + {{config_cache('pixelfed.domain.admin')}} +
  • +
  • + SESSION_DOMAIN: + {{config_cache('session.domain')}} +
  • + +
    +

    + PHP Variables +

    +
  • + PHP: + {{phpversion()}} +
  • +
  • + PHP INI memory_limit: + {{ ini_get('memory_limit') }} +
  • +
  • + PHP INI post_max_size: + {{ ini_get('post_max_size') }} +
  • +
  • + PHP INI upload_max_filesize: + {{ ini_get('upload_max_filesize') }} +
  • +
  • + PHP INI max_file_uploads: + {{ ini_get('max_file_uploads') }} +
  • +
  • + PHP INI max_execution_time: + {{ ini_get('max_execution_time') }} +
  • +
  • + PHP INI max_input_time: + {{ ini_get('max_input_time') }} +
  • + +
  • + PHP INI file_uploads (On): + {{ ini_get('file_uploads') }} +
  • +
  • + PHP INI - Security allow_url_fopen (true): + {{ ini_get('allow_url_fopen') }} +
  • +
  • + PHP INI - Security allow_url_include (false): + {{ ini_get('allow_url_include') }} +
  • +
  • + PHP INI - Security expose_php (false): + {{ ini_get('expose_php') }} +
  • +
  • + PHP INI - Security display_errors (false): + {{ ini_get('display_errors') }} +
  • +
  • + PHP INI - Security display_startup_errors (false): + {{ ini_get('display_startup_errors') }} +
  • +
  • + PHP INI - Security log_errors (true): + {{ ini_get('log_errors') }} +
  • +
  • + PHP INI - Security ignore_repeated_errors (false): + {{ ini_get('ignore_repeated_errors') }} +
  • +
  • + PHP INI - Security disable_functions: + {{ ini_get('disable_functions') }} +
  • + +
    +

    + Pixelfed Variables (No Secrets) +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CONFIGVariable NameDetails
    APPAPP_NAME"{{config_cache('app.name')}}"
    APPAPP_ENV"{{config_cache('app.env')}}"
    APPAPP_DEBUG{{config_cache('app.debug') ? '✅ true' : '❌ false' }}
    APPAPP_URL"{{config_cache('app.url')}}"
    APPAPP_LOCALE"{{config_cache('app.locale')}}"
    APPAPP_FALLBACK_LOCALE"{{config_cache('app.fallback_locale')}}"
    BROADCASTINGBROADCAST_DRIVER"{{config_cache('broadcasting.default')}}"
    CACHECACHE_DRIVER"{{config_cache('cache.default')}}"
    CAPTCHACAPTCHA_ENABLED{{ config_cache('captcha.enabled') ? '✅ true' : '❌ false' }}
    DATABASEDB_CONNECTION"{{config_cache('database.default')}}"
    DATABASEREDIS_CLIENT"{{config_cache('database.redis.client')}}"
    EXPEXP_LC{{config_cache('exp.lc') ? '✅ true' : '❌ false' }}
    EXPEXP_TOP{{config_cache('exp.top') ? '✅ true' : '❌ false' }}
    EXPEXP_POLLS{{config_cache('exp.polls') ? '✅ true' : '❌ false' }}
    EXPEXP_CPT{{config_cache('exp.cached_public_timeline') ? '✅ true' : '❌ false' }}
    EXPEXP_GPS{{config_cache('exp.gps') ? '✅ true' : '❌ false' }}
    EXPEXP_EMC{{config_cache('exp.emc') ? '✅ true' : '❌ false' }}
    FEDERATIONACTIVITY_PUB{{(bool) config_cache('federation.activitypub.enabled') ? '✅ true' : '❌ false' }}
    FEDERATIONAP_OUTBOX{{config_cache('federation.activitypub.outbox') ? '✅ true' : '❌ false' }}
    FEDERATIONAP_INBOX{{config_cache('federation.activitypub.inbox') ? '✅ true' : '❌ false' }}
    FEDERATIONAP_SHAREDINBOX{{config_cache('federation.activitypub.sharedInbox') ? '✅ true' : '❌ false' }}
    FEDERATIONAP_REMOTE_FOLLOW{{config_cache('federation.activitypub.remoteFollow') ? '✅ true' : '❌ false' }}
    FEDERATIONACTIVITYPUB_DELIVERY_TIMEOUT"{{config_cache('federation.activitypub.delivery.timeout')}}"
    FEDERATIONACTIVITYPUB_DELIVERY_CONCURRENCY"{{config_cache('federation.activitypub.delivery.concurrency')}}"
    FEDERATIONAP_LOGGER_ENABLED{{config_cache('federation.activitypub.delivery.logger.enabled') ? '✅ true' : '❌ false' }}
    FEDERATIONATOM_FEEDS{{config_cache('federation.atom.enabled') ? '✅ true' : '❌ false' }}
    FEDERATIONREMOTE_AVATARS{{config_cache('federation.avatars.store_local') ? '✅ true' : '❌ false' }}
    FEDERATIONNODEINFO{{config_cache('federation.nodeinfo.enabled') ? '✅ true' : '❌ false' }}
    FEDERATIONWEBFINGER{{config_cache('federation.webfinger.enabled') ? '✅ true' : '❌ false' }}
    FEDERATIONPF_NETWORK_TIMELINE{{(bool) config_cache('federation.network_timeline') ? '✅ true' : '❌ false' }}
    FEDERATIONPF_NETWORK_TIMELINE_DAYS_FALLOFF{{config('federation.network_timeline_days_falloff') }}
    FEDERATIONCUSTOM_EMOJI{{(bool) config_cache('federation.custom_emoji.enabled') ? '✅ true' : '❌ false' }}
    FEDERATIONCUSTOM_EMOJI_MAX_SIZE"{{config_cache('federation.custom_emoji.max_size')}}"
    FILESYSTEMSFILESYSTEM_DRIVER"{{config_cache('filesystems.default')}}"
    FILESYSTEMSFILESYSTEM_CLOUD"{{config_cache('filesystems.cloud')}}"
    HASHINGBCRYPT_COST"{{config_cache('hashing.bcrypt.rounds')}}"
    HORIZONHORIZON_PREFIX"{{config_cache('horizon.prefix')}}"
    HORIZONHORIZON_MEMORY_LIMIT"{{config_cache('horizon.memory_limit')}}"
    HORIZONHORIZON_BALANCE_STRATEGY"{{config_cache('horizon.environments.production.supervisor-1.balance')}}"
    HORIZONHORIZON_MIN_PROCESSES"{{config_cache('horizon.environments.production.supervisor-1.minProcesses')}}"
    HORIZONHORIZON_MAX_PROCESSES"{{config_cache('horizon.environments.production.supervisor-1.maxProcesses')}}"
    HORIZONHORIZON_SUPERVISOR_MEMORY"{{config_cache('horizon.environments.production.supervisor-1.memory')}}"
    HORIZONHORIZON_SUPERVISOR_TRIES"{{config_cache('horizon.environments.production.supervisor-1.tries')}}"
    HORIZONHORIZON_SUPERVISOR_NICE"{{config_cache('horizon.environments.production.supervisor-1.nice')}}"
    HORIZONHORIZON_SUPERVISOR_TIMEOUT"{{config_cache('horizon.environments.production.supervisor-1.timeout')}}"
    HORIZONHORIZON_DARKMODE{{config_cache('horizon.darkmode') ? '✅ true' : '❌ false' }}
    IMAGEIMAGE_DRIVER "{{config_cache('image.driver')}}"
    INSTANCEINSTANCE_DESCRIPTION"{{config_cache('instance.description')}}"
    INSTANCEINSTANCE_CONTACT_FORM{{config_cache('instance.contact.enabled') ? '✅ true' : '❌ false' }}
    INSTANCEINSTANCE_CONTACT_MAX_PER_DAY"{{config_cache('instance.contact.max_per_day')}}"
    INSTANCEINSTANCE_DISCOVER_PUBLIC{{config_cache('instance.discover.public') ? '✅ true' : '❌ false' }}
    INSTANCEEXP_LOOPS{{config_cache('instance.discover.loops.enabled') ? '✅ true' : '❌ false' }}
    INSTANCEINSTANCE_PUBLIC_HASHTAGS{{config_cache('instance.discover.tags.is_public') ? '✅ true' : '❌ false' }}
    INSTANCEINSTANCE_CONTACT_EMAIL"{{config_cache('instance.email')}}"
    INSTANCEINSTANCE_PUBLIC_LOCAL_TIMELINE{{config_cache('instance.timeline.local.is_public') ? '✅ true' : '❌ false' }}
    INSTANCEINSTANCE_NETWORK_TIMELINE_CACHED{{config('instance.timeline.network.cached') }}
    INSTANCEINSTANCE_NETWORK_TIMELINE_CACHE_DROPOFF{{config('instance.timeline.network.cache_dropoff') }}
    INSTANCEINSTANCE_NETWORK_TIMELINE_CACHE_MAX_HOUR_INGEST{{config('instance.timeline.network.max_hours_old') }}
    INSTANCEPAGE_404_HEADER"{{config_cache('instance.page.404.header')}}"
    INSTANCEPAGE_404_BODY"{{config_cache('instance.page.404.body')}}"
    INSTANCEPAGE_503_HEADER"{{config_cache('instance.page.503.header')}}"
    INSTANCEPAGE_503_BODY"{{config_cache('instance.page.503.body')}}"
    INSTANCEBANNED_USERNAMES"{{config_cache('instance.username.banned')}}"
    INSTANCEUSERNAME_REMOTE_FORMAT"{{config_cache('instance.username.remote.format')}}"
    INSTANCEUSERNAME_REMOTE_CUSTOM_TEXT"{{config_cache('instance.username.remote.custom')}}"
    INSTANCESTORIES_ENABLED{{(bool) config_cache('instance.stories.enabled') ? '✅ true' : '❌ false' }}
    INSTANCERESTRICTED_INSTANCE{{config_cache('instance.restricted.enabled') ? '✅ true' : '❌ false' }}
    INSTANCEOAUTH_TOKEN_DAYS"{{config_cache('instance.oauth.token_expiration')}}"
    INSTANCEOAUTH_REFRESH_DAYS"{{config_cache('instance.oauth.refresh_expiration')}}"
    INSTANCEOAUTH_PAT_ENABLED{{config_cache('instance.oauth.pat.enabled') ? '✅ true' : '❌ false' }}
    INSTANCEOAUTH_PAT_ID"{{config_cache('instance.oauth.pat.id')}}"
    INSTANCEENABLE_COVID_LABEL{{config_cache('instance.label.covid.enabled') ? '✅ true' : '❌ false' }}
    INSTANCECOVID_LABEL_URL"{{config_cache('instance.label.covid.url')}}"
    INSTANCECOVID_LABEL_ORG"{{config_cache('instance.label.covid.org')}}"
    INSTANCEENABLE_CONFIG_CACHE{{config_cache('instance.enable_cc') ? '✅ true' : '❌ false' }}
    LDAPLDAP_CONNECTION"{{config_cache('ldap.default')}}"
    LDAPLDAP_LOGGING{{config_cache('ldap.logging') ? '✅ true' : '❌ false' }}
    LDAPLDAP_CACHE{{config_cache('ldap.cache.enabled') ? '✅ true' : '❌ false' }}
    LOGGINGLOG_CHANNEL"{{config_cache('logging.default')}}"
    LOGGINGLOG_LEVEL (stack)"{{config_cache('logging.channels.single.level')}}"
    MAILMAIL_DRIVER"{{config_cache('mail.default')}}"
    MAILMAIL_HOST"{{config_cache('mail.mailers.smtp.host')}}"
    MAILMAIL_PORT"{{config_cache('mail.mailers.smtp.port')}}"
    MAILMAIL_FROM_ADDRESS"{{config_cache('mail.from.address')}}"
    MAILMAIL_FROM_NAME"{{config_cache('mail.from.name')}}"
    MAILMAIL_ENCRYPTION"{{config_cache('mail.mailers.smtp.encryption')}}"
    MEDIAMEDIA_EXIF_DATABASE{{config_cache('media.exif.database') ? '✅ true' : '❌ false' }}
    PIXELFEDADMIN_DOMAIN"{{config_cache('pixelfed.domain.admin')}}"
    PIXELFEDAPP_DOMAIN"{{config_cache('pixelfed.domain.app')}}"
    PIXELFEDMEMORY_LIMIT"{{config_cache('pixelfed.memory_limit')}}"
    PIXELFEDOPEN_REGISTRATION{{config_cache('pixelfed.open_registration') ? '✅ true' : '❌ false' }}
    PIXELFEDMAX_ACCOUNT_SIZE (KB)"{{config_cache('pixelfed.max_account_size')}}"
    PIXELFEDMAX_PHOTO_SIZE (KB)"{{config_cache('pixelfed.max_photo_size')}}"
    PIXELFEDMAX_AVATAR_SIZE (KB)"{{config_cache('pixelfed.max_avatar_size')}}"
    PIXELFEDMAX_CAPTION_LENGTH"{{config_cache('pixelfed.max_caption_length')}}"
    PIXELFEDMAX_BIO_LENGTH"{{config_cache('pixelfed.max_bio_length')}}"
    PIXELFEDMAX_NAME_LENGTH"{{config_cache('pixelfed.max_name_length')}}"
    PIXELFEDMIN_PASSWORD_LENGTH"{{config_cache('pixelfed.min_password_length')}}"
    PIXELFEDMAX_ALBUM_LENGTH"{{config_cache('pixelfed.max_album_length')}}"
    PIXELFEDENFORCE_EMAIL_VERIFICATION{{config_cache('pixelfed.enforce_email_verification') ? '✅ true' : '❌ false' }}
    PIXELFEDIMAGE_QUALITY (1-100)"{{config_cache('pixelfed.image_quality')}}"
    PIXELFEDACCOUNT_DELETION{{config_cache('pixelfed.account_deletion') ? '✅ true' : '❌ false' }}
    PIXELFEDACCOUNT_DELETE_AFTER{{config_cache('pixelfed.account_delete_after') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_ENABLE_CLOUD{{(bool) config_cache('pixelfed.cloud_storage') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_MAX_USERS{{config_cache('pixelfed.max_users') ? config('pixelfed.max_users') : '❌ false'}}
    PIXELFEDPF_OPTIMIZE_IMAGES{{(bool) config_cache('pixelfed.optimize_image') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_OPTIMIZE_VIDEOS{{(bool) config_cache('pixelfed.optimize_video') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_USER_INVITES{{config_cache('pixelfed.user_invites.enabled') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_USER_INVITES_TOTAL_LIMIT"{{config_cache('pixelfed.user_invites.limit.total')}}"
    PIXELFEDPF_USER_INVITES_DAILY_LIMIT"{{config_cache('pixelfed.user_invites.limit.daily')}}"
    PIXELFEDPF_USER_INVITES_MONTHLY_LIMIT"{{config_cache('pixelfed.user_invites.limit.monthly')}}"
    PIXELFEDPF_MAX_COLLECTION_LENGTH"{{config_cache('pixelfed.max_collection_length')}}"
    PIXELFEDMEDIA_TYPES"{{config_cache('pixelfed.media_types')}}"
    PIXELFEDLIMIT_ACCOUNT_SIZE{{config_cache('pixelfed.enforce_account_limit') ? '✅ true' : '❌ false' }}
    PIXELFEDIMPORT_INSTAGRAM{{config_cache('pixelfed.import.instagram.enabled') ? '✅ true' : '❌ false' }}
    PIXELFEDIMPORT_INSTAGRAM_POST_LIMIT"{{config_cache('pixelfed.import.instagram.limits.posts')}}"
    PIXELFEDIMPORT_INSTAGRAM_SIZE_LIMIT"{{config_cache('pixelfed.import.instagram.limits.size')}}"
    PIXELFEDOAUTH_ENABLED{{ (bool) config_cache('pixelfed.oauth_enabled') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_BOUNCER_ENABLED{{(bool) config_cache('pixelfed.bouncer.enabled') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_MEDIA_FAST_PROCESS{{config_cache('pixelfed.media_fast_process') ? '✅ true' : '❌ false' }}
    PIXELFEDPF_MEDIA_MAX_ALTTEXT_LENGTH"{{config_cache('pixelfed.max_altext_length')}}"
    PURIFYRESTRICT_HTML_TYPESBROKEN
    QUEUEQUEUE_DRIVER"{{config_cache('queue.default')}}"
    SESSIONSESSION_DRIVER"{{config_cache('session.driver')}}"
    SESSIONSESSION_LIFETIME"{{config_cache('session.lifetime')}}"
    SESSIONSESSION_DOMAIN"{{config_cache('session.domain')}}"
    TRUSTEDPROXYTRUST_PROXIES"{{config_cache('trustedproxy.proxies')}}"
    +
    +
+
+
+
+
+
+ + +

The payload is from the "Something went wrong" page, anyone can copy the payload for you to decrypt.
Contents are encrypted due to potential sensitive information.

+
+
+ + +
+
+ +
+
+
+
+
@endsection diff --git a/resources/views/status/show.blade.php b/resources/views/status/show.blade.php index d9743c92f..9914e32eb 100644 --- a/resources/views/status/show.blade.php +++ b/resources/views/status/show.blade.php @@ -48,12 +48,15 @@ if($displayName && $captionPreview) { @push('meta')@if($mediaCount && $s['pf_type'] === "photo" || $s['pf_type'] === "photo:album") + @elseif($mediaCount && $s['pf_type'] === "video" || $s['pf_type'] === "video:album") + + @else + @endif - @endpush