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