discourse/app/models/post_hotlinked_media.rb

40 lines
1010 B
Ruby

# frozen_string_literal: true
class PostHotlinkedMedia < ActiveRecord::Base
belongs_to :post
belongs_to :upload
enum :status,
{
downloaded: "downloaded",
too_large: "too_large",
download_failed: "download_failed",
upload_create_failed: "upload_create_failed",
}
def self.normalize_src(src, reset_scheme: true)
uri = Addressable::URI.heuristic_parse(src)
uri.normalize!
uri.scheme = nil if reset_scheme
uri.to_s
rescue URI::Error, Addressable::URI::InvalidURIError
src
end
end
# == Schema Information
#
# Table name: post_hotlinked_media
#
# id :bigint not null, primary key
# post_id :bigint not null
# url :string not null
# status :enum not null
# upload_id :bigint
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_post_hotlinked_media_on_post_id_and_url_md5 (post_id, md5((url)::text)) UNIQUE
#