Sensitive content federates using the "nsfw" hashtag
							parent
							
								
									f90133d2ad
								
							
						
					
					
						commit
						e90fcb46e3
					
				|  | @ -10,7 +10,8 @@ const messages = defineMessages({ | |||
|   block: { id: 'account.block', defaultMessage: 'Block' }, | ||||
|   reply: { id: 'status.reply', defaultMessage: 'Reply' }, | ||||
|   reblog: { id: 'status.reblog', defaultMessage: 'Reblog' }, | ||||
|   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' } | ||||
|   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, | ||||
|   open: { id: 'status.open', defaultMessage: 'Expand' } | ||||
| }); | ||||
| 
 | ||||
| const StatusActionBar = React.createClass({ | ||||
|  | @ -55,10 +56,16 @@ const StatusActionBar = React.createClass({ | |||
|     this.props.onBlock(this.props.status.get('account')); | ||||
|   }, | ||||
| 
 | ||||
|   handleOpen () { | ||||
|     this.context.router.push(`/statuses/${this.props.status.get('id')}`); | ||||
|   }, | ||||
| 
 | ||||
|   render () { | ||||
|     const { status, me, intl } = this.props; | ||||
|     let menu = []; | ||||
| 
 | ||||
|     menu.push({ text: intl.formatMessage(messages.open), action: this.handleOpen }); | ||||
| 
 | ||||
|     if (status.getIn(['account', 'id']) === me) { | ||||
|       menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick }); | ||||
|     } else { | ||||
|  |  | |||
|  | @ -53,8 +53,8 @@ module AtomBuilderHelper | |||
|     xml.author(&block) | ||||
|   end | ||||
| 
 | ||||
|   def category(xml, tag) | ||||
|     xml.category(term: tag.name) | ||||
|   def category(xml, term) | ||||
|     xml.category(term: term) | ||||
|   end | ||||
| 
 | ||||
|   def target(xml, &block) | ||||
|  | @ -203,8 +203,10 @@ module AtomBuilderHelper | |||
|           end | ||||
| 
 | ||||
|           stream_entry.target.tags.each do |tag| | ||||
|             category xml, tag | ||||
|             category xml, tag.name | ||||
|           end | ||||
| 
 | ||||
|           category(xml, 'nsfw') if stream_entry.target.sensitive? | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|  | @ -222,8 +224,10 @@ module AtomBuilderHelper | |||
|     end | ||||
| 
 | ||||
|     stream_entry.activity.tags.each do |tag| | ||||
|       category xml, tag | ||||
|       category xml, tag.name | ||||
|     end | ||||
| 
 | ||||
|     category(xml, 'nsfw') if stream_entry.activity.sensitive? | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
|  |  | |||
|  | @ -7,5 +7,7 @@ class ProcessHashtagsService < BaseService | |||
|     tags.map { |str| str.mb_chars.downcase }.uniq.each do |tag| | ||||
|       status.tags << Tag.where(name: tag).first_or_initialize(name: tag) | ||||
|     end | ||||
| 
 | ||||
|     status.update(sensitive: true) if tags.include?('nsfw') | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue