From 5c60f230cba68b46a93a6316a265838bd62f7c0f Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Wed, 19 Feb 2020 15:43:29 -0600 Subject: move bangtag processing responsibility to `PostStatusService` --- app/lib/bangtags.rb | 2 +- app/models/status.rb | 15 --------------- app/services/post_status_service.rb | 6 ++++++ 3 files changed, 7 insertions(+), 16 deletions(-) (limited to 'app') diff --git a/app/lib/bangtags.rb b/app/lib/bangtags.rb index d9da6147c..900ba9e1c 100644 --- a/app/lib/bangtags.rb +++ b/app/lib/bangtags.rb @@ -603,7 +603,7 @@ class Bangtags when 'publish' chunk = nil del_tags(@parent_status, 'self.draft', 'draft') - @parent_status.process_bangtags! + Bangtags.new(@parent_status).process PostStatusWorker.perform_async(@parent_status.id, hidden: false, process_mentions: true) end diff --git a/app/models/status.rb b/app/models/status.rb index 15ad76944..01091f15a 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -395,7 +395,6 @@ class Status < ApplicationRecord around_create Mastodon::Snowflake::Callbacks before_create :set_locality - before_create :process_bangtags?, if: :local? before_validation :prepare_contents, if: :local? before_validation :set_reblog @@ -408,7 +407,6 @@ class Status < ApplicationRecord after_save :update_sharekey, if: :local? after_save :update_origin, if: :local? - after_save :process_bangtags, if: :local? class << self def search_for(term, account = nil, limit = 33, offset = 0) @@ -709,19 +707,6 @@ class Status < ApplicationRecord self.reject_replies = marked_reject_replies? end - def process_bangtags? - @_process_bangtags |= text_changed? - end - - def process_bangtags! - Bangtags.new(self).process - end - - def process_bangtags - return unless @_process_bangtags - process_bangtags! - end - def update_sharekey return if @_sharekey.nil? if self.sharekey.nil? diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 3e0dde72c..696a333f1 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -232,6 +232,8 @@ class PostStatusService < BaseService @status = @account.statuses.create!(status_attributes) end + process_bangtags + return false if @status.destroyed? @hidden = @status.keep_hidden? if @hidden.blank? @@ -276,6 +278,10 @@ class PostStatusService < BaseService raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:video?) end + def process_bangtags + Bangtags.new(@status).process + end + def process_mentions if @options[:mentions].present? @options[:mentions].each do |mentioned_account| -- cgit