diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-12-30 19:20:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-30 19:20:43 +0100 |
commit | f86ee4b59f25727d248609e0afe277a4f69f6be7 (patch) | |
tree | 8bc4518d8ec59d2f23f10a5c5a67709bee2de610 /app/models | |
parent | b2f81060b75e5128279cd3f85f55de0982e8f35b (diff) |
Fix IDN mentions not being processed, IDN domains not being rendered (#12715)
This changes the REST API to return unicode domains in the `acct` attribute instead of punycode, and to render unicode instead of punycode on public HTML pages as well. Fix #7812, fix #12246
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/account.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index 884332e5a..feaf273c1 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -50,7 +50,7 @@ class Account < ApplicationRecord USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i - MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i + MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[a-z0-9]+)?)/i include AccountAssociations include AccountAvatar @@ -164,6 +164,10 @@ class Account < ApplicationRecord local? ? username : "#{username}@#{domain}" end + def pretty_acct + local? ? username : "#{username}@#{Addressable::IDNA.to_unicode(domain)}" + end + def local_username_and_domain "#{username}@#{Rails.configuration.x.local_domain}" end |