If an OStatus message contains nsfw hashtag, mark it as sensitive (#7398)
* If an OStatus message contains nsfw hashtag, mark it as sensitive Undo parts of #7048 * Put nsfw hashtag on OStatus messages if they have any media * Fix code style issues
This commit is contained in:
		
							parent
							
								
									42cd363542
								
							
						
					
					
						commit
						6208ea5a53
					
				| @ -46,7 +46,8 @@ class OStatus::Activity::Creation < OStatus::Activity::Base | |||||||
|         visibility: visibility_scope, |         visibility: visibility_scope, | ||||||
|         conversation: find_or_create_conversation, |         conversation: find_or_create_conversation, | ||||||
|         thread: thread? ? find_status(thread.first) || find_activitypub_status(thread.first, thread.second) : nil, |         thread: thread? ? find_status(thread.first) || find_activitypub_status(thread.first, thread.second) : nil, | ||||||
|         media_attachment_ids: media_attachments.map(&:id) |         media_attachment_ids: media_attachments.map(&:id), | ||||||
|  |         sensitive: sensitive? | ||||||
|       ) |       ) | ||||||
| 
 | 
 | ||||||
|       save_mentions(status) |       save_mentions(status) | ||||||
| @ -105,6 +106,11 @@ class OStatus::Activity::Creation < OStatus::Activity::Base | |||||||
| 
 | 
 | ||||||
|   private |   private | ||||||
| 
 | 
 | ||||||
|  |   def sensitive? | ||||||
|  |     # OStatus-specific convention (not standard) | ||||||
|  |     @xml.xpath('./xmlns:category', xmlns: OStatus::TagManager::XMLNS).any? { |category| category['term'] == 'nsfw' } | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def find_or_create_conversation |   def find_or_create_conversation | ||||||
|     uri = @xml.at_xpath('./ostatus:conversation', ostatus: OStatus::TagManager::OS_XMLNS)&.attribute('ref')&.content |     uri = @xml.at_xpath('./ostatus:conversation', ostatus: OStatus::TagManager::OS_XMLNS)&.attribute('ref')&.content | ||||||
|     return if uri.nil? |     return if uri.nil? | ||||||
|  | |||||||
| @ -368,6 +368,7 @@ class OStatus::AtomSerializer | |||||||
|       append_element(entry, 'link', nil, rel: :enclosure, type: media.file_content_type, length: media.file_file_size, href: full_asset_url(media.file.url(:original, false))) |       append_element(entry, 'link', nil, rel: :enclosure, type: media.file_content_type, length: media.file_file_size, href: full_asset_url(media.file.url(:original, false))) | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     append_element(entry, 'category', nil, term: 'nsfw') if status.sensitive? && status.media_attachments.any? | ||||||
|     append_element(entry, 'mastodon:scope', status.visibility) |     append_element(entry, 'mastodon:scope', status.visibility) | ||||||
| 
 | 
 | ||||||
|     status.emojis.each do |emoji| |     status.emojis.each do |emoji| | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user