about summary refs log tree commit diff
path: root/app/models/account.rb
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2021-01-11 11:55:42 +0100
committerClaire <claire.github-309c@sitedethib.com>2021-01-11 11:55:42 +0100
commit33d30632fb627ba1742eff3e0c5fc84ccd156cdb (patch)
treeb7c15bb354c9d2f0ef25c50ab387007703f599d6 /app/models/account.rb
parentd42e7e01dcd464f80637682d4eee6e5a7f36f26e (diff)
parent11d603101a7b3389c679b8c155a3cb06203ca31a (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `app/models/public_feed.rb`:
  Upstream refactored a bit, glitch-soc had specific code for local-only
  statuses.
  Updated glitch-soc's specific code accordingly.
Diffstat (limited to 'app/models/account.rb')
-rw-r--r--app/models/account.rb36
1 files changed, 14 insertions, 22 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index f6aba74c6..15bd8a917 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -387,15 +387,17 @@ class Account < ApplicationRecord
   end
 
   class Field < ActiveModelSerializers::Model
-    attributes :name, :value, :verified_at, :account, :errors
+    attributes :name, :value, :verified_at, :account
 
     def initialize(account, attributes)
-      @account     = account
-      @attributes  = attributes
-      @name        = attributes['name'].strip[0, string_limit]
-      @value       = attributes['value'].strip[0, string_limit]
-      @verified_at = attributes['verified_at']&.to_datetime
-      @errors      = {}
+      @original_field = attributes
+      string_limit = account.local? ? 255 : 2047
+      super(
+        account:     account,
+        name:        attributes['name'].strip[0, string_limit],
+        value:       attributes['value'].strip[0, string_limit],
+        verified_at: attributes['verified_at']&.to_datetime,
+      )
     end
 
     def verified?
@@ -417,22 +419,12 @@ class Account < ApplicationRecord
     end
 
     def mark_verified!
-      @verified_at = Time.now.utc
-      @attributes['verified_at'] = @verified_at
+      self.verified_at = Time.now.utc
+      @original_field['verified_at'] = verified_at
     end
 
     def to_h
-      { name: @name, value: @value, verified_at: @verified_at }
-    end
-
-    private
-
-    def string_limit
-      if account.local?
-        255
-      else
-        2047
-      end
+      { name: name, value: value, verified_at: verified_at }
     end
   end
 
@@ -518,7 +510,7 @@ class Account < ApplicationRecord
     def from_text(text)
       return [] if text.blank?
 
-      text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.map do |(username, domain)|
+      text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.filter_map do |(username, domain)|
         domain = begin
           if TagManager.instance.local_domain?(domain)
             nil
@@ -527,7 +519,7 @@ class Account < ApplicationRecord
           end
         end
         EntityCache.instance.mention(username, domain)
-      end.compact
+      end
     end
 
     private