mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 13:51:18 +08:00
DEV: Apply syntax_tree formatting to script/*
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../base'
|
||||
require_relative 'support/database'
|
||||
require_relative 'support/indexer'
|
||||
require_relative 'support/settings'
|
||||
require_relative "../base"
|
||||
require_relative "support/database"
|
||||
require_relative "support/indexer"
|
||||
require_relative "support/settings"
|
||||
|
||||
module ImportScripts::Mbox
|
||||
class Importer < ImportScripts::Base
|
||||
@ -38,44 +38,44 @@ module ImportScripts::Mbox
|
||||
end
|
||||
|
||||
def index_messages
|
||||
puts '', 'creating index'
|
||||
puts "", "creating index"
|
||||
indexer = Indexer.new(@database, @settings)
|
||||
indexer.execute
|
||||
end
|
||||
|
||||
def import_categories
|
||||
puts '', 'creating categories'
|
||||
puts "", "creating categories"
|
||||
rows = @database.fetch_categories
|
||||
|
||||
create_categories(rows) do |row|
|
||||
{
|
||||
id: row['name'],
|
||||
name: row['name'],
|
||||
parent_category_id: row['parent_category_id'].presence,
|
||||
id: row["name"],
|
||||
name: row["name"],
|
||||
parent_category_id: row["parent_category_id"].presence,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def import_users
|
||||
puts '', 'creating users'
|
||||
puts "", "creating users"
|
||||
total_count = @database.count_users
|
||||
last_email = ''
|
||||
last_email = ""
|
||||
|
||||
batches do |offset|
|
||||
rows, last_email = @database.fetch_users(last_email)
|
||||
break if rows.empty?
|
||||
|
||||
next if all_records_exist?(:users, rows.map { |row| row['email'] })
|
||||
next if all_records_exist?(:users, rows.map { |row| row["email"] })
|
||||
|
||||
create_users(rows, total: total_count, offset: offset) do |row|
|
||||
{
|
||||
id: row['email'],
|
||||
email: row['email'],
|
||||
name: row['name'],
|
||||
id: row["email"],
|
||||
email: row["email"],
|
||||
name: row["name"],
|
||||
trust_level: @settings.trust_level,
|
||||
staged: @settings.staged,
|
||||
active: !@settings.staged,
|
||||
created_at: to_time(row['date_of_first_message'])
|
||||
created_at: to_time(row["date_of_first_message"]),
|
||||
}
|
||||
end
|
||||
end
|
||||
@ -86,7 +86,7 @@ module ImportScripts::Mbox
|
||||
end
|
||||
|
||||
def import_posts
|
||||
puts '', 'creating topics and posts'
|
||||
puts "", "creating topics and posts"
|
||||
total_count = @database.count_messages
|
||||
last_row_id = 0
|
||||
|
||||
@ -94,47 +94,45 @@ module ImportScripts::Mbox
|
||||
rows, last_row_id = @database.fetch_messages(last_row_id)
|
||||
break if rows.empty?
|
||||
|
||||
next if all_records_exist?(:posts, rows.map { |row| row['msg_id'] })
|
||||
next if all_records_exist?(:posts, rows.map { |row| row["msg_id"] })
|
||||
|
||||
create_posts(rows, total: total_count, offset: offset) do |row|
|
||||
begin
|
||||
if row['email_date'].blank?
|
||||
puts "Date is missing. Skipping #{row['msg_id']}"
|
||||
if row["email_date"].blank?
|
||||
puts "Date is missing. Skipping #{row["msg_id"]}"
|
||||
nil
|
||||
elsif row['in_reply_to'].blank?
|
||||
elsif row["in_reply_to"].blank?
|
||||
map_first_post(row)
|
||||
else
|
||||
map_reply(row)
|
||||
end
|
||||
rescue => e
|
||||
puts "Failed to map post for #{row['msg_id']}", e, e.backtrace.join("\n")
|
||||
puts "Failed to map post for #{row["msg_id"]}", e, e.backtrace.join("\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def map_post(row)
|
||||
user_id = user_id_from_imported_user_id(row['from_email']) || Discourse::SYSTEM_USER_ID
|
||||
user_id = user_id_from_imported_user_id(row["from_email"]) || Discourse::SYSTEM_USER_ID
|
||||
|
||||
{
|
||||
id: row['msg_id'],
|
||||
id: row["msg_id"],
|
||||
user_id: user_id,
|
||||
created_at: to_time(row['email_date']),
|
||||
created_at: to_time(row["email_date"]),
|
||||
raw: format_raw(row, user_id),
|
||||
raw_email: row['raw_message'],
|
||||
raw_email: row["raw_message"],
|
||||
via_email: true,
|
||||
post_create_action: proc do |post|
|
||||
create_incoming_email(post, row)
|
||||
end
|
||||
post_create_action: proc { |post| create_incoming_email(post, row) },
|
||||
}
|
||||
end
|
||||
|
||||
def format_raw(row, user_id)
|
||||
body = row['body'] || ''
|
||||
elided = row['elided']
|
||||
body = row["body"] || ""
|
||||
elided = row["elided"]
|
||||
|
||||
if row['attachment_count'].positive?
|
||||
receiver = Email::Receiver.new(row['raw_message'])
|
||||
if row["attachment_count"].positive?
|
||||
receiver = Email::Receiver.new(row["raw_message"])
|
||||
user = User.find(user_id)
|
||||
body = receiver.add_attachments(body, user)
|
||||
end
|
||||
@ -147,21 +145,21 @@ module ImportScripts::Mbox
|
||||
end
|
||||
|
||||
def map_first_post(row)
|
||||
subject = row['subject']
|
||||
subject = row["subject"]
|
||||
tags = remove_tags!(subject)
|
||||
|
||||
mapped = map_post(row)
|
||||
mapped[:category] = category_id_from_imported_category_id(row['category'])
|
||||
mapped[:category] = category_id_from_imported_category_id(row["category"])
|
||||
mapped[:title] = subject.strip[0...255]
|
||||
mapped[:tags] = tags if tags.present?
|
||||
mapped
|
||||
end
|
||||
|
||||
def map_reply(row)
|
||||
parent = @lookup.topic_lookup_from_imported_post_id(row['in_reply_to'])
|
||||
parent = @lookup.topic_lookup_from_imported_post_id(row["in_reply_to"])
|
||||
|
||||
if parent.blank?
|
||||
puts "Parent message #{row['in_reply_to']} doesn't exist. Skipping #{row['msg_id']}: #{row['subject'][0..40]}"
|
||||
puts "Parent message #{row["in_reply_to"]} doesn't exist. Skipping #{row["msg_id"]}: #{row["subject"][0..40]}"
|
||||
return nil
|
||||
end
|
||||
|
||||
@ -178,9 +176,7 @@ module ImportScripts::Mbox
|
||||
old_length = subject.length
|
||||
|
||||
@settings.tags.each do |tag|
|
||||
if subject.sub!(tag[:regex], "") && tag[:name].present?
|
||||
tag_names << tag[:name]
|
||||
end
|
||||
tag_names << tag[:name] if subject.sub!(tag[:regex], "") && tag[:name].present?
|
||||
end
|
||||
|
||||
remove_prefixes!(subject) if subject.length != old_length
|
||||
@ -203,13 +199,13 @@ module ImportScripts::Mbox
|
||||
|
||||
def create_incoming_email(post, row)
|
||||
IncomingEmail.create(
|
||||
message_id: row['msg_id'],
|
||||
raw: row['raw_message'],
|
||||
subject: row['subject'],
|
||||
from_address: row['from_email'],
|
||||
message_id: row["msg_id"],
|
||||
raw: row["raw_message"],
|
||||
subject: row["subject"],
|
||||
from_address: row["from_email"],
|
||||
user_id: post.user_id,
|
||||
topic_id: post.topic_id,
|
||||
post_id: post.id
|
||||
post_id: post.id,
|
||||
)
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user