Merge branch 'master' into glitch-soc/merge-upstream

Conflicts:
- `Gemfile.lock`:
  No real conflict, glitch-soc-only dependency (redcarpet) too close to an
  upstream one (rdf-normalize)
- `README.md`:
  we have different READMEs, discarded upstream's changes
- `app/views/admin/custom_emojis/index.html.haml`:
  No real conflict, different context because of glitch-soc theming
- `lib/mastodon/statuses_cli.rb`:
  Upstream added code to keep bookmarked statuses, we were already doing so
  with slightly different code. Discarded upstream's changes.
- `package.json`:
  No real conflict, glitch-soc-only dependency (favico.js) too close to
  an upstream one
This commit is contained in:
Thibaut Girka
2020-01-12 15:57:34 +01:00
286 changed files with 15708 additions and 4528 deletions

View File

@@ -21,7 +21,7 @@ class ActivityPub::Activity
class << self
def factory(json, account, **options)
@json = json
klass&.new(json, account, options)
klass&.new(json, account, **options)
end
private

View File

@@ -308,8 +308,9 @@ class Formatter
end
standard = Extractor.extract_entities_with_indices(text, options)
xmpp = Extractor.extract_xmpp_uris_with_indices(text, options)
Extractor.remove_overlapping_entities(special + standard)
Extractor.remove_overlapping_entities(special + standard + xmpp)
end
def html_friendly_extractor(html, options = {})
@@ -370,7 +371,7 @@ class Formatter
def link_html(url)
url = Addressable::URI.parse(url).to_s
prefix = url.match(/\Ahttps?:\/\/(www\.)?/).to_s
prefix = url.match(/\A(https?:\/\/(www\.)?|xmpp:)/).to_s
text = url[prefix.length, 30]
suffix = url[prefix.length + 30..-1]
cutoff = url[prefix.length..-1].length > 30

View File

@@ -59,7 +59,7 @@ class Request
begin
response = http_client.public_send(@verb, @url.to_s, @options.merge(headers: headers))
rescue => e
raise e.class, "#{e.message} on #{@url}", e.backtrace
raise e.class, "#{e.message} on #{@url}", e.backtrace[0]
end
begin
@@ -73,6 +73,8 @@ class Request
response.body_with_limit if http_client.persistent?
yield response if block_given?
rescue => e
raise e.class, e.message, e.backtrace[0]
ensure
http_client.close unless http_client.persistent?
end
@@ -94,7 +96,7 @@ class Request
end
def http_client
HTTP.use(:auto_inflate).timeout(:per_operation, TIMEOUT.dup).follow(max_hops: 2)
HTTP.use(:auto_inflate).timeout(TIMEOUT.dup).follow(max_hops: 2)
end
end

View File

@@ -2,7 +2,7 @@
class Sanitize
module Config
HTTP_PROTOCOLS ||= ['http', 'https', 'dat', 'dweb', 'ipfs', 'ipns', 'ssb', 'gopher', :relative].freeze
HTTP_PROTOCOLS ||= ['http', 'https', 'dat', 'dweb', 'ipfs', 'ipns', 'ssb', 'gopher', 'xmpp', :relative].freeze
CLASS_WHITELIST_TRANSFORMER = lambda do |env|
node = env[:node]