diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/account.rb | 4 | ||||
-rw-r--r-- | app/models/custom_emoji.rb | 8 | ||||
-rw-r--r-- | app/models/media_attachment.rb | 3 | ||||
-rw-r--r-- | app/models/preview_card.rb | 2 | ||||
-rw-r--r-- | app/models/remote_profile.rb | 12 | ||||
-rw-r--r-- | app/models/status.rb | 8 |
6 files changed, 19 insertions, 18 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index 1b996e3cc..de7998db4 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -52,7 +52,6 @@ class Account < ApplicationRecord include AccountInteractions include Attachmentable include Remotable - include EmojiHelper MAX_NOTE_LENGTH = 500 @@ -271,9 +270,6 @@ class Account < ApplicationRecord def prepare_contents display_name&.strip! note&.strip! - - self.display_name = emojify(display_name) - self.note = emojify(note) end def generate_keys diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb index f4d3b16a0..e80c58155 100644 --- a/app/models/custom_emoji.rb +++ b/app/models/custom_emoji.rb @@ -26,12 +26,18 @@ class CustomEmoji < ApplicationRecord validates_attachment :image, content_type: { content_type: 'image/png' }, presence: true, size: { in: 0..50.kilobytes } validates :shortcode, uniqueness: { scope: :domain }, format: { with: /\A#{SHORTCODE_RE_FRAGMENT}\z/ }, length: { minimum: 2 } + scope :local, -> { where(domain: nil) } + include Remotable class << self def from_text(text, domain) return [] if text.blank? - shortcodes = text.scan(SCAN_RE).map(&:first) + + shortcodes = text.scan(SCAN_RE).map(&:first).uniq + + return [] if shortcodes.empty? + where(shortcode: shortcodes, domain: domain) end end diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index d913e7372..e4a974f96 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -25,6 +25,9 @@ class MediaAttachment < ApplicationRecord enum type: [:image, :gifv, :video, :unknown] + IMAGE_FILE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif'].freeze + VIDEO_FILE_EXTENSIONS = ['.webm', '.mp4', '.m4v'].freeze + IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze VIDEO_MIME_TYPES = ['video/webm', 'video/mp4'].freeze diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index b7efac354..e2bf65d94 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -32,7 +32,7 @@ class PreviewCard < ApplicationRecord has_and_belongs_to_many :statuses - has_attached_file :image, styles: { original: '280x120>' }, convert_options: { all: '-quality 80 -strip' } + has_attached_file :image, styles: { original: '280x280>' }, convert_options: { all: '-quality 80 -strip' } include Attachmentable include Remotable diff --git a/app/models/remote_profile.rb b/app/models/remote_profile.rb index 93c759930..613911c57 100644 --- a/app/models/remote_profile.rb +++ b/app/models/remote_profile.rb @@ -10,11 +10,11 @@ class RemoteProfile end def root - @root ||= document.at_xpath('/atom:feed|/atom:entry', atom: TagManager::XMLNS) + @root ||= document.at_xpath('/atom:feed|/atom:entry', atom: OStatus::TagManager::XMLNS) end def author - @author ||= root.at_xpath('./atom:author|./dfrn:owner', atom: TagManager::XMLNS, dfrn: TagManager::DFRN_XMLNS) + @author ||= root.at_xpath('./atom:author|./dfrn:owner', atom: OStatus::TagManager::XMLNS, dfrn: OStatus::TagManager::DFRN_XMLNS) end def hub_link @@ -22,15 +22,15 @@ class RemoteProfile end def display_name - @display_name ||= author.at_xpath('./poco:displayName', poco: TagManager::POCO_XMLNS)&.content + @display_name ||= author.at_xpath('./poco:displayName', poco: OStatus::TagManager::POCO_XMLNS)&.content end def note - @note ||= author.at_xpath('./atom:summary|./poco:note', atom: TagManager::XMLNS, poco: TagManager::POCO_XMLNS)&.content + @note ||= author.at_xpath('./atom:summary|./poco:note', atom: OStatus::TagManager::XMLNS, poco: OStatus::TagManager::POCO_XMLNS)&.content end def scope - @scope ||= author.at_xpath('./mastodon:scope', mastodon: TagManager::MTDN_XMLNS)&.content + @scope ||= author.at_xpath('./mastodon:scope', mastodon: OStatus::TagManager::MTDN_XMLNS)&.content end def avatar @@ -48,6 +48,6 @@ class RemoteProfile private def link_href_from_xml(xml, type) - xml.at_xpath(%(./atom:link[@rel="#{type}"]/@href), atom: TagManager::XMLNS)&.content + xml.at_xpath(%(./atom:link[@rel="#{type}"]/@href), atom: OStatus::TagManager::XMLNS)&.content end end diff --git a/app/models/status.rb b/app/models/status.rb index 326d128d6..ea4c097bf 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -30,7 +30,6 @@ class Status < ApplicationRecord include Streamable include Cacheable include StatusThreadingConcern - include EmojiHelper enum visibility: [:public, :unlisted, :private, :direct], _suffix: :visibility @@ -132,7 +131,7 @@ class Status < ApplicationRecord end def emojis - CustomEmoji.from_text(text, account.domain) + CustomEmoji.from_text([spoiler_text, text].join(' '), account.domain) end after_create :store_uri, if: :local? @@ -146,7 +145,7 @@ class Status < ApplicationRecord class << self def not_in_filtered_languages(account) - where.not(language: account.filtered_languages) + where(language: nil).or where.not(language: account.filtered_languages) end def as_home_timeline(account) @@ -267,9 +266,6 @@ class Status < ApplicationRecord def prepare_contents text&.strip! spoiler_text&.strip! - - self.text = emojify(text) - self.spoiler_text = emojify(spoiler_text) end def set_reblog |