You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pixelfed/app/Services
Anil Kulkarni dbd2e17728
Ensure the cloud url is used when publishing a status to activitypub
Posting is done in two steps - first the media is uploaded and that begins a processing pipeline. When the media is finally
processed, the media pipeline sets the cdn_url to the final image (in the cloud if configured).
At any time, the user can click post. This begins a separate NewStatusPipeline to deliver the status over ActivityPub.
This causes a race. If the NewStatusPipeline runs before the media finishes processing, then the status is delivered with
the un-processed (and un-optimized images). If pixelfed is set to use cloud storage, then the ActivityPub message also incorrectly
uses the local media.

This commit fixes the race condition by waiting for all the media to be processed before sending the message over ActivityPub.
A new publish_delayed column is set per-post, indicating whether the
status should be delayed until all media is processed.

Then, the NewStatusPipeline is called twice per post -
When the media finishes processing and when the status is posted.

Both times, the pipeline will check to see if it's valid to post
If so, the pipeline will try to set publish_delayed to false
and only if it is the first time doing so, will it publish the post
3 months ago
..
Account Update snowflake config, allow custom datacenter/worker ids 10 months ago
Federation Add ActiveSharedInboxService, for efficient sharedInbox caching 1 year ago
Groups Update GroupActivityPubService.php 2 years ago
Internal Update config, allow Beagle discover service to be disabled 1 year ago
Media Add MediaHlsService 2 years ago
Status Update Status caption logic, stop storing duplicate html caption in db and defer to cached StatusService rendering 1 year ago
AccountService.php Update ApiV1Controller, handle Moved accounts 1 year ago
ActivityPubDeliveryService.php
ActivityPubFetchService.php Update ActivityPubFetchService, reduce cache ttl from 1 hour to 7.5 mins and add uncached fetchRequest method 1 year ago
AdminSettingsService.php Add Authorized Fetch 1 year ago
AdminShadowFilterService.php Add AdminShadowFilter feature 2 years ago
AdminStatsService.php AdminStatsService: do not count deleted users 12 months ago
AutolinkService.php Update AutolinkService, optimize lookups 1 year ago
AutospamService.php Update autospam config, use config_cache 2 years ago
AvatarService.php Update AvatarPipeline, improve refresh logic and garbage collection to purge old avatars 2 years ago
BookmarkService.php
BouncerService.php
CollectionService.php
ConfigCacheService.php Add Authorized Fetch 1 year ago
CustomEmojiService.php Update CustomEmojiService, only return local emoji 2 years ago
DiscoverService.php
DomainService.php Update AP fetch service and domain service 2 years ago
EmailService.php
FetchCacheService.php Add Profile Migrations 2 years ago
FilesystemService.php Update filesystems config, add to config_cache 2 years ago
FollowerService.php Update DirectMessageController, add mutuals endpoint 5 months ago
GroupFeedService.php Add groups models, controllers and services 2 years ago
GroupPostService.php Add groups models, controllers and services 2 years ago
GroupService.php Add groups models, controllers and services 2 years ago
HashidService.php Update config_cache 2 years ago
HashtagFollowService.php Update HashtagFollowService, fix cache invalidation bug 2 years ago
HashtagRelatedService.php Add app:hashtag-related-generate command 2 years ago
HashtagService.php Update HashtagService, reduce cached_count cache ttl 2 years ago
HomeTimelineService.php Update HomeTimelineService, add domain blocks filtering to warmCache method 2 years ago
ImportService.php Fix race condition 6 months ago
InstanceService.php Update InstanceService, fix total post count when config_cache is disabled 4 months ago
LandingService.php Update LandingService and Config util to properly support the legal_notice setting 9 months ago
LikeService.php Update ApiV1Controller, fix max_id pagination on home and public timeline feeds 10 months ago
LiveStreamService.php
MarkerService.php Update MarkerService, fix php deprecation warning 2 years ago
MediaBlocklistService.php
MediaPathService.php
MediaService.php Update MediaService 8 months ago
MediaStorageService.php Ensure the cloud url is used when publishing a status to activitypub 3 months ago
MediaTagService.php
ModLogService.php
NetworkTimelineService.php Update Services, use zpopmin on predis 3 years ago
NodeinfoService.php Lint 1 year ago
NotificationAppGatewayService.php Update NotificationAppGatewayService 1 year ago
NotificationService.php Update ApiV1Controller, improve notification filtering 2 years ago
PlaceService.php Update Places, improve cache invalidation/ttl 8 months ago
PollService.php
ProfileService.php
ProfileStatusService.php
PronounService.php Update PronounService.php with it its pronouns 1 year ago
PublicTimelineService.php Add AdminShadowFilter feature 2 years ago
PushNotificationService.php Fix notifications not being delivered by directly checking the state from the database 1 year ago
ReblogService.php Update ReblogService, fix cache sync issues 1 year ago
RelationshipService.php Update ApiV1Controller, fix relationship fields. Fixes #5900 9 months ago
ResilientMediaStorageService.php Add Resilient Media Storage 2 years ago
SanitizeService.php Update SanitizeService, improve tag coverage 4 months ago
SearchApiV2Service.php Update SearchApiV2Service, fix offset bug. Fixes #5875 9 months ago
SnowflakeService.php Update snowflake config, allow custom datacenter/worker ids 10 months ago
StatusHashtagService.php Update StatusHashtagService, use more efficient cached count 2 years ago
StatusLabelService.php
StatusMentionService.php
StatusService.php Fix pinned posts implementation 10 months ago
StoryIndexService.php Update StoryIndexService.php 5 months ago
StoryService.php
SuggestionService.php
TrendingHashtagService.php
UserFilterService.php Update UserFilterService, add domainBlocks method 2 years ago
UserOidcService.php field isnt accessTokenResourceOwnerId but responseResourceOwnerId 9 months ago
UserRoleService.php Update ParentalControls, map updated saved permissions/roles 2 years ago
UserStorageService.php Add UserStorageService 1 year ago
WebfingerService.php Update WebfingerService, apply banned domains to webfinger logic 9 months ago