mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Allow TopicEmbed.import to optionally receive a list of tags (#14301)
This will be used by the rss-polling plugin
This commit is contained in:
parent
b90eb0da14
commit
2e0992c757
@ -27,7 +27,7 @@ class TopicEmbed < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Import an article from a source (RSS/Atom/Other)
|
# Import an article from a source (RSS/Atom/Other)
|
||||||
def self.import(user, url, title, contents, category_id: nil, cook_method: nil)
|
def self.import(user, url, title, contents, category_id: nil, cook_method: nil, tags: nil)
|
||||||
return unless url =~ /^https?\:\/\//
|
return unless url =~ /^https?\:\/\//
|
||||||
|
|
||||||
if SiteSetting.embed_truncate && cook_method.nil?
|
if SiteSetting.embed_truncate && cook_method.nil?
|
||||||
@ -58,7 +58,8 @@ class TopicEmbed < ActiveRecord::Base
|
|||||||
raw: absolutize_urls(url, contents),
|
raw: absolutize_urls(url, contents),
|
||||||
skip_validations: true,
|
skip_validations: true,
|
||||||
cook_method: cook_method,
|
cook_method: cook_method,
|
||||||
category: category_id || eh.try(:category_id)
|
category: category_id || eh.try(:category_id),
|
||||||
|
tags: SiteSetting.tagging_enabled ? tags : nil,
|
||||||
}
|
}
|
||||||
if SiteSetting.embed_unlisted?
|
if SiteSetting.embed_unlisted?
|
||||||
create_args[:visible] = false
|
create_args[:visible] = false
|
||||||
|
@ -17,6 +17,7 @@ describe TopicEmbed do
|
|||||||
let(:contents) { "<p>hello world new post <a href='/hello'>hello</a> <img src='/images/wat.jpg'></p>" }
|
let(:contents) { "<p>hello world new post <a href='/hello'>hello</a> <img src='/images/wat.jpg'></p>" }
|
||||||
fab!(:embeddable_host) { Fabricate(:embeddable_host) }
|
fab!(:embeddable_host) { Fabricate(:embeddable_host) }
|
||||||
fab!(:category) { Fabricate(:category) }
|
fab!(:category) { Fabricate(:category) }
|
||||||
|
fab!(:tag) { Fabricate(:tag) }
|
||||||
|
|
||||||
it "returns nil when the URL is malformed" do
|
it "returns nil when the URL is malformed" do
|
||||||
expect(TopicEmbed.import(user, "invalid url", title, contents)).to eq(nil)
|
expect(TopicEmbed.import(user, "invalid url", title, contents)).to eq(nil)
|
||||||
@ -104,6 +105,13 @@ describe TopicEmbed do
|
|||||||
expect(imported_post.topic.category).to eq(category)
|
expect(imported_post.topic.category).to eq(category)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "creates the topic with the tag passed as a parameter" do
|
||||||
|
Jobs.run_immediately!
|
||||||
|
SiteSetting.tagging_enabled = true
|
||||||
|
imported_post = TopicEmbed.import(user, "http://eviltrout.com/abcd", title, "some random content", tags: [tag.name])
|
||||||
|
expect(imported_post.topic.tags).to include(tag)
|
||||||
|
end
|
||||||
|
|
||||||
it "respects overriding the cook_method when asked" do
|
it "respects overriding the cook_method when asked" do
|
||||||
Jobs.run_immediately!
|
Jobs.run_immediately!
|
||||||
SiteSetting.embed_support_markdown = false
|
SiteSetting.embed_support_markdown = false
|
||||||
|
Loading…
Reference in New Issue
Block a user