Merge commit 'b9f59ebcc68e9da0a7158741a1a2ef3564e1321e' into merging-upstream

This commit is contained in:
Ondřej Hruška
2017-09-28 09:18:35 +02:00
4750 changed files with 5257 additions and 3475 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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