From afc808ca54a468998cbfe5f42f766ffbe47c2c6c Mon Sep 17 00:00:00 2001 From: KMY Date: Tue, 21 Mar 2023 17:47:27 +0900 Subject: [PATCH 1/5] Fix under 5 minutes expiration statuses --- app/services/update_status_expiration_service.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/services/update_status_expiration_service.rb b/app/services/update_status_expiration_service.rb index 02ea106dbf..4f60a12fbb 100644 --- a/app/services/update_status_expiration_service.rb +++ b/app/services/update_status_expiration_service.rb @@ -13,8 +13,13 @@ class UpdateStatusExpirationService < BaseService expiration_num = expiration[1].to_f expiration_option = expiration[2] base_time = status.created_at || Time.now.utc + due = expiration_option == 'd' ? expiration_num.days : + expiration_option == 'h' ? expiration_num.hours : + expiration_option == 's' ? expiration_num.seconds : expiration_num.minutes - expired_at = base_time + (expiration_option == 'd' ? expiration_num.days : expiration_option == 'h' ? expiration_num.hours : expiration_option == 's' ? expiration_num.seconds : expiration_num.minutes) - ScheduledExpirationStatus.create!(account: status.account, status: status, scheduled_at: expired_at) + expired_at = base_time + due + expired_status = ScheduledExpirationStatus.create!(account: status.account, status: status, scheduled_at: expired_at) + + RemoveExpiredStatusWorker.perform_at(expired_at, expired_status.id) if due < PostStatusService::MIN_SCHEDULE_OFFSET end end From ca3bfbadcb1a2d3e761476c393c95562b9cddce6 Mon Sep 17 00:00:00 2001 From: KMY Date: Tue, 21 Mar 2023 18:00:58 +0900 Subject: [PATCH 2/5] Fix where scope joins error --- app/services/concerns/account_limitable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/concerns/account_limitable.rb b/app/services/concerns/account_limitable.rb index 9788eda91e..7e14997f6b 100644 --- a/app/services/concerns/account_limitable.rb +++ b/app/services/concerns/account_limitable.rb @@ -24,7 +24,7 @@ module AccountLimitable end def scope_status_mentioned(status) - status.active_mentions.where.joins(:account).merge(Account.local).select('account_id AS id').reorder(nil) + status.active_mentions.joins(:account).merge(Account.local).select('account_id AS id').reorder(nil) end # TODO: not work From f2e0d5b634324a2981bd63105fb7797506afd2e6 Mon Sep 17 00:00:00 2001 From: KMY Date: Tue, 21 Mar 2023 22:09:38 +0900 Subject: [PATCH 3/5] Fix activitypub link href checker to ignore no-url --- lib/sanitize_ext/sanitize_config.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index fdcb0c450b..f538ca95b6 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -54,11 +54,14 @@ class Sanitize return unless env[:node_name] == 'a' current_node = env[:node] - href = current_node['href'] + href = current_node['href'] || '' text = current_node.text cls = current_node['class'] || '' - scheme = if current_node['href'] =~ Sanitize::REGEX_PROTOCOL + dot_pos = text.index('.') + return unless dot_pos.present? && dot_pos > 0 && dot_pos < text.size - 1 + + scheme = if href =~ Sanitize::REGEX_PROTOCOL Regexp.last_match(1).downcase else :relative From 2eae1bb9bf6d1238edc26761a10c7eddf4113c71 Mon Sep 17 00:00:00 2001 From: KMY Date: Wed, 22 Mar 2023 22:50:01 +0900 Subject: [PATCH 4/5] Fix chrome cosole errors --- app/javascript/mastodon/components/status_action_bar.jsx | 4 +++- .../mastodon/features/status/components/action_bar.jsx | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx index 653b1da031..1a6be65eef 100644 --- a/app/javascript/mastodon/components/status_action_bar.jsx +++ b/app/javascript/mastodon/components/status_action_bar.jsx @@ -141,6 +141,8 @@ class StatusActionBar extends ImmutablePureComponent { } }; + handleEmojiPickInnerButton = () => {}; + handleReblogClick = e => { const { signedIn } = this.context.identity; @@ -371,7 +373,7 @@ class StatusActionBar extends ImmutablePureComponent { ); const emojiPickerButton = ( - + ); return ( diff --git a/app/javascript/mastodon/features/status/components/action_bar.jsx b/app/javascript/mastodon/features/status/components/action_bar.jsx index e0f4cee26f..7ae8dc97a3 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.jsx +++ b/app/javascript/mastodon/features/status/components/action_bar.jsx @@ -186,6 +186,8 @@ class ActionBar extends React.PureComponent { this.props.onEmojiReact(this.props.status, data); }; + handleEmojiPickInnerButton = () => {}; + render () { const { status, relationship, intl } = this.props; const { signedIn, permissions } = this.context.identity; @@ -268,7 +270,7 @@ class ActionBar extends React.PureComponent { ); const emojiPickerButton = ( - + ); let replyIcon; From 2cdaf2af766649a3464385db56f0082e52aa8503 Mon Sep 17 00:00:00 2001 From: KMY Date: Wed, 22 Mar 2023 22:50:18 +0900 Subject: [PATCH 5/5] Change timing to get image size --- app/controllers/admin/custom_emojis_controller.rb | 6 ------ app/models/custom_emoji.rb | 13 +++++++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index 37032e6ba4..00d069cdfb 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'fastimage' - module Admin class CustomEmojisController < BaseController def index @@ -20,11 +18,7 @@ module Admin def create authorize :custom_emoji, :create? - image_size = FastImage.size(params[:custom_emoji][:image]) - @custom_emoji = CustomEmoji.new(resource_params) - @custom_emoji.image_width = image_size[0] - @custom_emoji.image_height = image_size[1] if @custom_emoji.save log_action :create, @custom_emoji diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb index f4b872d7c5..ff93d01654 100644 --- a/app/models/custom_emoji.rb +++ b/app/models/custom_emoji.rb @@ -56,6 +56,8 @@ class CustomEmoji < ApplicationRecord after_commit :remove_entity_cache + after_post_process :set_size + def local? domain.nil? end @@ -99,4 +101,15 @@ class CustomEmoji < ApplicationRecord def downcase_domain self.domain = domain.downcase unless domain.nil? end + + def set_size + image.queued_for_write.each do |style, file| + if style == :original + image_size = FastImage.size(file.path) + self.image_width = image_size[0] + self.image_height = image_size[1] + return + end + end + end end