mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 00:52:26 -05:00 
			
		
		
		
	[bugfix] fix refreshed additional media info being ignored (#3867)
* fix refreshed additional media info being ignored when force flag already set * also update to always iterate through all additional info fields * make similar changes for emoji, even if not necessary, just to keep in-sync
This commit is contained in:
		
					parent
					
						
							
								3cc2b934fa
							
						
					
				
			
			
				commit
				
					
						f5967d0b76
					
				
			
		
					 2 changed files with 29 additions and 22 deletions
				
			
		|  | @ -134,19 +134,23 @@ func (d *Dereferencer) RefreshEmoji( | |||
| 	*gtsmodel.Emoji, | ||||
| 	error, | ||||
| ) { | ||||
| 	// Check emoji is up-to-date | ||||
| 	// with provided extra info. | ||||
| 	switch { | ||||
| 	case info.URI != nil && | ||||
| 		*info.URI != emoji.URI: | ||||
| 	// Check uri up-to-date. | ||||
| 	if info.URI != nil && | ||||
| 		*info.URI != emoji.URI { | ||||
| 		emoji.URI = *info.URI | ||||
| 		force = true | ||||
| 	case info.ImageRemoteURL != nil && | ||||
| 		*info.ImageRemoteURL != emoji.ImageRemoteURL: | ||||
| 	} | ||||
| 
 | ||||
| 	// Check image remote URL up-to-date. | ||||
| 	if info.ImageRemoteURL != nil && | ||||
| 		*info.ImageRemoteURL != emoji.ImageRemoteURL { | ||||
| 		emoji.ImageRemoteURL = *info.ImageRemoteURL | ||||
| 		force = true | ||||
| 	case info.ImageStaticRemoteURL != nil && | ||||
| 		*info.ImageStaticRemoteURL != emoji.ImageStaticRemoteURL: | ||||
| 	} | ||||
| 
 | ||||
| 	// Check image static remote URL up-to-date. | ||||
| 	if info.ImageStaticRemoteURL != nil && | ||||
| 		*info.ImageStaticRemoteURL != emoji.ImageStaticRemoteURL { | ||||
| 		emoji.ImageStaticRemoteURL = *info.ImageStaticRemoteURL | ||||
| 		force = true | ||||
| 	} | ||||
|  |  | |||
|  | @ -125,20 +125,23 @@ func (d *Dereferencer) RefreshMedia( | |||
| 		return attach, nil | ||||
| 	} | ||||
| 
 | ||||
| 	// Check emoji is up-to-date | ||||
| 	// with provided extra info. | ||||
| 	switch { | ||||
| 	case force: | ||||
| 	case info.Blurhash != nil && | ||||
| 		*info.Blurhash != attach.Blurhash: | ||||
| 	// Check blurhash up-to-date. | ||||
| 	if info.Blurhash != nil && | ||||
| 		*info.Blurhash != attach.Blurhash { | ||||
| 		attach.Blurhash = *info.Blurhash | ||||
| 		force = true | ||||
| 	case info.Description != nil && | ||||
| 		*info.Description != attach.Description: | ||||
| 	} | ||||
| 
 | ||||
| 	// Check description up-to-date. | ||||
| 	if info.Description != nil && | ||||
| 		*info.Description != attach.Description { | ||||
| 		attach.Description = *info.Description | ||||
| 		force = true | ||||
| 	case info.RemoteURL != nil && | ||||
| 		*info.RemoteURL != attach.RemoteURL: | ||||
| 	} | ||||
| 
 | ||||
| 	// Check remote URL up-to-date. | ||||
| 	if info.RemoteURL != nil && | ||||
| 		*info.RemoteURL != attach.RemoteURL { | ||||
| 		attach.RemoteURL = *info.RemoteURL | ||||
| 		force = true | ||||
| 	} | ||||
|  | @ -214,10 +217,10 @@ func (d *Dereferencer) updateAttachment( | |||
| 	) | ||||
| } | ||||
| 
 | ||||
| // processingEmojiSafely provides concurrency-safe processing of | ||||
| // an emoji with given shortcode+domain. if a copy of the emoji is | ||||
| // processingMediaSafely provides concurrency-safe processing of | ||||
| // a media with given remote URL string. if a copy of the media is | ||||
| // not already being processed, the given 'process' callback will | ||||
| // be used to generate new *media.ProcessingEmoji{} instance. | ||||
| // be used to generate new *media.ProcessingMedia{} instance. | ||||
| func (d *Dereferencer) processMediaSafeley( | ||||
| 	ctx context.Context, | ||||
| 	remoteURL string, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue