Importing lithium topic tags
This commit is contained in:
parent
4329b484e8
commit
f3385a74cb
|
@ -332,10 +332,20 @@ class ImportScripts::Lithium < ImportScripts::Base
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def staff_guardian
|
||||||
|
@_staff_guardian ||= Guardian.new(Discourse.system_user)
|
||||||
|
end
|
||||||
|
|
||||||
def import_topics
|
def import_topics
|
||||||
puts "", "importing topics..."
|
puts "", "importing topics..."
|
||||||
|
SiteSetting.tagging_enabled = true
|
||||||
|
default_max_tags_per_topic = SiteSetting.max_tags_per_topic
|
||||||
|
default_max_tag_length = SiteSetting.max_tag_length
|
||||||
|
SiteSetting.max_tags_per_topic = 10
|
||||||
|
SiteSetting.max_tag_length = 100
|
||||||
|
|
||||||
topic_count = mysql_query("SELECT COUNT(*) count FROM message2 where id = root_id").first["count"]
|
topic_count = mysql_query("SELECT COUNT(*) count FROM message2 where id = root_id").first["count"]
|
||||||
|
topic_tags = mysql_query("SELECT e.target_id, GROUP_CONCAT(l.tag_text SEPARATOR ',') tags FROM tag_events_label_message e LEFT JOIN tags_label l ON e.tag_id = l.tag_id GROUP BY e.target_id")
|
||||||
|
|
||||||
batches(BATCH_SIZE) do |offset|
|
batches(BATCH_SIZE) do |offset|
|
||||||
topics = mysql_query <<-SQL
|
topics = mysql_query <<-SQL
|
||||||
|
@ -369,18 +379,28 @@ class ImportScripts::Lithium < ImportScripts::Base
|
||||||
deleted_at: deleted_at,
|
deleted_at: deleted_at,
|
||||||
views: topic["views"],
|
views: topic["views"],
|
||||||
custom_fields: { import_unique_id: topic["unique_id"] },
|
custom_fields: { import_unique_id: topic["unique_id"] },
|
||||||
import_mode: true
|
import_mode: true,
|
||||||
|
post_create_action: proc do |post|
|
||||||
|
result = topic_tags.select { |t| t["target_id"] == topic["unique_id"] }
|
||||||
|
if result.count > 0
|
||||||
|
tag_names = result.first["tags"].split(",")
|
||||||
|
DiscourseTagging.tag_topic_by_names(post.topic, staff_guardian, tag_names)
|
||||||
|
end
|
||||||
|
end
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
message = "Unknown"
|
message = "Unknown"
|
||||||
message = "Category '#{category_id}' not exist" if category_id.blank?
|
message = "Category '#{category_id}' not exist" if category_id.blank?
|
||||||
message = "Topic 'body' is empty" if raw.blank?
|
message = "Topic 'body' is empty" if raw.blank?
|
||||||
PluginStoreRow.create(plugin_name: "topic_import_log", key: topic["unique_id"].to_s, value: message)
|
PluginStoreRow.find_or_create_by(plugin_name: "topic_import_log", key: topic["unique_id"].to_s, value: message, type_name: 'String')
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
SiteSetting.max_tags_per_topic = default_max_tags_per_topic
|
||||||
|
SiteSetting.max_tag_length = default_max_tag_length
|
||||||
end
|
end
|
||||||
|
|
||||||
def import_posts
|
def import_posts
|
||||||
|
@ -430,7 +450,7 @@ class ImportScripts::Lithium < ImportScripts::Base
|
||||||
|
|
||||||
new_post
|
new_post
|
||||||
else
|
else
|
||||||
PluginStoreRow.create(plugin_name: "post_import_log", key: post["unique_id"].to_s, value: "Post 'body' is empty")
|
PluginStoreRow.find_or_create_by(plugin_name: "post_import_log", key: post["unique_id"].to_s, value: "Post 'body' is empty", type_name: 'String')
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -714,7 +734,7 @@ class ImportScripts::Lithium < ImportScripts::Base
|
||||||
|
|
||||||
msg
|
msg
|
||||||
else
|
else
|
||||||
PluginStoreRow.create(plugin_name: "pm_import_log", key: topic["note_id"].to_s, value: "PM 'body' is empty")
|
PluginStoreRow.find_or_create_by(plugin_name: "pm_import_log", key: topic["note_id"].to_s, value: "PM 'body' is empty", type_name: 'String')
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue