~cytrogen/masto-fe

a40529fa79c6882eb1929014e5f9324d8e81ae49 — Claire 2 years ago 513078d + b9aa228
Merge pull request #2279 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes
M CHANGELOG.md => CHANGELOG.md +9 -1
@@ 2,6 2,14 @@

All notable changes to this project will be documented in this file.

## [4.1.4] - 2023-07-07

### Fixed

- Fix branding:generate_app_icons failing because of disallowed ICO coder ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25794))
- Fix crash in admin interface when viewing a remote user with verified links ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25796))
- Fix processing of media files with unusual names ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25788))

## [4.1.3] - 2023-07-06

### Added


@@ 29,7 37,7 @@ All notable changes to this project will be documented in this file.
- Fix multiple inefficiencies in automatic post cleanup worker ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24607), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24785), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24840))
- Fix performance of streaming by parsing message JSON once ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25278), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25361))
- Fix CSP headers when `S3_ALIAS_HOST` includes a path component ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25273))
- Fix `tootctl accounts approve --number N` not aproving N earliest registrations ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24605))
- Fix `tootctl accounts approve --number N` not approving N earliest registrations ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24605))
- Fix reports not being closed when performing batch suspensions ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24988))
- Fix being able to vote on your own polls ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25015))
- Fix race condition when reblogging a status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25016))

M Gemfile.lock => Gemfile.lock +2 -2
@@ 432,7 432,7 @@ GEM
      net-protocol
    net-ssh (7.1.0)
    nio4r (2.5.9)
    nokogiri (1.15.2)
    nokogiri (1.15.3)
      mini_portile2 (~> 2.8.2)
      racc (~> 1.4)
    oj (3.15.0)


@@ 628,7 628,7 @@ GEM
      fugit (~> 1.1, >= 1.1.6)
    safety_net_attestation (0.4.0)
      jwt (~> 2.0)
    sanitize (6.0.1)
    sanitize (6.0.2)
      crass (~> 1.0.2)
      nokogiri (>= 1.12.0)
    scenic (1.7.0)

M app/lib/text_formatter.rb => app/lib/text_formatter.rb +1 -1
@@ 60,7 60,7 @@ class TextFormatter
      suffix      = url[prefix.length + 30..-1]
      cutoff      = url[prefix.length..-1].length > 30

      <<~HTML.squish
      <<~HTML.squish.html_safe # rubocop:disable Rails/OutputSafety
        <a href="#{h(url)}" target="_blank" rel="#{rel.join(' ')}" translate="no"><span class="invisible">#{h(prefix)}</span><span class="#{cutoff ? 'ellipsis' : ''}">#{h(display_url)}</span><span class="invisible">#{h(suffix)}</span></a>
      HTML
    rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError

M app/models/concerns/attachmentable.rb => app/models/concerns/attachmentable.rb +1 -1
@@ 24,7 24,7 @@ module Attachmentable
    def self.has_attached_file(name, options = {}) # rubocop:disable Naming/PredicateName
      super(name, options)

      send(:"before_#{name}_validate") do
      send(:"before_#{name}_validate", prepend: true) do
        attachment = send(name)
        check_image_dimension(attachment)
        set_file_content_type(attachment)

M lib/mastodon/version.rb => lib/mastodon/version.rb +1 -1
@@ 13,7 13,7 @@ module Mastodon
    end

    def patch
      3
      4
    end

    def flags

M lib/tasks/branding.rake => lib/tasks/branding.rake +1 -1
@@ 40,7 40,7 @@ namespace :branding do
    output_dest     = Rails.root.join('app', 'javascript', 'icons')

    rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '-w :size -h :size --keep-aspect-ratio :input -o :output')
    convert = Terrapin::CommandLine.new('convert', ':input :output')
    convert = Terrapin::CommandLine.new('convert', ':input :output', environment: { 'MAGICK_CONFIGURE_PATH' => nil })

    favicon_sizes      = [16, 32, 48]
    apple_icon_sizes   = [57, 60, 72, 76, 114, 120, 144, 152, 167, 180, 1024]

A spec/fixtures/files/attachment-jpg.123456_abcd => spec/fixtures/files/attachment-jpg.123456_abcd +0 -0
A spec/requests/api/v2/media_spec.rb => spec/requests/api/v2/media_spec.rb +18 -0
@@ 0,0 1,18 @@
# frozen_string_literal: true

require 'rails_helper'

RSpec.describe 'Media API', paperclip_processing: true do
  let(:user)    { Fabricate(:user) }
  let(:token)   { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
  let(:scopes)  { 'write' }
  let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }

  describe 'POST /api/v2/media' do
    it 'returns http success' do
      post '/api/v2/media', headers: headers, params: { file: fixture_file_upload('attachment-jpg.123456_abcd', 'image/jpeg') }
      expect(File.exist?(user.account.media_attachments.first.file.path(:small))).to be true
      expect(response).to have_http_status(200)
    end
  end
end