Two query patterns were copy-pasted across several call sites:
- The 'users who blocked me, plus myself' list used to filter profile
search (UserFilter::whereFilterableId($pid)->pluck('user_id')->push($pid))
appeared in ComposeController (x2) and DirectMessageController. Extracted
to UserFilterService::searchExcludedProfileIds(). Note this is the
inverse of blocks() (who I blocked), so it is a distinct method.
- CustomEmoji duplicate detection (groupBy('shortcode')->havingRaw(
'count(*) > 1')) appeared three times in AdminController. Extracted to a
CustomEmoji::duplicateShortcodes() query scope.
Adds tests for both. No behaviour change.
|
3 weeks ago | |
|---|---|---|
| .ddev | 1 year ago | |
| .github | 3 weeks ago | |
| .vscode | 3 years ago | |
| app | 3 weeks ago | |
| bootstrap | 3 weeks ago | |
| config | 3 weeks ago | |
| database | 3 weeks ago | |
| notes | 4 weeks ago | |
| public | 3 weeks ago | |
| resources | 3 weeks ago | |
| routes | 3 weeks ago | |
| storage | 3 years ago | |
| tests | 3 weeks ago | |
| .dockerignore | 4 weeks ago | |
| .editorconfig | 3 years ago | |
| .env.docker.example | 4 weeks ago | |
| .env.example | 4 weeks ago | |
| .env.testing | 3 weeks ago | |
| .gitattributes | 3 years ago | |
| .gitignore | 4 weeks ago | |
| .markdownlint.json | 3 years ago | |
| .node-version | ||
| .shellcheckrc | 3 years ago | |
| CHANGELOG.md | 4 weeks ago | |
| CODEOWNERS | 3 years ago | |
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | 2 years ago | |
| DOCKER_COMPOSE_SETUP.md | 4 weeks ago | |
| Dockerfile | 1 month ago | |
| LICENSE | ||
| README.md | 1 year ago | |
| SECURITY.md | ||
| artisan | 3 weeks ago | |
| composer.json | 3 weeks ago | |
| composer.lock | 3 weeks ago | |
| crowdin.yml | ||
| docker-compose.test.yml | 4 weeks ago | |
| docker-compose.yml | 4 weeks ago | |
| funding.json | 2 years ago | |
| larastan | 4 weeks ago | |
| package-lock.json | 3 weeks ago | |
| package.json | 3 weeks ago | |
| phpstan.neon | 4 weeks ago | |
| phpunit.xml | 4 weeks ago | |
| pint.json | 4 weeks ago | |
| psalm-baseline.xml | 4 weeks ago | |
| psalm.xml | 4 weeks ago | |
| server.php | ||
| webpack.mix.js | 1 year ago | |
README.md
Introduction
Photo sharing the way it should be. Pixelfed lets your casual shots and creative photography find their audience naturally, without algorithmic barriers. Join millions of people sharing across the fediverse.
Official Documentation
Documentation for Pixelfed can be found on the Pixelfed documentation website.
Run on YunoHost
Pixelfed app for YunoHost. See the package source code
License
Pixelfed is open-sourced software licensed under the AGPL license.
Communication
The ways you can communicate on the project are below. Before interacting, please read through the Code Of Conduct.
- Mastodon: @pixelfed@mastodon.social
- E-mail: hello@pixelfed.org
Pixelfed Sponsors
We would like to extend our thanks to the following sponsors for funding Pixelfed development. If you are interested in becoming a sponsor, please visit the Pixelfed Patreon Page
- NLnet Foundation and NGI0 Discovery, part of the Next Generation Internet initiative.
This project is supported by:
