forked from cybrespace/mastodon
Optional domain block attribute that prevents media attachments from being downloaded
This commit is contained in:
parent
cca82bf0a2
commit
434cf8237e
|
@ -180,6 +180,8 @@ class ProcessFeedService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def media_from_xml(parent, xml)
|
def media_from_xml(parent, xml)
|
||||||
|
return if DomainBlock.find_by(domain: parent.account.domain)&.reject_media?
|
||||||
|
|
||||||
xml.xpath('./xmlns:link[@rel="enclosure"]', xmlns: TagManager::XMLNS).each do |link|
|
xml.xpath('./xmlns:link[@rel="enclosure"]', xmlns: TagManager::XMLNS).each do |link|
|
||||||
next unless link['href']
|
next unless link['href']
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ class ProcessHashtagsService < BaseService
|
||||||
def call(status, tags = [])
|
def call(status, tags = [])
|
||||||
tags = status.text.scan(Tag::HASHTAG_RE).map(&:first) if status.local?
|
tags = status.text.scan(Tag::HASHTAG_RE).map(&:first) if status.local?
|
||||||
|
|
||||||
tags.map { |str| str.mb_chars.downcase }.uniq{ |t| t.to_s }.each do |tag|
|
tags.map { |str| str.mb_chars.downcase }.uniq(&:to_s).each do |tag|
|
||||||
status.tags << Tag.where(name: tag).first_or_initialize(name: tag)
|
status.tags << Tag.where(name: tag).first_or_initialize(name: tag)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddRejectMediaToDomainBlocks < ActiveRecord::Migration[5.0]
|
||||||
|
def change
|
||||||
|
add_column :domain_blocks, :reject_media, :boolean
|
||||||
|
end
|
||||||
|
end
|
11
db/schema.rb
11
db/schema.rb
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20170123162658) do
|
ActiveRecord::Schema.define(version: 20170123203248) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -55,10 +55,11 @@ ActiveRecord::Schema.define(version: 20170123162658) do
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "domain_blocks", force: :cascade do |t|
|
create_table "domain_blocks", force: :cascade do |t|
|
||||||
t.string "domain", default: "", null: false
|
t.string "domain", default: "", null: false
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
t.integer "severity", default: 0
|
t.integer "severity", default: 0
|
||||||
|
t.boolean "reject_media"
|
||||||
t.index ["domain"], name: "index_domain_blocks_on_domain", unique: true, using: :btree
|
t.index ["domain"], name: "index_domain_blocks_on_domain", unique: true, using: :btree
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue