Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NGルールで絵文字リアクションを拒否した場合、自分のサーバーのカスタム絵文字は常に拒否される #959

Open
kmycode opened this issue Dec 27, 2024 · 0 comments
Labels
bug Something isn't working
Milestone

Comments

@kmycode
Copy link
Owner

kmycode commented Dec 27, 2024

バグの再現手順

  1. NGルールで絵文字リアクションの拒否を設定
  2. 絵文字リアクションを拒否するドメインに自分以外を設定
  3. 自分のサーバーのカスタム絵文字を使って絵文字リアクションする

期待する動作

絵文字リアクションが正常に受容される

実際の動作

常に拒否される

詳しい情報

def reaction_match?
recipient = @options[:recipient]
return false if @ng_rule.reaction_allow_follower && (recipient.id == @account.id || (!recipient.local? && !@account.local?) || recipient.following?(@account))
if @options[:reaction_type] == 'emoji_reaction'
enum_match?(:reaction_type, @options[:reaction_type], @ng_rule.reaction_type) &&
text_match?(:emoji_reaction_name, @options[:emoji_reaction_name], @ng_rule.emoji_reaction_name) &&
text_match?(:emoji_reaction_origin_domain, @options[:emoji_reaction_origin_domain], @ng_rule.emoji_reaction_origin_domain)
else
enum_match?(:reaction_type, @options[:reaction_type], @ng_rule.reaction_type)
end
end

ここからtext_match?が呼び出されるが、ここではカスタム絵文字のドメインがnilだった場合、常にtrueを返すようになっている

def text_match?(_reason, text, arr)
return true if arr.blank? || !text.is_a?(String)
detect_keyword?(text, arr)
end

account_match?でやっているような特別な条件分岐をいれるべきである

バグが発生したkmyblueサーバーのドメイン

mstdn.yuicho.net

バグが発生したkmyblueのバージョン

16.1

ブラウザの名前

No response

OS

No response

その他の詳細情報

No response

@kmycode kmycode added the bug Something isn't working label Dec 27, 2024
@kmycode kmycode added this to the kb17 milestone Dec 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant