diff --git a/app/lib/bangtags.rb b/app/lib/bangtags.rb index d18141e71..9bcea41df 100644 --- a/app/lib/bangtags.rb +++ b/app/lib/bangtags.rb @@ -41,7 +41,7 @@ class Bangtags status.text.gsub!('#!!', "#\u200c!") status.text.split(/(#!(?:.*:!#|{.*?}|[^\s#]+))/).each do |chunk| - if @vore_stack.last == '_draft' + if @vore_stack.last == '_draft' || (@chunks.present? && @chunks.first.include?('#!draft')) @chunks << chunk elsif chunk.starts_with?("#!") chunk.sub!(/(\\:)?+:+?!#\Z/, '\1') @@ -396,7 +396,7 @@ class Bangtags end when 'draft' chunk = nil - @chunks.insert(0, "[center]`#!draft!#`[/center]\n") unless @chunks.first.include?('#!draft') + @chunks.insert(0, "[center]`#!draft!#`[/center]\n") unless @chunks.present? && @chunks.first.include?('#!draft') status.visibility = :direct @vore_stack.push('_draft') @component_stack.push(:var) diff --git a/app/models/status.rb b/app/models/status.rb index 0b3d3cb26..1141d3f4f 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -211,6 +211,10 @@ class Status < ApplicationRecord proper.text end + def draft? + local? && text.present? && text.include?('#!draft') + end + def target reblog end diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index 989cc19a6..0d5f44a53 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -8,7 +8,7 @@ class ProcessMentionsService < BaseService # remote users # @param [Status] status def call(status) - return unless status.local? + return unless status.local? && !status.draft? @status = status mentions = []